Linux学习之旅(三)

一、链接文件

        Linux中创建的软链接,相当于我们在windows当中创建一个快捷方式。软链接文件源文件必须写成绝对路径,而不能写成相对路径(硬链接没有这样的要求);否则软链接文件会报错。

1.1 创建硬链接文件(ln)

语法:ln 源文件 硬链接

例1:创建一个硬链接

例2:向源文件中填写内容,硬链接文件同步也有内容

例3:显示源文件和链接文件的节点数

例4:源文件删除

总结:

硬链接,在源文件删除的时候,硬链接的内容我们还可以访问,因为的它们有相同的节点数。

关于inode节点:

inode :索引节点。每个存储设备被格式化为文件系统后,有两部份,一部份是inode,另一部份是Block,Block是用来存储数据的而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、属组、读写权限等。好比一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页inode 就相当于这本书前面的目录

1.2 创建软链接文件

语法:ln 选项 源文件 软链接 ;选项:-s:软链接

例1:创建一个软连接

例2:向源文件中添加内容

例3:查看源文件和软链接文件的节点数

例4:删除源文件,我们是否能访问软链接文件里面的内容

源文件删除的时候,我们不能访问软链接文件的内容,因为他们没有共同的节点数

二、文件查找

2.1 find查找

有时候,我们查找所需要的文件,比如对文件进行编辑,修改配置等。

语法:find 查找目录 查找规则 要查找文件 查找完成后的action

常用的查找规则选项:

-name:按姓名查找。

-size:按大小进行查找。

-type:按类型进行查找。

例1:按-name(文件名)查找

例2:按-size(大小)查找

例3:按-type(类型)查找

例4:找到文件之后直接删除文件

2.2 grep查找

命令说明:grep(global search regular expression and print out the line),查找指定文件中的字符串

全面搜索,正则表达式搜索文本并把行打印出来是一种强大的文本搜索工具。

语法:grep 选项   ‘搜索的字符串’  目录文件名

选项:-n:查看行号

例1:

例2:-n,打印文件的行数


2.3 locate命令

find对于大批量的搜索而言,速度较慢,这时候,Locate命令会比较快数据库查找文件locate指令预设的数据库位于/var/lib/mlocate目录里依据/var/lib/mlocate/mlocate.db内的资料库记载

语法:locate选项 文件名 ;功能描述:快速的查找文件

例1:

例2:查看数据库中的数据

2.4 whereis命令

 和find命令相比较,whereis 查找的速度非常快,当使用whereis也会从数据库中查找数据,whereis命令只能用于程序名的搜索,而且只搜索二进制文件、man说明文件和源代码文件。

语法:whereis选项 文件名;功能描述:快速的查找文件

例:

2.5 which命令

Linux which命令用于查找文件。which命令是查找命令是否存在,以及命令的存放位置在哪儿。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

语法:which 选项 文件名

例1:输出变量$PAHT

例2:查找一个文件

2.6 type命令

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。

区别:

 find:在整个的硬盘里面来查找文件。

grep:在文字查找某个字符

locate:在数据库中查找文件。

whereis:也在数据库中查找,查找范围小,只查找一部分文件。

which:查找命令所在的位置,或者在环境变量$PATH目录中查找。

三、用户管理

Linux系统是一个多用户多任务的分时操作系统,

Linux用户主要是分为三类:

第一类:root(超级管理员),UID为0,这个用户有极大的权限,包括读、写、执行的权限。所以使用要小心,因为他的权限太大了。

第二类:系统用户,UID为1~499。一般是不会被登入的。

第三类:就是普通用户,UID范围一般是500~65534。这类用户的权限会受到基本权限的限制,也会受到来自管理员的限制。

~:在linux中代表用户的主目录(home)

对于一般用户,~表示:/home/用户名

对于root用户,~表示:/root

3.1 添加用户

语法:useradd 选项 用户名

常用选项:

-d:目录 指定用户主目录。

-g:指定用户所属的用户组。

