linux操作从入门到放弃
2025-08-22 16:05:43,

inux常用操作

一、基础指令

pwd # 查看路径
ls # 查看当前目录文件
ls -1 # 垂直显示文件
ls -a # 显示包括隐藏文件的所有文件
ls -l # 显示文件详细信息
touch [filename1] # 创建文件,可以批量创建文件,如果重名则跳过
touch .[filename] # 创建隐藏文件
move [path/fliename1] [path/filename2] # 移动文件且可以改名
rm [filename] # 删除文件,无法撤销,课同时删除多个文件
rm -r dev # 删除目录,会带询问
rm -rf dev # 强制删除目录
cp  [filename1] [filename2] # 将filename1 复制为 filename2
mkdir dev # 创建一个dev文件夹
cd path # 切换到path路径下

二、vi操作与快捷键

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

三、文件内容查看

cat [filename] # 查看文件内容
tac [filename] # 倒序查看文件内容
head [filename] # 展示文件前十行
head -n 5 [filename] # 展示文件前五行
tail [filename] # 展示文件后十行
tail -n 5 [filename] # 展示文件后五行

四、管道

管道符号:| ,可以将前面指令的执行结果,作为后面指令的操作内容

五、文件内容过滤

cat -n [filename] # 显示文件内容包括行号	
wc -l [filename/dev] # 统计行数,统计文件夹下的文件数量
wc -c [filename] # 统计文件中有多少个字节
seq [num1] [num2] # 生成数字序列num1-num2
seq -w [num1] [num2] # 设置等宽序列
#grep 按行过滤
grep [str] [filename] # 匹配filename中str字符串,模糊匹配
	-w 精准匹配
	-n 显示行号
	# 配合管道符使用可以过滤数据
#awk 按列过滤
awk '{print $1}' [filename] # 取filename文件的第一列数据
	-F [str] # 指定分隔符str
cat [filename] | sort # 给filename文件排序
	| uniq # 去重

六、用户和组操作

# 添加与删除
useradd [username] # 添加用户名字
passwd [username]  # 设置用户密码
ls /home/          # 这里存放这用户的相关文件夹
userdel [username] # 删除用户指令(当前用户没有被使用),无法彻底删除用户残留文件
	-r # 彻底删除用书残留文件
# 修改与查看
usermod -L [username]  # 锁定用户
  	-U [username]  # 解锁用户
lchage - l [username] #查看用户的详细信息
id [username]      # 查看用户的相关信息
cat /etc/passwd    # 查看用户名与用户家目录路径
cat /etc/shadow    # 查看所有用户密码 
w #查看当前有哪些用户登录服务器,Linux支持多个用户同时登录一个系统进行操作

#组操作
cat /etc/group #查看组
groupadd [groupname] # 添加组
useradd -g [groupname] [username] #创建用户并指定组
usermod -G [groupname] [username] #更改用户的组
groupmod -n [groupname1] [groupname2] #更改组名

七、权限管理

7.1 文件权限

r 4 代表读权限
w 2 代表写权限
x 1 代表可执行权限
- 0 空权限

权限值表
0 #-
1 #x
2 -w-
3 -wx
4 r#
5 r-x
6 rw-
7 rwx

uGo权限体系
	#-        #-          #-
	user       group        other
	当前用户权限 当前组用户权限 其它用户权限
	
chmod [args] [filename] # 修改filename权限指令,args为修改权限的参数

chown [group] [filename] # 修改filename的属组为group

7.2 目录权限

文件权限:rwx 读写执行
目录的权限:rwx,r表示可以查看的目录下有哪些文件,x表示可以cd切换到该目录,w表示可以在该目录中创建、修改、删除文件

为了安全操作:
文件权限默认:644权限、狠一点就给600权限
目录权限默认:755权限、狠一点就给700权限

7.3 Linux环境变量

echo $PATH #打印已配置环境变量目录

7.4 文件属性详解

