一、关机重启类指令
shutdown -h now   #立即关机

shutdown -h 1  #一分钟后关机

shutdown -r now  #立即重启

reboot  #重启系统

sync  #将内存数据同步到磁盘,在关机前应首先执行该命令,防止数据丢失
二、文件目录类指令

1. pwd —显示当前工作目录的绝对路径

pwd   #显示当前工作目录的绝对路径

2. ls —显示文件和目录

ls    #显示文件和目录
ls -a    #-a选项表示显示当前目录的所有文件和目录,包括隐藏文件
ls -l	#-l选项表示以列表的形式显示信息,便于人眼观察

3. cd —切换到指定目录

cd /home/jerry/downloads	#切换到home下面的jerry目录下面的downloads目录
cd ..	#回到上一级目录
cd ~	#回到登录用户的家目录,也可以直接用cd

4. mkdir —创建目录

mkdir ./jerry_test	#在当前目录下创建jerry_test目录
mkdir -p ./jerry_test1/jerry_test2	#创建多级目录,也就是如果要创建的目录下面还有要创建的目录,
                                    #需要加上-p选项

5. rmdir —删除空目录

rmdir ./jerry_test	#删除当前目录下的jerry_test目录

注意:rmdir删除的是空目录,如果该目录下存在内容,则无法删除。如果要删除非空目录,需要使用下面的指令:rm -rf

rm -rf ./jerry_test1

6. touch —创建空文件

touch ./jerry.txt	#在当前目录下创建jerry.txt空文件

7. cp —拷贝文件到指定目录

cp jerry.txt ../jerry	#将当前目录下的jerry.txt文件拷贝到上级目录下的jerry文件夹中
cp -r jerry_test1 ../jerry  #将当前目录下的jerry_test1文件夹递归的拷贝到上级目录下的jerry目录

拷贝时,如果目标文件夹中包含与源文件相同的文件或文件夹,系统会提示是否覆盖,如果不想要系统提示,可以使用 \cp 或者 \cp -r 进行强制覆盖。

8. rm —删除文件或目录

rm [选项] [文件或目录名]
rm ./jerry_test	#删除当前目录下的jerry_test目录
rm -r 	#递归删除整个文件夹
rm -f	#强制删除,不提醒

9. mv —移动文件

#在同一目录下移动相当于重命名
mv oldnamefile newnamefile

#在不同目录下移动相当于剪切
mv movefile targetfolder

10. cat —以只读方式查看文件内容

cat [文件名]
cat -n [文件名]  #显示行号

cat 常与管道命令一起使用,如:cat 文件名|more

11. more —more指令是一个基于VI编辑器的文本过滤器,它以全屏的方式按页显示文本内容

more hello.txt

more指令快捷键

快捷键

含义

空格键

向下翻一页

enter键

向下翻一行

q

立即离开more指令,不再显示该文件内容

Ctrl+F

向下滚动一屏

Ctrl+B

向上滚动一屏

=

输出当前行行号

:f

输出文件名和当前行行号

12. less —less指令用来分屏查看文件内容,其功能与more指令类似,但比more指令更加强大,支持各种显示终端,less指令在显示文件内容时,并不是一次将整个文件加载之后显示,而是根据需要加载内容,对于显示大型文件效率较高。

less hello.txt

less快捷键

快捷键

含义

空格键

向下一页

【pagedown】

向下一页

【pageup】

向上一页

/字串

向下搜索字串的功能,在此命令下,n:向下查找,N:向上查找

?字串

向上搜索字串的功能,在此命令下,n:向上查找,N:向下查找

q

离开less指令

13. >指令和>>指令 —输出重定向及追加内容
>指令是输出重定向指令,会将原来的内容覆盖
>>指令是追加指令,不覆盖原来的内容,将新内容追加到文件末尾

ls -l > a.txt	#将ls -l指令显示的内容覆盖写入a.txt,如果该文件不存在,则创建该文件并覆盖写入

ls -al >> b.txt		#将ls -al的显示内容追加到b.txt末尾

cat hello.txt > c.txt 	#将hello.txt的内容覆盖c.txt的内容

echo "hello" >> d.txt	#将hello追加到d.txt末尾

14. echo —输出内容到控制台

echo [选项] [输出内容]
echo $path 	#输出环境变量path

echo "hello,world!" 	#输出文本hello,world!