-s:指定用户的登录shell。

-u:指定用户的用户号。

-r :建立系统帐号。

例1:建立一个普通用户

例2:建立一个系统用户

例3:查看新建用户是否存在

功能作用描述:增加用户账户就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件,如/et/shadow,/etc/group等。/et/shadow:密码信息/etc/group:组信息

例4:查看用户组信息

linux在创建用户的同时,又创建了同名的用户组。要避免创建用户的同时又创建同名组。我们可以在创建用户的同时,让它归属于某个组

例5:让某个用户zhangs归属于test组

格式:用户名:密码:UID:GID:用户描述:主目录:登录的shell

UID:0:代表系统管理员;1-499:代表的是系统用户使用的;500-65534:是普通用户使用的。

每行记录又被冒号(:)分隔为7个字段

具体实例6:查看用户的结构


3.2 删除用户

语法:userdel 选项  用户名,删除一个用户,就是从/etc/passwd中删除一个用户记录。

常用的选项:-r:把用户的主目录一起删除

例1:删除用户mark

3.3修改用户

语法:usermod 选项 用户名

常用的选项和useradd选项一样,-d,-s,-g,-G,-u等。-l:将原来的用户名改成新用户名

例1:修改用户的主目录

例2:修改用户的userid


3.4修改密码

语法:passwd 选项 用户名

常用的选项是:

-l:锁定口令,即禁用账号。

-u:口令解锁。

-d:使账号无口令(取消密码)

-f:强迫用户下次登录时修改口令。

例1:修改zhangs的密码


四、组管理

4.1 添加组

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。查看组内成员:/etc/group

语法:groupadd选项 用户组;功能描述:为用户添加一个数组

常用的选项:-g:指定新用户组的标识号

例1:


4.2 删除组

语法:groupdel 选项 用户组

例1:

4.3 修改组

语法:groupmod 选项 用户组

常用选项:

-n:修改组的名称

-g:修改组的ID

例1:修改的组名称

例2:修改的组id

4.4 查看用户

查看本地的服务器有多少用户

方法1:cat /etc/passwd

方法2:who -m 查看当前用户

方法3:whoami 查看当前用户

方法4:id 查看当前用户

4.5 cut命令详解

语法:cut -c  m-n  filename  说明:显示每行从开头算起m到n的文字。 

选项:

-c :以字符为单位进行分割。

-c m-n:表示显示每一行的第m个字元到第n个的字符

例1:

我们经常会遇到需要取出分字段的文件的某些特定字段,例如/etc/password就是通过":"分隔各个字段的。可以通过cut命令来实现。

常用选项:

-d 用来定义分隔符,默认为tab键,

-f 表示需要取得哪个字段

例1:查看所有用户

五、文件和目录权限设置操作

5.1 改变属主

语法:chown 选项 文件名 (改变文件属于哪个用户)

常用选项:

-R:代表的是递归调用目录,目录中的子目录和子目录中的文件都会应用

例1:

例2:chown 属主名:属组名 文件名

例3:递归改变,通过选项:-R

5.2 改变属组

语法:chgrp -R 属组名 文件名(改变文件属于哪个组)

例:


5.3 改变文件的权限(重点)

先介绍一下文件的类型

d :目录文件。

l符号链接(指向另一个文件,类似于windows下的快捷方式)。

s套接字文件(/var/run)。

b 块设备文件,二进制文件(/dev/sda)。

c字符设备文件(/dev目录)。

p: 命名管道文件。

-普通文件,或者更准确地说,不属于以上几种类型的文件。

例1:查看文件类型

文件的扩展名:扩展名类型

Linux的文件是没有所谓的扩展名的,一个Linux文件能不能被执行,与他的第一栏的十个属性有关。这个跟Windows的情况不相同,在Windows底下, 能被执行的文件扩展名通常是 .com .exe .bat等等,而在Linux底下,只要你的权限当中具有x。

文件的详细显示信息:ll或是 ls -lh

Linux文件属性有两种设置权限的方法,一种是数字,一种是字符

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限