# 文件属性
[root@localhost dabig]# ll
-rw-r#r#. 1 root root 0 5月   4 18:49 1.txt
# 第一段第一个字符表示文件类型 -文件、d目录、l软连接(对应windows的快捷舱室)、b块设备

# 第一段的2-10个字符表示所属用户、所属用户组、其它用户对该文件的权限

# 第一段的第11个字符,表示开启selinux的状态下创建的

# 第二段的数字表示该文件的硬链接数量(运维人员需要学习)

# 第三段的字符串表示该文件所属用户

# 第四段的字符串表示该文件的的所属用户组

# 第五段的数字表示该文件的大小,默认单位为B,可以通过ls -lh [filename] 指令显示以KB为单位查看

# 第六段表示该文件的修改时间,在linux下可以通过stat [filename] 指令来查看文件的访问时间、创建时间、修改时间

八、shell

hostname #显示主机名
hostname [name] #更改主机名,临时修改
hostnamectl set-hostname [name] #永久修改,重新登录生效
reboot #重启
shutdown #关机

ctrl + a # 光标跳转至正在输入的命令行的首部
ctrl + e # 光标跳转至正在输入的命令行的尾部
ctrl + c # 终止前台运行的程序
ctrl + d # 登出当前shell
ctrl + z # 将任务暂停,挂至后台,执行fg命令继续运行
ctrl + l # 清屏,与clear等效
ctrl + k # 删除从光标到行末的所有字符
ctrl + u # 删除从光标到行首的所有字符
ctrl + r # 搜索离职命令,利用关键字搜索
ctrl + w # 光标往前删除一个参数,以空格为分割

history # 查看历史指令
history -c #清除内存中的历史指令

alias [order]=[str] # 给命令起别名,优先级高于系统默认
unalias [order] # 取消别名

九、输入输出重定向

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

0

十、linux 压缩打包

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

1

十一、文件传输

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

2

十二、进程管理

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

3

十三、定时任务

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

4

十四、系统优化

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

5

十五、软件安装

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

6

十六、特殊符号

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

7

十七、grep 、sed、awk

# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

8
# vi编辑文件
i、o、a 		# 编辑模式,一般用i、o
esc 			# 退出编辑模式,常规模式
:q 		    	# 退出不保存,命令模式
:qw 			# 保存退出,命令模式
:q! 			# 强制退出不保存,命令模式
:set nu 		# 显示行号,set number也可以
:set nonu 		#取消显示行号
:n 				#跳转到第n行

# 移动光标
G 			# 跳转到文末
gg		  	# 回到文首	
[n] gg     	# 跳转到第n行
shift + 4  	# 跳转到行尾 
shift + 6 或者 0 	# 跳转到行首

# 删除复制
dw 			# 删除要给单词
x			# 删除单个字符
10x			# 删除10个字符
dd 			# 剪切所在行
5dd			# 剪切包括当前行下的5行
小p			# 粘贴剪切板内容到当前行下方
大P			# 粘贴剪切板内容到当前行上方
yy			# 复制当前行
5yy			# 复制包括当前行的5行

# 搜索替换
/str					# 向后搜索字符串str,按n键向下找,按N键向上找
?str					# 向前搜索字符串str,按n键向下找,按N键向上找
:1369s/old/new/g 		# 将1369行的old替换成new
:1369s,1379s/old/new/g	# 将1369至1379这10行中的old替换成new
:1369s,$s/old/new/g		# 将1369至文末的old替换成new
:%s/old/new/g 			# 将所有的old替换成new
:%s/old/new/gc 			# 将所有的old替换成new,要询问

# 保存与退出
:w	# 保存
:wq	# 保存并退出
:x	# 保存并退出
:wq!# 强制保存并退出
:q 	# 退出不保存
:q!	# 强制退出

9
cat [filename] # 查看文件内容
tac [filename] # 倒序查看文件内容
head [filename] # 展示文件前十行
head -n 5 [filename] # 展示文件前五行
tail [filename] # 展示文件后十行
tail -n 5 [filename] # 展示文件后五行
0