在说实用指令之前,先给出Linux系统的文件树
二、使用vim编辑器
三个模式:
- 正常模式:在插入模式或命令行模式下按ESC进入正常模式,此模式可以使用快捷键,使用vim命令打开文件就进入正常模式。
- 插入模式:在正常模式下按 i 或 a ,进入插入模式,这个模式可以编辑文件内容。
- 命令行模式:在正常模式下按 : 进入,可以使用一些指令,完成读取,保存,离开,显示行号等动作。
# 快捷键使用案例:未标注的在正常模式下使用
/xx # 在命令行下使用 ,查找 xx , 按下 n 代表下一个 next
set nu # 在命令行下使用 ,设置文件行号
set nonu # 在命令行下使用 ,取消文件行号
wq! # 在命令行下使用 ,保存并退出
q! # 在命令行下使用 ,退出不保存
[n]yy # 拷贝当前行向下n行 copy
p # 粘贴 paste
[n]dd # 删除当前行向下n行 delete
G | [gg] # G:跳转到最末行,gg:跳转到最首行
u # 撤销上一步动作
n-回车 shift+g # 跳转到第n行
三、重启、关机、用户注销
3.1、重启与关机
reboot # 立即重启
-----------------------------------
halt # 停止机器:停止cpu,但不断电
halt -p # 关闭机器:断电
-----------------------------------
shutdown -h now # 关闭机器
shutdown -h 1 # 一分钟后关机
shutdown -r now # 立即重启
-----------------------------------
poweroff -halt # 停止机器
poweroff # 关闭机器
-----------------------------------
syn # 将内存中的数据同步到磁盘,在执行关机或重启命令前应该先执行这个命令
3.2、用户登陆和注销
su - 用户名 # swich user,使用指定用户登陆,权限大的用户跳转到小权限用户,不需要密码,反之,则需要
exit # swich user后,可以使用exit退出当前用户
logout # 注销当前用户,在运行级别5无效,运行级别3有效
四、实用指令
4.1、帮助指令
man ls # 在终端打印ls指令的帮助文档
help ls # 在终端打印ls指令的帮助文档
4.2、文件目录类指令
pwd # print work dirtory,打印当前工作目录
ls -[l|a] # list,打印当前目录下的文件或文件夹
# -l 列表方式显示信息,即显示详细信息
# -a 显示隐藏文件夹和文件
cd File # change dirtory,切换到指定目录
# 常用参数: 绝对路径和相对路径
# ~ :回到家目录
# .. :上一级,. :这一级
mkdir -[p] FileName # 创建文件夹
# -p 创建多级目录/文件夹
rmdir FileName # 删除文件夹,只能删除空文件夹
touch FileName # 创建一个空文件
cp -[r] source dest # 将源路径文件复制到目标路径,如果是文件夹需要加参数
# -r 递归复制整个文件夹
# \cp ·· 强制覆盖不提示
rm -[r|f] FilePath # remove,删除目录,如果是目录需要加上参数
# -r 递归删除整个文件夹,删除文件夹需要加上
# -f force,强制删除不提示
mv source dest # 将源路径文件移动到目标路径,参数和cp 类似
mv oldNameFile newNameFile # 重命名文件
cat -[n] FileName # 以只读方式查看文件
# -n 显示行号
# 使用管道符 |more 实现分页浏览
more FilePath
# more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令内置若干快捷键
less FilePath # 用来分屏查看文件内容,比more指令更加强大。它并不是一次性将整个文件加载后才显示,根据显示需要加载内容,对于显示大型文件有较高的效率。
> # 输出重定向,会将原来文件的内容覆盖
>> # 追加,不会覆盖原文件,而是追加到文件尾部
# 例:
ls -l > FilePath # 将显示的内容写入目标文件,覆盖写,如果不存在此文件,则创建。
ls -l >> FilePath # 将显示的内容追加到目标文件末尾
echo xxx # 输出内容到终端,例:echo "Hello,World" ,echo $ PATH :输出PATH环境变量的值
head -[n x] FilePath # 输出这个文件的起始 x 行,默认10行
# -n x :n是选项 , x是参数
tail -[n x|f] FilePath # 输出这个文件的尾部 x 行,默认10行
# -n x :n是选项 , x是参数
# -f :实时追踪该文档的更新,常用
ln -[s] file name # 给目标创建一个硬链接,即快捷方式
# 创建的是软链接,即快捷方式
# 当使用软链接进入某个目录,pwd 显示的还是原目录
history x # 查看已经执行过的 x 条历史命令,默认所有
!num # 使用history 后显示:命令序号(num) 命令 ,可以使用 !num 再次执行这个命令
4.3、日期时间类
date # 显示当前时间 例:Mon Aug 24 19:48:43 CST 2020
date "+pattern" # 以模板方式显示时间
# %Y 当前年份,%m 当前月份,%d 当前是一个月中的第几天
# %H 小时、24小时制 , %M 分钟 ,%S 秒
date -s # 设置日期 ,如 date -s "2020-8-24 19:55:07"
cal [num] # 显示本月日历
# 显示 num一整年的日历
4.4、搜索查找类
find 搜索范围 -[name|user|size] xxx # 在指定路径下查找文件或文件夹
# -name 按照指定 文件名模式 查找文件 如:hello.java , *.java
# -user 查找属于指定用户的所有文件 如:root ,lxh
# -size 按照指定文件大小查找文件,+n 大于n,-n 小于n, n 等于n 如:+20M 大于20兆,-20k 小于20k
locate FileName # 根据文件名查找文件
# locate指令可以快速定位文件路径,它利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。它无序遍历整个文件系统,查询速度较快,但是为了保证结果精确度,需要定期更新locate数据库。
updatedb # 更新locate数据库,第一次查找也需要使用这个指令建立数据库
grep指令和管道符 |
管道符:|,表示将前一个指令的处理结果输出传递给后面的命令处理
grep 过滤查找。
grep -[n|i] content SourceFile # 经常与 | 一起使用
# -n 显示匹配行及行号
# -i 忽略字母大小写
# 例
grep -ni g a.txt # 从a.txt文件中查找 g ,并且出去含有g的行及行号
cat a.txt |grep -ni g # cat 指令输出 a.txt 文件的内容传递给grep指令 使用,和上个指令效果一样
4.5、文件压缩类
gzip file # 把文件压缩为 *.gz 文件,压缩文件放在源文件路径,并且源文件不保留
gunzip *.gz # 解压文件到 压缩文件自己的目录
zip -[r] FileName.zip file # 压缩文件
# -r 递归压缩, 即如果要压缩目录,需要加上
unzip -[d] *.zip # 解压缩文件
# -d 在参数后面 指定解压后文件存放目录
# tar 既是压缩命令也是解压命令,打包后文件名为xx.tar.gz
tar -[···] FileName.tar.gz 打包的内容 # 打包内容是 变长参数
# -c 产生.tar.gz 文件
# -v 显示详细信息
# -f 指定压缩后的文件名
# -z 打包同时压缩,如果不加这个参数,打包后的文件比原文件还大
# -x 解压.tar.gz 文件
# 例:
tar -zcvf a.tar.gz a.java b.txt # 对 a.java b.txt 两个文件进行压缩,压缩为a.tar.gz文件
tar -xvf a.tar.gz /opt # 将a.tar.gz文件解压至 /opt 目录下,这个目录必须存在,否则报错