一、链接文件
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:取消行号
:数字:定位哪一行