语法:chmod 权限 文件名

权限:

(1)数字(功能:改变文件权限)

r(读):4,

w(写):2,

x(执行):1

例1:文件的权限全部是rwx,就是读写可执行(777:属主、属组、其他人权限全部为rwx)

例2:520(属主:rx,属组:w,其他人:什么权限都没有)

(2)字符(功能:改变文件权限)

u(user:用户),g(group:组),o(other:其他人),a(all:所有用户),

+(添加),-(删除),=(设置)

u+rwx,g=rw,o=wx

-R :进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

例1:

例2:使用a

例3:添加,减去相应的权限

六、vim编辑操作(重点)

vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器。而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本、C语言程序编辑等功能,可以作为程序编辑器。

6.1 vi/vim的使用

基本上vi/vim共分为三种模式,分别是命令模式(Command mode)插入模式(Insert mode)底线命令模式(Last line mode)

6.2 命令模式的切换

ESC:进入命令模式

:,进入底行命令模式

【i, I】 进入编辑模式

i为【从目前光标所在处插入】

I为【在目前所在行的第一个非空格处开始插入】

【a, A】 进入编辑模式(Insert mode):

a为【从目前光标所在的下一个字符处开始插入】

A为【从光标所在行的最后一个字符处开始插入】

【o, O】 进入编辑模式:

o为【在目前光标所在的下一行处插入新的一行】

O为【在目前光标所在处的上一行插入新的一行】

【r, R】 进入取代模式:

r只会取代光标所在的那一个字符一次R会一直取代光标所在的文字,直到按下ESC为止

插入模式(编辑模式):i,I,a,A,o,O,s,S,r,R

s:删除添加

r:修改/替换添加

6.3 进入和退出vi/vim

(1)进入vi filename或者vimfilename,如果filename不存在,则创建它,存在打开。

(2)退出vi/vim

:w  filename另存为filename

:q退出

:q!     强制退出

:wq   保存并退出

:wq!  强制保存并退出

:x 如果有改动则保存并退出,否则直接退出

ZZ:若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开

6.4 命令光标移动

kjhl:上下左右

space:光标右移一个字符 Backspace:光标左移一个字符 Enter:光标下移一行

文档的第一行:gg

文档的最后一行:G

某一行开头:^,0(零)

某一行结尾:$

5j或者是5+Enter(回车键): 向下移动5行

5G:移动到第5行行首

ctrl+b:上一页

ctrl+f:下一页

n+:光标下移n行 n-:光标上移n行 n$:光标移至第n行尾 H:光标移至屏幕顶行 M:光标移至屏幕中间行 L:光标移至屏幕最后行

w:下一个单词

b:上一个单词

6.5 拷贝

缓冲区:复制或删除的内容总是先存放在缓冲区中,缺省是放在匿名缓冲区中。

拷贝1行, yy

拷贝5行, 5yy

拷贝1个单词, yw

拷贝5个单词, 5yw

拷贝到文件尾行, yG

拷贝到行尾,y$

6.6 粘贴

p(小写):当前位置粘贴

P(大写):当前位置向前粘贴

6.7 删除

删除1行 dd

删除3行 3dd

删除1个单词 dw

删除5个单词 5dw

删除到文件尾行, dG

删除到文件首行, dgg

删除到行首, d^

删除到行尾, d$

6.8 搜索

/:向下找

?:向上找

n:查找方向的下一处匹配

N:查找方向的上一处匹配

6.9 替换

行内替换一处,:s/search/replace

search:你要查找的字符串

replace:你要修改的字符串

行内替换全部, :s/search/replace/g

global:全部替换

全部行内一处替换, :%s/search/replace

全部替换, :%s/search/replace/g

6.10 其他命令

u:恢复前一个操作Ctrl+r:重做上一个操作

.:是重复前一个操作

set nu:设置行号

:set nonu:取消行号

:数字:定位哪一行

你可能感兴趣的:(Linux学习之旅(三))