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内置命令的帮助信息