目录
01. ls 指令
全称:list
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息
常用选项
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息
- -n 用数字的 UID,GID 代替名称
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
- -r 对目录反向排序
- -t 以时间排序
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
- -R 列出所有子目录下的文件。(递归)
- -1 一行只输出一个文件。
直接使用 ls 或 ls . 都表示显示当前路径下的所有文件名,在我的当前路径下有三个文件——绿色的可执行文件(.out),蓝色的目录文件,白色的普通文件
![](https://i-blog.csdnimg.cn/blog_migrate/22f1b13bd097e81fa9eac6d96b8258c1.png)
linux指令通常带有若干选项,可以通过选项实现功能的细分,例如 ls -a 可以显示当前目录下包括隐藏文件在内的所有文件,其中 -a就是选项
linux下以 . 开头的文件是隐藏文件,直接使用 ls 指令并不显示,需要带 -a选项
linux中有两个特殊的目录
- . 代表用户所在的工作目录,即当前目录,用一个点来表示
- .. 代表当前目录的上一级目录,也叫父目录,可以使用两个点来表示
![](https://i-blog.csdnimg.cn/blog_migrate/e99552650900c35b317df9a19e32159a.png)
ls -l 能够列出非隐藏文件的详细信息——包括大小、权限、所有者、修改时间等,ls -l 可以写成 ll,具有同样的效果
![](https://i-blog.csdnimg.cn/blog_migrate/b62f953521deb4425c8d727f5389d17d.png)
ls指令支持同时带多个选项,如 ls -a -l ,也能写成 ls -al 或 ls -la,选项的作用可以叠加,ls -al列出包括隐藏文件的所有文件详细信息
![](https://i-blog.csdnimg.cn/blog_migrate/1ff17fae07e5d94edff27e7fb9c936aa.png)
02. pwd命令
全称:print working directory
语法:pwd
功能:显示用户当前所在的目录
常用选项
无
输入pwd,在屏幕上打印出你当前所处的目录
[hqs@VM-8-2-centos 5]$ pwd
/home/hqs/code/January/5
03. cd 指令
全称:change directory
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录(可以是绝对路径也可以是相对路径)下
常用选项
cd指令一般不带选项,但指令本身有选项
- -p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
- -L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录
- - 当仅使用'-'一个选项时,当前工作目录将被切换到环境变量'OLDPWD'所表示的目录
绝对路径:从根目录开始,定位一个文件(日常操作较少使用,多用于正式场合如配置文件中)
![](https://i-blog.csdnimg.cn/blog_migrate/e16dc269e115b21c857f635a93ae4376.png)
相对路径:不以根目录开始,而是以当前路径为参考点,定位一个文件(操作简单,日常操作使用较多)
![](https://i-blog.csdnimg.cn/blog_migrate/6313305715098850d1cf483d6410c27d.png)
cd 命令还有几个常用的用法
- cd ~ 和 cd $HOME 和 cd 这三条指令完全等价,都表示直接切换到用户主目录
- cd - 表示返回进入此目录之前所在的目录
- cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/')
- cd ../.. 返回上两级目录
- cd !$ 把上个命令的参数作为cd参数使用
04. touch指令
全称:touch
语法:touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
常用选项
- -a 或--time=atime或--time=access或--time=use只更改存取时间
- -c 或--no-create 不建立任何文档
- -d 使用指定的日期时间,而非现在的时间
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
- -m 或--time=mtime或--time=modify 只更改变动时间
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
- -t 使用指定的日期时间,而非现在的时间
#创建一个新的普通文件
[hqs@VM-8-2-centos 5]$ ls
a.out dir test.cpp
[hqs@VM-8-2-centos 5]$ touch newfile.txt
[hqs@VM-8-2-centos 5]$ ls
a.out dir newfile.txt test.cpp
![](https://i-blog.csdnimg.cn/blog_migrate/03fe513c7b6cb0d887323777c30de849.png)
05. mkdir指令
全称:make directory
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项
- -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
![](https://i-blog.csdnimg.cn/blog_migrate/03b9824f71e0fae58e09fdd8772e0478.png)
使用 mkdir -p 可一次性建立多个目录
[hqs@VM-8-2-centos dir]$ ls
[hqs@VM-8-2-centos dir]$ mkdir -p dir1/dir2/dir3/dir4
[hqs@VM-8-2-centos dir]$ tree
.
`-- dir1
`-- dir2
`-- dir3
`-- dir4
4 directories, 0 files
[hqs@VM-8-2-centos dir]$ cd dir1/
[hqs@VM-8-2-centos dir1]$ cd dir2/
[hqs@VM-8-2-centos dir2]$ cd dir3/
[hqs@VM-8-2-centos dir3]$ cd dir4/
06. rmdir指令
全称:remove directory
语法:rmdir [-p][dirName]
功能:删除空目录
常用选项
- -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
注意:rmdir指令仅供具有当前目录操作权限的所有使用者使用,且如果要删除的目录并非空目录(目录内有文件),rmdir指令不起作用
[hqs@VM-8-2-centos 5]$ rmdir dir/
rmdir: failed to remove ‘dir/’: Directory not empty
07. rm 指令
全称:remove
语法:rm [-f-i-r-v][dirName/dir]
功能:删除文件或目录
常用选项
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
rm + 普通文件名可直接删除文件
[hqs@VM-8-2-centos 5]$ ls
a.out newfile.txt test.cpp testdir
[hqs@VM-8-2-centos 5]$ rm newfile.txt
[hqs@VM-8-2-centos 5]$ ls
a.out test.cpp testdir
如果使用 rm + 目录会报错
[hqs@VM-8-2-centos 5]$ rm testdir/
rm: cannot remove ‘testdir/’: Is a directory
因此删除目录需要带上 -r 选项,-r 代表递归删除,将目录内所有文件全删除
[hqs@VM-8-2-centos 5]$ rm -r testdir/
[hqs@VM-8-2-centos 5]$ ls
a.out test.cpp
如果目录中的文件有权限,我们使用 -f 选项强制删除,通常和 -r 选项结合,使用 rm -rf [目录名]
08. man指令
全称:manual
语法:man [选项] 命令
功能:访问Linux手册页,查找指令用法
常用选项
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
man手册分为八章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
当我们不带任何选项直接使用 man + 命令 ,得到的结果默认是指令(1)
man open
左上角标明1,说明此时man手册给出的是指令open
当我们以 man + num + 命令 打开时,如
man 2 open
左上角标明2,说明此时man手册给出的是系统调用函数open
安装man手册的命令为:
yum install -y man-pages
09. cp指令
全称:copy
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录
常用选项
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
/// content目录中有两个文件——1.目录work 2.普通文件task
[hqs@VM-8-2-centos content]$ ls
task work
// 将work和task都拷贝到当前目录
[hqs@VM-8-2-centos 5]$ cp -r content/* . 带 -r 选项才能将目录work拷贝
[hqs@VM-8-2-centos 5]$ ls
a.out content task test.cpp work
10. mv指令
全称:move
语法:mv [选项] 源文件或目录 目标文件或目录
功能:
- 根据mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中
常用选项
- -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i : 若目标文件 (destination) 已经存在时,就会询问是否覆盖
![](https://i-blog.csdnimg.cn/blog_migrate/84604d070bfa75403e7abdb4255212ed.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0ecf5b6bef21941264b2fb929dd090cb.png)
11. cat指令
全称:concatenate(连接)
语法:cat [选项][文件]
功能:查看目标文件的内容
常用选项
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
[hqs@VM-8-2-centos 5]$ ls
a.out content temp test.cpp
[hqs@VM-8-2-centos 5]$ cat test.cpp // cat 不带选项
#include <stdio.h>
int main()
{
printf("I am a file...\n");
return 0;
}
[hqs@VM-8-2-centos 5]$ cat -n test.cpp // cat -n + 文件 (带行号)
1 #include <stdio.h>
2
3 int main()
4 {
5 printf("I am a file...\n");
6
7 return 0;
8 }
[hqs@VM-8-2-centos 5]$ cat -s test.cpp // cat -s + 文件
#include <stdio.h>
int main()
{
printf("I am a file...\n");
return 0;
}
对于cat指令,有一个和他相似的指令——tac指令,就是将cat指令反过来输入,其效果也就是将一个目标文件的内容从后往前打印
[hqs@VM-8-2-centos 5]$ tac test.cpp
}
return 0;
printf("I am a file...\n");
{
int main()
#include <stdio.h>
12. echo指令
全称:echo
语法:echo [-选项][字符串]
功能:将输入的字符串送往标准输出,输出的字符串间以空白字符隔开, 并在最后加上换行号
常用选项
- -n 取消自动换行
- -e 打开反斜杠ESC转义
- -E 取消转义
[hqs@VM-8-2-centos 5]$ echo "hello" // echo + 字符串
hello
[hqs@VM-8-2-centos 5]$ echo -n "hello" // echo -n + 字符串
hello[hqs@VM-8-2-centos 5]$
echo是将输入的字符串送往标准输出,如果我们也可以使用输出重定向将本该送往标准输出的字符串重定向到某个文件中
[hqs@VM-8-2-centos 5]$ ls
a.out content temp test.cpp
// 重定向字符串"hello file"到文件file.txt中
[hqs@VM-8-2-centos 5]$ echo "hello file" > file.txt
[hqs@VM-8-2-centos 5]$ ls
a.out content file.txt temp test.cpp
[hqs@VM-8-2-centos 5]$ cat file.txt
hello file
// 再次重定向一个字符串到file.txt中
[hqs@VM-8-2-centos 5]$ echo "hi hello file" > file.txt
[hqs@VM-8-2-centos 5]$ cat file.txt
hi hello file
// 第三次将一个字符串重定向到file.txt中————追加重定向
[hqs@VM-8-2-centos 5]$ echo "aaaaa" >> file.txt
[hqs@VM-8-2-centos 5]$ cat file.txt
hihello file
aaaaa
第二次重定向发现第一次重定向的内容被完全修改了,所以在这里输出重定向符号 >的作用是
- 创建没有的文件
- 将本该写入显示器的内容写入到了文件中
- 每次向文件中写入,都会将原来的内容覆盖(先删除原来的内容再写入)
第三次重定向使用 >> 两个大于符号, 是为追加重定向
- 在原来文件的基础上增加,并不删除原有的内容
输入重定向符号 < ,其作用是将键盘输入改为从文件中输入(之后对于输入输出重定向会有详解,这里只知道用法即可)
[hqs@VM-8-2-centos 5]$ cat < file.txt
hi hello file
aaaaa
13. more指令
全称:more
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项
- +n 从第n行开始显示
- -n 设置屏幕大小为n行
- q 退出more
当我们有一个大文本时,例如内容有10000行,使用cat会将整个文件打印出来,而使用more命令会将整个屏幕铺满之后便停止
![](https://i-blog.csdnimg.cn/blog_migrate/93ed20fe47652f6b827ddca267f1c936.png)
想要看前面或后面的内容
- 按空格会往后翻一页,一页大小为你设置的大小(否则默认铺满屏幕)
- 按回车往后跳一行
- 按b键(back)往前翻一页
14. less指令
全称:less
语法:less [参数] 文件
功能:less与more类似,但less在查看之前不会加载整个文件
常用选项
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串: 向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n(next): 重复前一个搜索(与 / 或 ? 有关)
- N: 反向重复前一个搜索(与 / 或 ? 有关)
- q: 退出less
less可以使用方向键前后翻,也可以查找文件中的某一字符串——具体使用方法是在less的交互模式下,输入 /字符串
![](https://i-blog.csdnimg.cn/blog_migrate/b538b89dcde78f46028cf0f984cfbb93.png)
15. head指令
全称:head
语法:head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
常用选项
- -n<行数> 显示的行数
使用head命令显示文件的前20行
![](https://i-blog.csdnimg.cn/blog_migrate/082f2fbd3c781f8b247d0f2ba50c1c89.png)
16. tail指令
全称:tail
语法:tail[必要参数][选择参数][文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
常用选项
- -f 循环读取
- -n<行数> 显示行数
使用tail命令显示文件的最后20行
![](https://i-blog.csdnimg.cn/blog_migrate/a069923affbd5d75831f6a601b7ac518.png)
17. date指令
全称:date
语法:date [OPTION]... [+FORMAT]
功能:用于以指定格式显示时间
常用格式
- %H : 小时(00..23)
- %M : 分钟(00..59)
- %S : 秒(00..61)
- %X : 相当于 %H:%M:%S
- %d : 日 (01..31)
- %m : 月份 (01..12)
- %Y : 完整年份 (0000..9999)
- %F : 相当于 %Y-%m-%d
单独使用date,给出的时间不便于阅读
[hqs@VM-8-2-centos 5]$ date
Thu Jan 5 16:36:12 CST 2023
通常按照一定的格式打印时间
[hqs@VM-8-2-centos 5]$ date +%Y
2023
[hqs@VM-8-2-centos 5]$ date +%Y/%m
2023/01
[hqs@VM-8-2-centos 5]$ date +%Y/%m/%d
2023/01/05
[hqs@VM-8-2-centos 5]$ date +%Y/%m/%d-%H
2023/01/05-16
[hqs@VM-8-2-centos 5]$ date +%Y/%m/%d-%H:%M
2023/01/05-16:40
[hqs@VM-8-2-centos 5]$ date +%Y/%m/%d-%H:%M:%S
2023/01/05-16:40:58
date也可以用于打印时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
[hqs@VM-8-2-centos 5]$ date +%s
1672908159
也可以用于查找某个时间戳对应的时间
[hqs@VM-8-2-centos 5]$ date -d@0
Thu Jan 1 08:00:00 CST 1970
18. cal指令
全称:calendar
语法:cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项
- -3 显示系统前一个月,当前月,下一个月的月历
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
- -y 显示当前年份的日历
19. find指令
全称:find
语法:find pathname -options
功能:用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项
- -name 按照文件名查找文件
在我的用户目录下查找所有test.c文件的命令为
find ~ -name test.c
20. which指令
全称:which
语法:which [选项][参数]
功能:用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。在环境变量PATH设置的目录里查找符合条件的文件
常用选项
- -a,显示所有匹配的可执行的路径
- --skip-alias,忽略别名
- -V:显示版本信息
在linux下,一条命令实际上也是可执行程序,因此也必须在某个文件中,例如查找指令 ls 的所在路径,可以看到ls所在的路径为 /usr/bin/ls
[hqs@VM-8-2-centos 5]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
21. whereis 指令
全称:whereis
语法:whereis [options] file
功能:命令用于查找文件,该指令会在特定目录中查找符合条件的文件,该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使同locate或find命令
常用选项
- -b: 仅搜索二进制文件。
- -B <dirs>: 更改或限制whereis搜索二进制文件的位置。
- -m: 仅搜索源。
- -M <dirs>: 更改或限制whereis搜索手册部分的位置。
- -s: 仅搜索源。
- -S <dirs>: 更改或限制whereis搜索源的位置。
- -f: 不显示文件名前的路径名称。
- -u: 搜索不寻常的条目,如果文件没有每种请求类型的一个条目,则该文件被认为是不寻常的,即查找不包含指定类型的文件。
- -l: 输出有效的查找路径
whereis只会在系统路径下查找文件,并不会在用户路径下查找
whereis 命令查找速度非常快,这是因为它根本不是在磁盘中漫无目的乱找,而是在一个数据库中(/var/lib/mlocate/)查询。这个数据库是 Linux 系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行 updatedb 命令更新一次。也正是因为这个数据库要每天才更新一次,就会使得 whereis 命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到
[hqs@VM-8-2-centos 5]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
22. alias指令
全称:alias
语法:alias 别名 = '命令'
功能:给一个命令取别名
常用选项
- -p:显示全部已定义的别名
如果要将指令 ls -al 取一个别名叫做 showfile,我们可以输入
格式为
alias 别名='指令(可带参数)'
alias showfile='ls -al'
![](https://i-blog.csdnimg.cn/blog_migrate/2f0080f68016bfc7786f9b308a528d0c.png)
此时,我们用 which 命令查看 showfile
[hqs@VM-8-2-centos 5]$ which showfile
alias showfile='ls -al'
/usr/bin/ls
注意:alias取的别名仅在本次登录内有效,重新登录之后别名不可用
23. grep指令
全称:Global Regular Expression Print
语法:grep [选项] 搜寻字符串 文件
功能:在文件中搜索字符串,将找到的行打印出来
常用选项
- -i :忽略大小写的不同,所以大小写视为相同
- -n:顺便输出行号
- -v:反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
grep的全称表示全局正则表达式版本,它能使用正则表达式搜索文本,并把匹配的行打印出来
在一个文件中查找某字符串并显示行号
grep 字符串 -n 文件名
![](https://i-blog.csdnimg.cn/blog_migrate/321b872ecd1221464ccd5c814e5d67f3.png)
24. xargs指令
全称:Extended arguments(扩展参数)
语法:xargs [选项] [command]
功能:用于给其他命令传参数的过滤器
常用选项
- -0:如果输入的stdin含有特殊字符,例如反引号`、反斜杠\、空格等字符时,xargs可以将它还原成一般字符。为xargs的默认选项
- -a :从文件中读入作为sdtin
- -n :表示命令在执行的时候一次使用的argument的个数,由num指定,默认是用所有的参数
- -p:当每次执行一个argument的时候询问一次用户
- -t:表示先打印命令,然后再执行
- -e ,-E:flag可以是一个字符串或者是由空格分隔的多个字符串,当xargs分析到这个flag时,就会停止工作
xargs可以读取标准输入和管道中的数据,用于弥补有些命令(如echo、kill、rm)不能从管道中读取数据的不足
xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代
举个例子
[hqs@VM-8-2-centos 5]$ echo "-l -a -i"
-l -a -i
// 这里"-l -a -i"被当作字符串打印到屏幕上
如果要把 "-l -a -i" 作为命令行参数通过管道传给 ls ,类似下面的命令是不行的,原因是echo将字符串 "-l -a -i" 通过管道交给ls,而ls无法从管道中读取数据
[hqs@VM-8-2-centos 5]$ echo "-l -a -i" | ls
a.out content lfile.txt temp test.cpp
要将字符串 "-l -a -i" 通过管道作为命令行参数交给ls,使得就像直接运行 ls -a -l -i,可以使用xargs指令
[hqs@VM-8-2-centos 5]$ echo "-l -a -i" | xargs ls
total 200
917764 drwxrwxr-x 4 hqs hqs 4096 Jan 5 15:02 .
917757 drwxrwxr-x 7 hqs hqs 4096 Jan 5 11:30 ..
917770 -rwxrwxr-x 1 hqs hqs 8360 Jan 5 11:47 a.out
917771 drwxrwxr-x 2 hqs hqs 4096 Jan 5 14:14 content
917772 -rw-rw-r-- 1 hqs hqs 0 Jan 5 12:10 .I_am_a_hidden_file
917775 -rw-rw-r-- 1 hqs hqs 168908 Jan 5 15:02 lfile.txt
917773 drwxrwxr-x 3 hqs hqs 4096 Jan 5 14:16 temp
917769 -rw-rw-r-- 1 hqs hqs 82 Jan 5 11:47 test.cpp
简单来说,xargs的作用就是
将管道的输出结果,作为命令行参数交给后面的程序
25. zip/unzip指令
全称:zip/unzip
语法:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成zip格式
常用选项
- -r 递归处理,将指定目录下的所有文件和子目录一并处理
zip不仅将文件或目录打包,同样也会对其进行压缩
打包:将东西放在一起
压缩:采用某种压缩算法,压缩存储空间
打包和压缩的目的是便于传输或者归档
将当前路径下文件拷贝到zippacket目录种,简单使用zip对该目录进行压缩打包
使用unzip对mypacket.zip进行解压发现得到的zippacket内没有文件
使用zip可以直接压缩普通文件,而对整个目录默认只打包了目录,因此要对目录文件进行打包,必须带上 -r 选项递归完成
一般而言,解压的操作都是在当前目录下完成,如何解压到指定路径下呢,使用 -d 选项
![](https://i-blog.csdnimg.cn/blog_migrate/c0a1ccbe129038951d48013bfbf4fb8f.png)
26. tar指令
全称:tape archive
语法:tar [选项] 打包后文件名.tgz 要打包文件或目录
功能:将目录或文件打包备份
常用选项
- -c :建立一个压缩文件的参数指令(create 的意思);
- -x :解开一个压缩文件的参数指令!
- -t :查看 tarfile 里面的文件!
- -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
- -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
- -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
- -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
- -C : 解压到指定目录
tar的选项很多,常用的有 -c -z -v -f,压缩一个目录的命令为
tar -选项 打包后的名字 待打包的文件或目录名
tar -czvf mypacket.tgz tarpacket/
-c 表示要创建一个新的文件mypacket.tgz
-z 要对文件进行压缩
-v 要将压缩过程显示出来
-f 必须放在最后,紧跟形成的文件名
使用 tar 打包并压缩
使用 tar 解压文件,只需要将 -c 选项换成 -x
tar 指令解压到指定路径的选项为 -C
tar -xzf mypacket.tgz -C 路径名
27. bc指令
全称:binary calculator
语法:bc
功能:一个支持进行任意精度的计算器,能够方便地进行浮点数运算
常用选项
- -i: 强制进入交互式模式
- -l: 定义使用的标准数学库
- -w: 对POSIX bc的扩展给出警告信息
- -q: 不显示bc环境信息,直接运行命令
- -v: 显示指令版本信息
- -h: 显示指令的帮助信息
输入bc回车后,可以输入算数式进行计算,输入quit退出
[hqs@VM-8-2-centos 5]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2
3
3.3+4.4
7.7
12*3
36
45/5
9
quit
可以利用管道将字符串交给bc完成运算
[hqs@VM-8-2-centos 5]$ echo "1.5*3.4" | bc
5.1
28. uname指令
全称:uname
语法:umane [选项]
功能:uname用来获取电脑和操作系统的相关信息
常用选项
- -a(-all) 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
- -m 显示计算机硬件架构
- -n 显示主机名称
- -r 显示内核发行版本号
- -s 显示内核名称
- -v 显示内核版本
- -p 显示主机处理器类型
- -o 显示操作系统名称
- -i 显示硬件平台
29. history指令
全称:history
语法:history [选项]
功能:用于显示历史记录和执行过的指令命令
常用选项
- n: 显示历史记录中最近的N个记录
- -c:清空当前历史命令
- -a:将历史命令缓冲区中命令写入历史命令文件中
- -r:将历史命令文件中的命令读入当前历史命令缓冲区
- -w:将当前历史命令缓冲区命令写入历史命令文件中
- -d <offset>:删除历史记录中第offset个命令
- -n <filename>:读取指定文件
使用 Ctrl+R 搜索历史记录
当想要查找过去使用过的某一条指令时,按住 ctrl + R会进入交互界面,这时输入匹配的关键字即可进行查找
30. shutdown指令
全称:shutdown
语法:shutdown [选项] ** 常见选项:**
功能:关闭系统服务
常用选项
-f:重新启动时不执行fsck
-F:重新启动时执行fsck
-h:将系统关机
-k:只是送出信息给所有用户,但不会实际关机
-n:不调用init程序进行关机,而由shutdown自己进行
-r:shutdown之后重新启动
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