echo指令一般输出环境变量和简单文本

15. head —显示文件开头部分,默认前10行

head hello.txt	#显示hello.txt的前10行

head -n 5 hello.txt		#显示hello.txt的前5行

16. tail —显示文件末尾部分,默认后10行

tail hello.txt	#显示hello.txt的后10行

tail -n 5 hello.txt		#显示hello.txt的后5行

tail -f hello.txt 	#实时追踪hello.txt所有更新,当另一终端对该文件更新时,这边会实时显示

17. ln —软连接,也叫符号链接,类似于Windows中的快捷方式,主要存放链接其他文件的路径

ln -s [源文件或目录] [软链接名]
ln -s /root linkToRoot	#在/home目录下创建一个软链接linkToRoot,链接到/root目录,使用cd指令
						#切换到软链接时,切换到指向目录,但是使用pwd指令查看目录时,显示软链接
						#所在目录

rm -rf linkToRoot		#删除软链接

18. history —查看已经执行过的历史命令,也可以执行历史指令

history		#查看所有历史指令
history 10		#查看最后执行的10个指令
!3		#查看后执行该指令表示重新执行编号为3的历史指令
三、时间、日期类指令

1. date —显示当前日期

date  #显示当前时间

date "+%Y"  #显示当前年份

date "+%m"  #显示当前月份

date "+%d"  #显示当前是哪一天

date "+%Y-%m-%d %H:%M:%S"  #以 年-月-日 时:分:秒 形式显示当前时间

date -s "2020-4-6 21:00:00"  #设置时间

2. cal —查看日历

cal  #显示本月日历

cal 2020  #显示2020年日历
四、搜索查找类指令

1. find —从指定目录向下递归遍历各个子目录,将满足条件的文件或目录显示在终端

find [搜索范围] [选项]
选项说明:
-name 按照文件名查找文件
-user 按照文件所有者的用户名查找文件
-size 按照文件大小查找文件

find /home -name hello.txt  #在home目录下(包括子目录)查找hello.txt文件

find /opt -user nobady  #在opt目录下,查找属于nobady的文件

find / -size -20M  #在根目录下查找小于20M的文件
-20M 表示小于20M
+20M 表示大于20M
20M 表示等于20M

find / -name *.txt  #在根目录下查找所有.txt文件

2. locate —locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库,事先快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确性,管理员需要定期更新locate时刻。
由于locate指令是基于数据库查询,所以在第一次运行前,必须使用updatedb 指令创建locate数据库。

locate *.txt  #查询所有的.txt文件

3. grep指令和管道符号 |
grep—过滤查找
管道符号 | —将前一个命令的处理结果传递给后面的命令处理

grep [选项] 查找内容 源文件
选项:
-n 显示匹配行及行号
-i 忽略字母大小写

cat hello.txt | grep -n jerry  #在hello.txt中查找jerry

cat hello.txt | grep -ni jerry  #在hello.txt中查找jerry,忽略大小写
五、压缩、解压类指令

1. gzip/gunzip

gzip 文件  #该指令只能将文件压缩为*.gz文件,压缩后原文件不保留
gunzip *.gz  #将文件解压,解压后不保留原压缩文件

gzip hello.txt
gzip hello.txt.gz

2. zip/unzip

zip [选项] *.zip 要压缩的文件  #压缩文件或目录
unzip [选项] *.zip #解压文件或目录
选项:
-r 递归压缩,即压缩目录
-d 指定解压后文件的存放目录

zip -r mypackage.zip /home/
unzip -d /opt/tmp/ mypackage.zip

此指令不删除原文件

3. tar
tar指令是打包指令,最后打包的文件是 .tar.gz 文件

tar [选项] *.tar.gz 要打包的内容
选项:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件

tar -zcvf a.tar.gz a1.txt a2.txt  #将a1.txt和a2.txt文件打包成a.tar.gz

tar -zcvf myhome.tar.gz /home/  #将home目录打包成myhome.tar.gz

tar -zxvf a.tar.gz  #将a.tar.gz解压到当前目录

tar -zxvf myhome.tar.gz -C /opt/  #将myhome.tar.gz解压到opt目录下
六、帮助命令

当对某个指令不熟悉时,可以使用帮助命令了解指令的使用方法

man [命令或配置文件]  #获取帮助信息
help [命令]  #获取shell内置命令的帮助信息