Linux实用指令

230 阅读6分钟

在说实用指令之前,先给出Linux系统的文件树

linux系统文件树

二、使用vim编辑器

三个模式:

  • 正常模式:在插入模式或命令行模式下按ESC进入正常模式,此模式可以使用快捷键,使用vim命令打开文件就进入正常模式。
  • 插入模式:在正常模式下按 i 或 a ,进入插入模式,这个模式可以编辑文件内容。
  • 命令行模式:在正常模式下按 : 进入,可以使用一些指令,完成读取,保存,离开,显示行号等动作。 vim编辑器
# 快捷键使用案例:未标注的在正常模式下使用
/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指令内置若干快捷键

more指令

less FilePath 	# 用来分屏查看文件内容,比more指令更加强大。它并不是一次性将整个文件加载后才显示,根据显示需要加载内容,对于显示大型文件有较高的效率。

less指令

>  # 输出重定向,会将原来文件的内容覆盖
>> # 追加,不会覆盖原文件,而是追加到文件尾部
# 例:
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 目录下,这个目录必须存在,否则报错