ln 命令
ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间
语法: ln [参数][源文件或目录][目标文件或目录]
必要参数:
- –backup[=CONTROL] 备份已存在的目标文件
- -b 类似 –backup ,但不接受参数
- -d 允许超级用户制作目录的硬链接
- -f 强制执行
- -i 交互模式,文件存在则提示用户是否覆盖
- -n 把符号链接视为一般目录
- -s 软链接(符号链接)
- -v 显示详细的处理过程
选择参数: - -S “-S<字尾备份字符串> “或 “–suffix=<字尾备份字符串>”
- -V “-V<备份方式>”或”–version-control=<备份方式>”
- –help 显示帮助信息
- –version 显示版本信息
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接
符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[moe@master ~]$ ln -s d.txt d_soft_link
[moe@master ~]$ ll
总用量 16
...
drwxrwxr-x. 4 moe moe 54 4月 15 11:04 dongman
lrwxrwxrwx 1 moe moe 5 4月 15 15:59 d_soft_link -> d.txt
-rw-rw-r-- 1 moe moe 22 4月 15 10:43 d.txt
...
[moe@master ~]$ cat d_soft_link
你好我是测试者
[moe@master ~]$ cat d.txt
你好我是测试者
[moe@master ~]$ gedit d.txt
[moe@master ~]$ cat d_soft_link
你好我是测试者22
[moe@master ~]$ cat d.txt
你好我是测试者22上面脚本是在相同目录创建这个软链接。当在不同目录时,需要使用绝对路径,否则会报红,不能使用,因为软链接记录的是文件的位置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19[moe@master ~]$ ln -s ~/d.txt dongman/d2_soft_link
[moe@master ~]$ ll dongman/
总用量 4
-rw-rw-r-- 1 moe moe 0 4月 15 10:59 a.txt
-rw-rw-r-- 1 moe moe 22 4月 15 10:44 c.txt
lrwxrwxrwx 1 moe moe 15 4月 15 16:00 d2_soft_link -> /home/moe/d.txt
drwxrwxr-x 2 moe moe 6 4月 15 11:04 nv
drwxrwxr-x 5 moe moe 43 4月 15 11:10 test
[moe@master ~]$ ln -s d.txt dongman/d3_soft_link
[moe@master ~]$ ll dongman/
总用量 4
-rw-rw-r-- 1 moe moe 0 4月 15 10:59 a.txt
-rw-rw-r-- 1 moe moe 22 4月 15 10:44 c.txt
lrwxrwxrwx 1 moe moe 15 4月 15 16:00 d2_soft_link -> /home/moe/d.txt
lrwxrwxrwx 1 moe moe 5 4月 15 16:04 d3_soft_link -> d.txt(报红)
drwxrwxr-x 2 moe moe 6 4月 15 11:04 nv
drwxrwxr-x 5 moe moe 43 4月 15 11:10 test
[moe@master ~]$ cat dongman/d3_soft_link
cat: dongman/d3_soft_link: 没有那个文件或目录可以给目录创建一个软链接,同时需要注意的是软链接只记录文件的位置信息,所以它占用的空间不会跟原文件相同
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21[moe@master dongman]$ ln c.txt c_hard_link
[moe@master dongman]$ ll
总用量 8
-rw-rw-r-- 1 moe moe 0 4月 15 10:59 a.txt
-rw-rw-r-- 2 moe moe 22 4月 15 10:44 c_hard_link
-rw-rw-r-- 2 moe moe 22 4月 15 10:44 c.txt
lrwxrwxrwx 1 moe moe 15 4月 15 16:00 d2_soft_link -> /home/moe/d.txt
drwxrwxr-x 2 moe moe 6 4月 15 11:04 nv
drwxrwxr-x 5 moe moe 43 4月 15 11:10 test
[moe@master dongman]$ ln c.txt c1_hard_link
[moe@master dongman]$ ll
总用量 12
-rw-rw-r-- 1 moe moe 0 4月 15 10:59 a.txt
-rw-rw-r-- 3 moe moe 22 4月 15 10:44 c1_hard_link
-rw-rw-r-- 3 moe moe 22 4月 15 10:44 c_hard_link
-rw-rw-r-- 3 moe moe 22 4月 15 10:44 c.txt
lrwxrwxrwx 1 moe moe 15 4月 15 16:00 d2_soft_link -> /home/moe/d.txt
drwxrwxr-x 2 moe moe 6 4月 15 11:04 nv
drwxrwxr-x 5 moe moe 43 4月 15 11:10 test
[moe@master dongman]$ ln nv nv_hard_link
ln: "nv": 不允许将硬链接指向目录可以看出这个2和3代表该文件目前有几个索引,只有当这些索引链接的文件都被删除时该文件才会被真正删除,相当于一个实时的备份文件(并不是简单拷贝),防止误删。同时需要注意硬链接不能链接目录
grep 命令
Linux系统中 grep(Global Regular Expression Print) 命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来
语法:grep [options] pattern [files]
常用选项::
- -i:忽略大小写进行匹配。
- -v:反向查找,只打印不匹配的行。
- -n:显示匹配行的行号。
- -r:递归查找子目录中的文件。
- -l:只打印匹配的文件名。
- -c:只打印匹配的行数。
1 | [moe@master ~]$ ls |
find 命令
find 命令用于在指定目录下查找文件和目录
语法:find [路径] [匹配条件] [动作]
参数说明 :
路径 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。匹配条件 中可使用的选项有二三十个之多,以下列出最常用的部份:
- -name pattern:按文件名查找,支持使用通配符 * 和 ?。
- -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。
- -size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。
- -mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。
- -user username:按文件所有者查找。
- -group groupname:按文件所属组查找。
1 | [moe@master ~]$ find -name b.txt |
tar 命令
tar(英文全拼:tape archive )命令用于备份文件。是创建和解压归档文件的命令行工具,可以用来将多个文件和目录组合成一个单一的归档文件,也可以用来解压已经存在的归档文件
简单语法:tar [选项] 压缩包名 压缩文件 [-C] [存放目录]
常用选项:
- c或–create 建立新的备份文件
- -C<目的目录>或–directory=<目的目录> 将压缩包指定到目的目录
- -v或–verbose 显示指令执行过程
- -x或–extract或–get 从备份文件中还原文件,即解压
- -t或–list 列出备份文件的内容
- -f<备份文件>或–file=<备份文件> 指定备份文件
1 | [moe@master ~]$ ls |
可以看出只能将解压的文件移动到指定目录中去。其中f这个选项必须放在后面。拓展:tar命令
gzip 命令
gzip命令用于压缩文件。是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出”.gz“的扩展名
简单语法:gzip [选项] 压缩包
常用选项:
- d 解压
- -r或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理
1 | [moe@master ~]$ ls |
拓展:gzip命令
一步到位:
- 以gzip的方式打包且压缩:tar czf 名称.tar.gz 目标文件
1
2
3
4
5
6
7[moe@master ~]$ ls
a b_hard_link dongman d_soft_link txt.tar 模板 图片 下载 桌面
b b.txt dongman1 d.txt 公共 视频 文档 音乐
[moe@master ~]$ tar czf test.tar.gz b.txt d.txt
[moe@master ~]$ ls
a b_hard_link dongman d_soft_link test.tar.gz 公共 视频 文档 音乐
b b.txt dongman1 d.txt txt.tar 模板 图片 下载 桌面 - 以gzip的方式解压并解包:tar zxf 名称.tar.gz -C 目标目录
1
2
3[moe@master ~]$ tar zxf test.tar.gz -C dongman1
[moe@master ~]$ ls dongman1
a.txt b.txt c1_hard_link c_hard_link c.txt d2_soft_link d.txt nv test
bzip2 命令
bzip2命令是 .bz2文件 的压缩程序。bzip2采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件
与gzip用法类似,这里也可以一步到位:
- 以bzip2的方式打包且压缩:tar cjf 名称.tar.gz 目标文件
1
2
3
4
5
6
7
8
9
10[moe@master ~]$ mkdir bzip2
[moe@master ~]$ ls
a b.txt dongman1 test.tar.gz 模板 文档 桌面
b bzip2 d_soft_link txt.tar 视频 下载
b_hard_link dongman d.txt 公共 图片 音乐
[moe@master ~]$ tar cjf test.tar.bz2 b.txt d.txt
[moe@master ~]$ ls
a b.txt dongman1 test.tar.bz2 公共 图片 音乐
b bzip2 d_soft_link test.tar.gz 模板 文档 桌面
b_hard_link dongman d.txt txt.tar 视频 下载 - 以bzip2的方式解压并解包:tar zxf 名称.tar.gz -C 目标目录
1
2
3[moe@master ~]$ tar xjf test.tar.bz2 -C bzip2/
[moe@master ~]$ ls bzip2/
b.txt d.txt
zip命令
zip 命令用于压缩文件。zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
通过 zip -r 压缩名称(不需要写后缀码) 压缩文件 来压缩文件
1 | [moe@master ~]$ zip -r zz b.txt d.txt |
又可以通过 unzip -d 压缩后的文件目录 压缩文件 来解压文件
1 | [moe@master ~]$ unzip -d zz zz.zip |
压缩后的文件目录如果没有会自动创建
上述三种压缩方式的压缩率对比:zip < gzip < bzip2,通用性则是:zip > gzip > bzip2,所以最终常用的压缩方式取中间的 gzip 即可,在Windows中下载的般都是以 tar.gz 为后缀名的文件
which 命令
which命令用于查找文件。which指令会在环境变量$PATH设置的目录里查找符合条件的文件
语法:which [文件…]
参数:
- -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
- -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
- -w 指定输出时栏位的宽度。
- -V 显示版本信息。
寻找命令 tar 所在的文件在哪
1 | [moe@master ~]$ which tar |
切换到root(超级管理员)下,可以使用 su [用户] 命令
1 | [moe@master ~]$ su |
修改用户的密码,可以使用 **passwd [用户]**,此时修改的密码不能简单的使用123456来设置
1 | [root@master moe]# passwd root |
可以在root用户下修改其他用户的密码,此时密码可以用简单的数字表示
exit 命令可以退出当前用户到上一个用户。如果没有,则关闭终端窗口
who 命令可以查看当前登录的用户
1 | [moe@master ~]$ who |
pts:代表终端用户、tty:代表操作系统用户。可以通过 pkill -kill -t [pts/tty]
reboot 和 shutdown 命令:
chmod 命令
chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
其中:
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取(数字代号为’4’),w 表示可写入(数字代号为’2’),x 表示可执行(数字代号为’1’),- 表示不具有任何权限(数字代号为’0’)
1
2
3
4
5
6
7
8[moe@master ~]$ ll d.txt
-rw-rw-r-- 1 moe moe 50 4月 15 16:39 d.txt
[moe@master ~]$ chmod u+x d.txt
[moe@master ~]$ ll d.txt
-rwxrw-r-- 1 moe moe 50 4月 15 16:39 d.txt
[moe@master ~]$ chmod u=- d.txt
[moe@master ~]$ ll d.txt
----rw-r-- 1 moe moe 50 4月 15 16:39 d.txt可以直接通过 =- 来取消所有权限