Linux常用命令
1.文件颜色的代表含义
蓝色表示目录
绿色表示可执行文件
红色表示压缩文件
浅蓝色表示链接文件
灰色表示其他文件
红色闪烁表示链接的文件有问题了
黄色表示设备文件,包括block、char、fifo
2.关机/重启
shutdown -h now 立即关机 shutdown -h 5 5分钟后关机 shutdown -r now 立即重启 shutdown -r 5 5分钟后重启 poweroff 立即关机 reboot 立即重启
3.设备与ip
3.1.查看系统中的PCI设备信息
lspci -v
PCI(Peripheral Component Interconnect)是一种用于连接计算机内部部件的总线标准。通过lspci -v可以获取设备的详细信息,包括设备类型、供应商和设备ID、驱动程序、资源分配等。下面是一些常见的PCI设备类型和它们的作用:
1.显卡(VGA compatible controller):
这是显卡所属的设备类型,用于处理计算机图形输出。这些设备包括独立显卡和集成显卡(如Intel集成显卡)。
2.网卡(Ethernet controller):
网卡用于实现计算机的网络连接功能,包括有线和无线网络接口。
3.声卡(Audio device):
声卡用于处理计算机的音频输入和输出,以提供音频播放和录制功能。
4.USB控制器(USB controller):
USB控制器是用于控制计算机上的USB接口设备的硬件。它负责USB设备的管理和通信。
5.存储控制器(Storage controller):
存储控制器用于管理计算机中的存储设备,例如硬盘驱动器、固态硬盘、光驱等。
6.SATA控制器(SATA controller):
SATA控制器是一种用于连接SATA硬盘或光驱的接口控制器。
7.视频捕获卡(Multimedia controller):
这些设备用于捕获视频和音频信号,并将其输入到计算机中进行处理和录制。
8.无线网卡(Network controller):
无线网卡用于实现无线网络连接功能,包括Wi-Fi和蓝牙。
9.扩展卡(Bridge device):
扩展卡是用于扩展计算机功能和接口的卡,例如PCIe扩展卡。
10.其他设备:
lspci -v命令还可以检测并列出其他类型的PCI设备,具体类型根据设备供应商和设备ID进行标识。
3.2.查看当前的网卡信息
ifconfig
3.3.仅仅查看ip地址
hostname -I
3.4.网卡中未显示ip的处理办法
修改网络配置文件,ONBOOT=yes
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
4.软件包管理器
4.1.Debian/Ubuntu
搜索功能:apt search <keyword> 查看软件信息功能:apt show <package> 安装软件功能:apt install <package> 卸载软件功能:apt remove <package>
4.2.Fedora/RHEL/CentOS
搜索功能:dnf search <keyword> 查看软件信息功能:dnf info <package> 安装软件功能:dnf install <package> 卸载软件功能:dnf remove <package>
4.3.Arch Linux
搜索功能:pacman -Ss <keyword> 查看软件信息功能:paman -Qi <package> 安装软件功能:pacman -S <package> 卸载软件功能:pacman -Rns <package>
5.文件的新建、复制、删除、移动与重命名
5.1.文件的新建
touch <filename>
5.2.文件的复制
cp -r <source_irectory> <destination_directory>
5.3.文件的删除
rm -rf <filename>
5.4.文件的移动和重命名
mv -R <source_directory> <destination_directory>
6.vi/vim文件的编辑
6.1.命令行模式
命令行模式控制屏幕光标的移动,字符、字或行的删除,查找,移动,复制某区域段及进入编辑模式下,或者进入底行模式下
命令行模式下的常用命令:
1.删除当前行:dd
2.查找:/字符
3.进入编辑模式:i(插入)、a(追加)、o(换行追加)
6.2.编辑模式
只有在编辑模式下,才可以做文字输入,按[esc]键可以回到命令行模式
6.3.底行模式
将文件保存或者退出vi,也可以设置编辑环境,如寻找字符串、,列出行号....等
1.退出编辑:q
2.强制退出:q!
3.保存并退出:wq
4.列出行号:set number
5.隐藏行号:set nonumber
7.打包、压缩、解压、安装、卸载、更新
7.1.zip
zip -r <destination_directory>.zip <source_directory> 压缩 unzip -O CP936 <source_directory>
7.2.tar
7.2.1.tar文件
解压:tar -xf file.tar 压缩:tar -cf archive.tar file1 file2 directory
7.2.2.tar.gz或者.tgz文件
解压缩:tar -xzf file.tar.gz或tar -xzf file.tgz 压缩:tar -czf archive.tar.gz file1 file2 directory
7.2.3.tar.bz2或者.tbz2文件
解压缩:tar -xjf file.tar.bz2或者tar -xjf file.tbz2 压缩:tar -cjf archive.tar.bz2 file1 file2 directory
7.2.4.tar.xz或者.txz文件
解压缩:tar -xJf file.tar.xz或者tar -xJf file.txz 压缩:tar -cJf archive.tar.xz file1 file2 directory
7.3.rpm
安装软件包:rpm -i package.rpm 查询已安装的软件包:rpm -qa 查询特定软件包是否已经安装:rpm -q package-name 列出软件包的详细信息:rpm -qi package-name 列出软件包中的文件:rpm -ql package-name 查询软件包的依赖关系:rpm -qR package-name 更新已安装的软件包:rpm -U package.rpm 卸载软件包:rpm -e package-name
7.4.dpkg
安装软件包:sudo dpkg -i package.deb 查询已安装的软件包:dpkg -l 查询特定软件包是否已经安装:dpkg -s package-name 列出软件包的详细信息:dpkg -p packagr-name 查询依赖包的依赖关系:dpkg -I package.deb 更新已安装的软件包:sudo dpkg -i packag.deb 卸载软件包:sudo dpkg -r package-name
8.文件权限
8.1.查看文件权限
ls -l或者ll
rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读、不可写、不可执行文件
第一位:-就代表是文件,d代表是文件夹
第一段(3位):代表拥有者的权限
第二段(3位):代表拥有者所在组、组员的权限
第三段(3位):代表其他用户的权限
421 421 421
-rw- rw- rw-
8.2.修改文件权限
增加权限:+,例如chmod +r file.txt 移除权限:-,例如chmod -w file.txt 设定权限:=,例如chmod u=rwx,go=rx file.txt
u表示用户权限
g表示组权限
o表示其他用户权限
a表示全部权限
r表示读取权限
w表示写入权限
x表示执行权限
9.文件的查找
基本语法:find [路径] [表达式] -name根据文件名:find /path -name "*.txt" -type根据文件类型,常见的类型有f(普通文本)、d(目录):find /path -type f -size根据文件大小,+代表大于指定大小,-代表小于指定大小,c表示以字节为单位:find /path -size +1M -mtime根据最近修改时间,+表示更早时间,-表示更近时间,n表示天数:find /path -mtime -7 -user根据用户所属用户find /path -user username -group 根据文件所属组find /path -group groupname -perm根据文件所属权限,可使用完整的三位数权限或者简化的符号权限:find /path -perm 644 -maxdepth限制搜索的最大深度(子目录层级)find /path -maxdepth 2 -mindepth限制搜索的最小深度find /path -mindepth 1 -exec 对搜索结果执行特定命令find /path -name "*.txt" -exec rm {} \;
find 命令提供了-exec选项,可以在搜索结果上执行特定的命令。这个功能允许你对搜索到的文件和目录执行各种操作,如复制、删除、移动、重命名等。
基本语法:find [路径] [表达式] -exec command {} \;
-exec选项后面要跟着执行的命令,{}是一个特殊占位符,表示搜索结果中的每一个文件或目录。\;用于告诉find命令结束。
示例用法:
1.删除搜索到的文件:find /path -type f -name "*.txt" -exec rm {} \; 2.复制搜索到的文件的目标目录:find /path -type f -name "*.txt" -exec cp {} /path/destination \*;
需要注意的是,在使用-exec选项时,必须与\;进行正确的转义,以保证命令的正确执行。除了简单的命令之外,你还可以添加多个参数和命令,使用分号;分隔,或者使用+代替分号,将多个搜索结果一次性传递给命令。
10.文本的查找、替换、分析命令
10.1.grep
基本语法:grep [选项] 模式 [文件]
-i:忽略大小写进行匹配。
-r 或 -R:递归搜索目录及其子目录下的文件。
-l:仅打印匹配文件的名称。
-n:打印匹配行以及行号。
-v:反向匹配,仅打印不包含匹配模式的行。
-c:只打印匹配行的计数。
-w:整字匹配,仅匹配完整单词。
-A num:打印匹配行和后续 num 行。
-B num:打印匹配行和前面 num 行。
-C num 或 --context:打印匹配行和周围 num 行。
-e :匹配多个关键字进行搜索
用法示例:
1.在文件中搜索指定模式行:grep "pattern" file.txt 2.递归搜索目录及子目录中的文件:grep -r "pattern" /path 3.忽略大小写进行搜索:grep -i "pattern" file.txt 4.打印包含匹配模式的文件名:grep -l "pattern" file1.txt file2.txt
用法示例:
cat config/server.properties | grep -e 'listeners' -e 'advertised' -e 'zookeeper.connect' | grep -v '#'
10.2.sed
基本用法:sed [选项] '动作' 文件
-e:允许在 sed 命令中指定多个动作。
-i:直接修改文件内容,而不是输出到标准输出。
-n:禁止 sed 默认的自动打印行为,只打印经过命令处理的行。
10.2.1匹配模式
1.pattern:匹配包含pattern的行
2.^pattern:匹配以pattern开头的行
3.pattern$:匹配以pattern结尾的行
4.n1,n2:匹配行号范围为n1到n2的行
sed -n '/apple/p' file.txt sed -n '/^apple/p' file.txt sed -n '/apple$/p' file.txt sed -n '1,5p' file.txt
10.2.2替换操作
sed 's/apple/orange/' file.txt 替换第一个 sed 's/apple/orange/g' file.txt 全局替换 sed 's/\bapple\b/orange/g' file.txt 使用单词边界替换
10.2.3删除操作
sed '/apple/d' file.txt 删除包含apple的行 sed '1,5d' file.txt 删除文件中的第一行到第五行
10.2.4插入和追加行
sed '2i\this is a new line.' file.txt 在第二行前插入新行 sed '2a\this is a new line.' file.txt 在第二行后追加新行
10.2.5保存修改到原文件
sed -i 's/apple/orange/' file.txt
10.2.6从变量中读取命令
my_command='s/apple/orange/g' sed "$my_command" file.txt
10.3.awk
持续学习
11.进程
11.1.查看
ps -ef
默认情况下,会显示进程的PID(进程ID)、PPID(父进程的ID)、TTY(终端)、TIME(运行时间)和CMD(命令)等列
ps aux
将会显示更详细的进程信息,包括STAT(状态)、CPU使用率、内存占用率等
top
实时的进程监视器,显示系统中正在运行的进程列表,并按照CPU使用率的高低进行排序
可以使用键盘上的不同按键来进行怕排序和过滤
11.1.1.排序相关按键
p:按照CPU使用率进行排序
m:按照内存使用率进行排序
n:按照进程ID进行排序
t:按照运行时间进行排序(长时间运行的进程在上方)
11.1.2.过滤相关按键
u:根据用户名过滤显示的进程
k:根据ID过滤显示的进程
l:仅显示具有打开文件的进程
11.1.3.刷新间隔
R:修改刷新间隔,输入一个数字,表示刷新间隔的秒数,然后按下回车键
11.1.4.退出
q:退出top命令
11.1.5.帮助
输入h或?可以获取命令中的所有可用的案件操作说明
11.2.查找
11.2.1.使用pgrep命令
基本用法:pgrep process_name
命令会返回与进程名匹配的进程ID(PID)
示例:
pgrep firefox
11.2.2.结合使用ps命令和其他命令
基本用法:ps aux | grep process_name
注意在使用ps命令结合grep进项过滤时,可能会出现grep进程本身也会显示在结果中的情况。
可以使用grep -v grep进行过滤
ps aux | grep process_name | grep -v grep
11.3.杀死
11.3.1.使用kill命令
基本用法:kill -9 PID
PID 表示端口号,-9表示强制结束
示例:
kill -9 12345
11.3.2.使用killall命令
基本用法:killall -9 process_name
process_name表示进程的名称
示例:
killall -9 firefox
12.网络端口
12.1.查看网络端口
12.1.1.netstat
用于查看系统的网络连接、路由表、网络接口统计信息等
netstat -tuln 显示所有的TCP和UDP监听端口 netstat -tuln | grep PID 显示特定端口号的监听情况
-t选项表示tcp的连接状态
-u选项表示udp的连接状态
-l选项表示只监听状态的连接
-a选项表示显示所有连接找台(包括监听状态和非监听状态)
-n选项表示以数字形式显示IP地址和端口号,而不进行反向查找,不进行域名解析
12.1.2.ss
与netstat类似,用于查看套接字相关的统计信息
ss -tuln 显示所有的TCP和UDP监听端口 ss -tuln | grep PID 显示特定端口的监听情况
12.1.3.lsof
用于查看当前打开的文件,也可以用来查看正在使用的端口
lsof -i :PID 显示特定端口号的进程
12.1.4.iptables
用于配置和管理Linux系统上的防火墙规则
iptables -L 显示当前防火墙的规则
12.2.开放或关闭网络端口
12.2.1.使用iptables命令
iptables -A input -p tcp --dport PID -j ACCEPT 开放端口 iptables -D input -p tcp --dport PID -j ACCEPT 关闭端口 iptables-save > /etc/sysconfig/iptables 保存防火墙规则 systemctl restart iptables
示例:
iptables -A input -p tcp --dport 6888 -j ACCEPT iptables-save > /etc/sysconfig/iptables systemctl restart iptables
12.2.2.使用firewall服务
firewall-cmd --zone=public --add-port=PID/tcp --permanent 开放端口 firewall-cmd --zone=public --remove-port=PID/tcp --permanent 关闭端口 firewall-cmd --reload 重新加载防火墙配置
示例:
firewall-cmd --zone=public --add-port=6888/tcp --permanent firewall-cmd --reload
12.2.3.使用UFW命令
ufw allow PID/tcp 开放端口 ufw delete allow PID/tcp 关闭端口 ufw reload 重新加载防火墙
13.防火墙
13.1.防火墙状态查询
13.1.1.iptables
iptables -L
iptables -S
13.1.2.firewalld
firewall-cmd --state
firewall-cmd --list-all
13.1.3.UFW
ufw status
13.2.启用/停用防火墙
13.2.1.iptables
systemctl start iptables 启用防火墙
systemctl stop iptables 关闭防火墙
13.2.2.firewalld
systemctl start firewalld 启用防火墙
systemctl stop firewalld 关闭防火墙
13.2.3.UFW
ufw enable 启用防火墙
ufw disable 关闭防火墙
13.3.防火墙管理规则
13.3.1.iptables
iptables-save > /path/to/save/file 保存防火墙规则 iptables-restore < /path/to/save_file 加载防火墙规则
13.3.2.firewalld
firewall-cmd --reload 重新加载防火墙配置 firewall-cmd --get-active-zones 查看活动区域 firewall-cmd --set-default-zone=<zone> 切换默认区域
13.3.3.UFW
ufw app list 查看应用的防火墙规则 ufw allow <app_name> 启用特定应用的规则 ufw deny <app_name> 禁用特定应用的规则 ufw reload 重新加载防火墙配置
14.用户管理
14.1.查看用户名
users
14.2.查看用户的登录信息
who
14.3.查看最近登录的用户信息
last
14.4.添加用户
adduser username
14.5.修改用户密码
passwd username
14.6.给用户管理员权限
usermod -aG wheel username 给与权限 visudo 修改sudo配置文件以允许wheel组的用户运行sudo命令 ## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL
15.其他
15.1.service和systemctl命令的区别
1.配置文件位置不同:service命令使用/etc/init.d目录下的文件脚本,而systemctl命令使用/lib/systemd/system/目录下的unit文件
2.状态信息不同:service命令通过执行脚本来获取服务状态信息,而systemclt命令通过systemd的状态管理功能来获取状态信息。因此,systemctl命令提供了更为详细和准确的状态信息
3.命令选项不同:service命令只有start、stop、restart、reload等简单选项,而systemctl命令提供了更多的选项,比如enable、status、is-active、is-enable等
4.兼容性不同:一些比较老的服务可以只通过service命令启动或停止,而systemctl命令并不支持

浙公网安备 33010602011771号