Linux命令详解

Linux关机重启

命令 解释
shutdown -h nowpoweroff 立刻关机
shutdown -h 1 1分钟后关机,不带参数默认1分钟
shutdown -r now 立刻重启
halt 立刻关机
reboot 立刻重启
sync 把内存的数据同步到磁盘,关机和重启前应该先做这一步,目前shutdown、reboot、halt关机前会执行sync

Linux用户

  • /etc/passwd:user配置文件
  • /etc/shadow:口令配置
  • /etc/group:组配置
命令 解释
su 切换到root用户,环境变量不变
su root 切换到root用户,环境变量改变
sudo 临时获得root权限执行命令
logout 注销,只在运行级别3下有效
exit 退出当前用户
useradd cci 添加一个用户cci,默认该用户的home目录在/home/cci,默认创建同名用户组
useradd -d /home/test cci directory,添加一个用户cci,指定该用户的home目录在/home/test/cci
passwd cci 给用户cci设置密码
userdel cci root权限删除用户cci,保留home目录
userdel -r cci root权限删除用户cci,不保留home目录
id cci 查询用户cci的信息
who am i 查看第一次登录的用户信息

Linux用户组&文件目录所属组(给组赋权,组用户都拥有该组权限)

用户创建的文件和用户所在所在组一样

命令 解释
groupadd groupname 创建一个名为groupname的组
groupdel groupname 删除一个名为groupname的组
useradd -g groupname cci 添加指定用户组的cci用户
usermod -g groupname2 cci 修改用户组
chgrp newgroup test.txt 修改文件所属组

Linux运行级别

开机流程:开机->BIOS->/boot->systemd进程->运行级别->运行对应级别的服务

命令 解释
init 0 关机
init 1 单用户
init 2 多用户状态没有网络服务
init 3 多用户状态有网络服务,就是仅命令行
init 4 系统未使用保留给用户
init 5 图形界面
init 6 重启
systemctl get-default 查看当前运行级别,graphical.target图形界面
chkconfig sshd list

Linux授权chmod (change mode)

ls -l查看文件详情

  • 第0位:文件类型(d:目录,-:普通文件,l软链接,c:字符设备,鼠标键盘等,b:块设备)
  • 第1-3位User(u):所有者权限
  • 第4-6位Group(g):所属组权限
  • 第7-9位Other(o):其他用户权限
    a:所有人

权限(r,w,x

权限 权限值 解释:文件/目录
r 4 read,可读取,可读取
w 2 write,可写入,可修改
x 1 execute,可执行,可进入

例如drwxr-xr-x代表这个目录所有者可读可写可执行,所属组可读可执行,其他用户可读可执行

命令 解释
chmod +x a.txt 授权当前用户可执行权限
chmod -x a.txt 取消当前用户可执行权限
chmod u+w a.txt 授权所有者写入权限
chmod a-x a.txt 取消所有人可执行权限
chmod u=rwx,g=r,o=x 授权所有者所有权限、所属组只读、其他用户可执行
chmod 741 a.txt 授权所有者所有权限、所属组只读、其他用户可执行
chmod newowner a.txt 更改所有者
chmod newowner:newgroup a.txt 更改所有者和所属组
-R 如果是目录,递归生效
chgrp newgroup a.txt 修改所属组

Linux目录

命令 解释
pwd 显示当前工作目录
cd / 切换到根目录
cd ~cd 切换到当前用户主目录,root是/root,普通用户是/home/cci
cd .. 切换到上一级目录
cd - 切换到上次访问的目录
ls 查看当前目录下的所有目录和文件
ls -a 查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /bin 查看指定目录下的所有目录和文件
mkdir tools make directory在当前目录下创建一个名为tools的目录,只能创建1级目录
mkdir -p /bin/tools 在指定目录下创建一个名为tools的目录,-p自动创建父级目录
mkdir -m 777 tools 在当前目录下创建一个名为tools的目录并授权777,默认为755
cp /home/test1/ /opt/test2/ 将/home/test1目录下的内容拷贝到/home/test2目录下
cp -r /home/test1/ /opt/test2/ 递归复制,将整个目录拷贝
\cp -r /home/test1/ /opt/test2/ 强制递归覆盖复制,将整个目录拷贝
rmdir 删除当前目录下的空目录
rmdir /test 删除/test下的空目录,非空删除失败
rm ttt.txt 删除当期目录下的ttt.txt文件
rm -f ttt.txt 删除当期目录下的ttt.txt文件,不询问
rm -r /home/test 删除非空目录并询问
rm -rf /home/test 删除非空目录不询问
rm -r * 删除当前目录下的所有文件和目录并询问
mv oldname newname 重命名
mv /home/test1/a.txt /opt/test2/ 移动文件
mv /home/test1/a.txt /opt/test2/b.c 移动文件并重命名
mv /home/test /opt/ 将test目录移动到/opt/下
tree /home 以树形显示目录结构

Linuxtouch

命令 解释
touch a.txt 文件存在则更新修改时间,文件不存在则创建新文件
touch -t 202406180620 a.txt 文件存在则更新修改时间为2024/06/18/06/20,文件不存在则创建新文件
touch -c a.txt 强制避免新建文件

Linux cat

命令 解释
cat a.c b.c 查看a.c、b.c的内容
cat -n a.c 查看a.c并显示行号
cat -b a.c 查看a.c并仅显示非空行号
cat -t a.c 查看a.c并显示制表符
cat -s a.c 查看a.c并合并显示连续空行,多空行只显示一空行
cat -e a.c 查看a.c并显示行结束,$代表结束
cat /dev/null > a.c 清空a.c文件
cat > c.c 等待标准输入,新建或覆盖文件,直到按下Ctrl+d
cat >> d.c 附加标准输入到文件d.c
cat a.c b.c > c.c 将a、b文件内容合并到c,c内容被覆盖

Linux more

命令 解释
more a.c 查看a.c文件
空格键 向下翻页
Enter 向下翻一行
Ctrl+f 向下滚动一屏
Ctrl+b 向上滚动一屏
= 退出当前行
:f 输出文件名和当前行号
q 退出

Linux less

适合显示大型文件

命令 解释
less a.c 查看文件内容
空格 向下翻页
PageDown 向下翻页
PageUp 向上翻页
/ 和vim一样,向下查找,n向下、N向上
? 和vim一样,向上查找,n向上、N向下
q 退出

Linux echo(shell)

输出内容到标准输出

命令 解释
echo 123 输出123
echo -n 123 不换行输出123
echo "`ip addr`" 输出执行指定命令的结果
echo -e "test\n" 输出转译字符,加-e就可以换行
echo -E "test\n" 不输出转译字符,默认选项
echo "test" > e.c 输出结果重定向到指定文件
echo "test" >> e.c 输出结果追加到指定文件
echo $HOSTNAME 输出主机名变量
echo "$name" 输出变量,先通过read name定义变量

Linux head

输出头部内容到标准输出,默认前10行

命令 解释
head /etc/profile 显示前10行
head -n 3 /etc/profile 显示文件前3行
head -c 20 /etc/profile 显示文件前20个字节

Linux tail

输出尾部内容到标准输出,默认尾10行

命令 解释
tail /etc/profile 显示尾10行
tail -n 5 /etc/profile 显示尾5行
tail -f /etc/profile 显示文件实时更新
tail -v /etc/profile 显示详细的处理信息
tail -c 10 /etc/profile 显示尾10字节

Linux crond任务调度

指定系统在某个时间执行特定的命令或程序,分为系统工作和个别用户工作;所有用户定义的crontab文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致

  • 文件:/etc/cron.deny 该文件中所列用户不允许使用crontab命令
  • 文件:/etc/cron.allow 该文件中所列用户允许使用crontab命令
  • 文件:/var/spool/cron/ 所有用户crontab文件存放的目录,以用户名命名
  • 文件:/etc/crontab 系统范围的cron作业
  • 文件:/etc/cron.* 系统范围的cron作业

需要安装sudo apt install cron

命令 解释
select-deitor 切换文本编辑器
crontab -e 编辑当前用户的crontab
crontab -e -u cci 打开cci用户的crontab
crontab -l 获取已安排的用户cron作业
crontab -r 删除当前用户的crontab任务
service cron restart 重启任务调度
service cron status 查看cron状态
service cron start 启动cron
*/1 * * * * ls -l /etc/ > /tmp/minute.txt 每分钟执行一次命令,把ls -l /etc/的内容重定向到`/tmp/minute.txt文件中

crontab文件中每一行代表一项任务,语法:

minute hour day month week command
  • *:所有可能的值
  • ,:列表范围值,如"1,3,4"
  • -:范围,如1-5代表"1,2,3,4,5"
  • /:频率,如minute字段*/10代表每10分钟执行一次
命令 解释
45 22 * * * command 每天22:45执行命令
0 17 * * 1 command 每周一17:00执行命令
0 5 1-15 * * command 每月1-15号5:00执行命令
40 4 * * 1-5 command 每周1-5天4:40执行命令
*/20 5 1,15,24 * * command 每月1,15,24号的5点每20分钟执行命令
0 0 1,15 * 1 command 每月1,15号和每周1执行命令,day和week最好不要同时设置
45 22 * * * /scripts/test.sh 每天22:45执行test.sh这个脚本

Linux at定时任务

一次性定时计划任务,at守护进程atd以以后台模式运行,每60s检查作业队列和作业时间,时间匹配则执行作业;首先要确保atd在运行ps -ef | grep atd

需要安装sudo apt install at

命令 解释
at 3pm + 2days 创建2天后下午3点的定时任务
Ctrl+d 结束at命令输入
atq 查看定时任务
at -c id 查看定时任务内容
at -r id 取消定时任务
at now + 2 minutes 创建2分钟后的定时任务
atrm id 删除id的定时任务

Linux 网络

NAT模式:

  • 虚拟机的网关是宿主机,通过dhcp获取ip
  • 宿主机的网关是连接外网的路由器
  • 和宿主机同一路由器下的另一台电脑不能ping虚拟机
  • VMnet8只是接口,虚拟NAT设备、虚拟dchp服务器连到VMnat8接口实现联网
  • NAT模式下的虚拟机
  • 通过真实主机的ip访问外网

BRIDGE模式

  • 虚拟机和宿主机的网关都是路由器,处于同一个网段,都通过路由器上网
  • 虚拟机子网掩码、ip网段、网关、DNS一致

HOST-ONLY模式

  • NAT模式去除虚拟NAT设备,使用VMnet1连接虚拟交换机与虚拟机通信

网卡配置:

  • debian:/etc/network/interfaces
  • centos:/etc/sysconfig/network-scripts/ifcfg-ens33

hosts(记录ip和hostname的映射关系):

  • linux:/etc/hosts
  • windows:C:\Windows\System32\drivers\etc\hosts

DNS(Domain Name System域名与ip映射)

浏览器先检查缓存有没有解析该域名,有则返回ip,没有则检查操作系统DNS解析器缓存

Debian命令 解释
ifconfig 查看ip,net-tools套件的一部分,较旧的网络配置工具,需要安装sudo apt install net-tools
ip addr 查看ip,ip命令的一个子命令,更详细和全面
ip route show 查看路由表条目
ifconfig eth0 up 重启网卡,eth0是网卡名,有的是ens33,通过ifconfig查看
service networking restart 重启网络
systemctl start nftables 启动防火墙
systemctl stop nftables 关闭防火墙
systemctl disable nftables 禁用防火墙
systemctl restart nftables 重启防火墙
systemctl status nftables 查看当前状态
`nft list ruleset grep 'tcp dport 80'`
`nft list ruleset grep 'tcp dport 8080'`
nft add rule inet filter input tcp dport 8080 accept 开放端口,add-port标识添加的端口
nft add rule inet filter input tcp dport {8083-8085} accept 开放端口范围
nft delete rule inet filter input tcp dport 8083-8085 accept 关闭端口
netstat 查看网络状态

Linux UFW防火墙

命令 解释
ifup eth0 重启网卡
systemctl restart network 重启网络
systemctl start firewalld 启动防火墙
systemctl stop firewalld 停止防火墙
systemctl disable firewalld 禁用防火墙
firewall-cmd --reload 重启防火墙
firewall-cmd --state 查看防火墙当前的状态
firewall-cmd --query-port=80/tcp 端口开放情况
firewall-cmd --permanent --list-ports 查看开放的端口
firewall-cmd --permanent --add-port=8080/tcp 开放端口
firewall-cmd --permanent --add-port=8083-8085/tcp 开放端口范围
firewall-cmd --permanent --remove-port=8083-8085/tcp 关闭端口

Linux 帮助命令

命令 解释
man ls 获得帮助信息,例如获得ls命令的帮助信息
help cd 获得shell内置命令的帮助信息

Linux 软链接(符号链接Symbolic Link)

存储目标文件或目录的路径,可以跨越不同的分区和文件系统创建,

命令 解释
sudo ln -s /opt/blender/blender /usr/local/bin/blender 创建符号链接,实际目录 软链接
ls -l /usr/local/bin/blender 查看符号链接信息
sudo rm /usr/local/bin/blender 删除符号链接

Linux 硬链接(Hard Link)

一个文件系统中的多个文件名指向同一个数据块(inode),只能在同一个分区内创建,不能跨越不同的文件系统,当所有硬链接和文件本身被删除,数据才会被删除

命令 解释
ln source dist 创建硬链接,实际文件 硬链接文件

Linux SSH远程登录

控制端安装ssh客户端,服务端安装sshd服务端,安装ssh客户端和服务端sudo apt install openssh-server、重启sshsudo systemctl restart ssh

命令 解释
ssh username@ip 远程登陆
logoutorexit 退出远程登陆

Linux 文件传输

rcp

目标主机需要事先打开rcp功能,把源主机加入到可信任主机列表中,不加密

命令 解释
rcp root@ip:home/cci/test.txt / 将远程主机的我文件复制到本机

scp

secure copy,数据传输使用 ssh,和ssh 使用相同的认证方式

命令 解释
scp /home/cci/test.txt username@ip:/home/ 把本机test.txt文件复制到远程主机指定目录下
scp -r username@ip:/home/cci/test.txt /home/cci 从远程复制到本地,-r递归复制目录

ftp

安装sudo apt install ftp

命令 解释
ftp ip 建立连接
get test.txt 下载文件
put test.txt 上传文件
delete test.txt 删除文件
bye 退出ftp

wget

远程机器需要支持ftp服务

命令 解释
wget --ftp-user=USER --ftp-password=PASS ftp://www.abc.com/abc.zip 下载文件

Linux wget下载文件

广泛使用的命令行工具,支持Windows,Linux和macOS,支持HTTP、HTTPS和FTP协议

命令 解释
wget -O rust.zip https://github.com/rust-lang/rust/archive/refs/tags/1.79.0.zip 指定文件名下载,wget默认会以最后一个符合"/"的后面的字符来命令,本例不加-O会下载成1.79.0.zip
wget -o download.log url 指定下载信息到日志文件
wget -P /home/linux/Downloads url 指定路径下载
wget -b url 下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)
wget -b url 后台下载
wget -y url 在执行操作时自动回答 "yes",省去用户确认步骤
wget -c url 断点续传下载,下载失败可以再次执行恢复进度下载
wget --limit-rate=300k 限速下载
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" 伪装代理下载
wget --spider url 测试下载链接是否有效
wget --tries=40 url 增加重试次数,wget默认重试20次连接下载文件
wget -i url.txt url.txt中保存了多个链接,-i批量下载文件
wget --reject=jpg url 过滤拒绝指定格式下载
wget -r -A.pdf url 递归下载所有pdf格式的文件
wget --ftp-user=USERNAME --ftp-password=PASSWORD url 指定用户名和密码下载
wget -x url 下载整个站点并创建和url服务器一模一样的目录
wget -l 2 url 递归下载url所有目录和文件,但只下载2层,如果使用-r,url包含的其他网站的url也会被遍历,层层嵌套无法预期
wget -m url 制作镜像站点
wget url --no-check-certificate 跳过证书检查下载文件

rsync

安装apt install rsync,更强大的scp

命令 解释
rsync -avz /tmp/ username@ip5:/home/ 本地复制到远程服务器
rsync -avzh username@ip:/home/ /home/ 下载远程文件到本地

Linux history历史命令

命令 解释
history 列出全部历史命令
history 4 列出最近的四条命令
history -c 将目前shell中的所有history命令消除,对命令历史文件没有影响
history -w 将本次登录的命令写入命令历史文件中, 默认写入~/.bash_history
history -r 将命令历史文件中的内容读入到目前shell的history记忆中

Linux date时间日期

命令 解释
date 显示当前的系统时间和日期
date +%Y 显示年份
date +%m 显示月份
date +%d 显示哪天
date "+%Y-%m-%d %H:%M:%S" 指定格式显示2024-06-20 16:36:56
date -r /etc/hosts 文件最后修改时间
TZ='America/New_York' date 更改时区
date -d "2024-6-20 09:12:15" 操作具体日期
date --set="20240620 12:30" 设置或更改Linux中的时间
date --date="06/20/2024" 显示给定的日期字符串作为日期格式
date --date="2 year ago" 当前时间2年前的时间
date --date="4 day" 当前时间四天前的时间
date --date="10 sec ago" 当前时间10秒前的时间
date --date="next monday" 未来周一的时间
date --date="10 day" 未来10天的时间
date --date="tomorrow" 未来一天的时间

Linux find

命令 解释
find / -name a.c 指定文件名查找
find -type f 指定文件类型查找,f普通文件,d目录,l符号链接
find -user cci a.c 按文件所有者查找
find -group cci a.c 按文件所属组查找
find /home -size +1M 查找 /home 目录下大于 1MB 的文件,+- 表示大于或小于,单位:c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)
find / -amin n 查找在 n 分钟内被访问过的文件
find /path/to/search -atime -7 查找过去 7 天内被访问的文件
find / -cmin n 查找在 n 分钟内状态发生变化的文件(例如权限)
find / -ctime n 查找在 n*24 小时内状态发生变化的文件(例如权限)
find /var/log -mtime +7 查找 /var/log 目录下7天前修改过的文件
find / -mmin n 查找在 n 分钟内被修改过的文件
+n 查找比n天前更早的文件或目录
-n 查找在n天内更改过属性的文件或目录
n 查找在n天前(当天)更改过属性的文件或目录

Linux locate

运行前必须updatedb创建locate数据库,即/var/lib/mlocate/mlocate.db,Linux系统自动创建这个数据库,并且每天自动更新一次,debian中需要安装sudo apt install mlocate

  • -b, --basename -- 仅匹配路径名的基本名称
  • -c, --count -- 只输出找到的数量
  • -d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
  • -e, --existing -- 仅打印当前现有文件的条目
  • -1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
  • -0, --null -- 在输出上带有NUL的单独条目
  • -S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息
  • -q -- 安静模式,不会显示任何错误讯息。
  • -P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接
  • -l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目
  • -n -- 至多显示 n个输出。
  • -m, --mmap -- 被忽略,为了向后兼容
  • -r, --regexp REGEXP -- 使用基本正则表达式
  • --regex -- 使用扩展正则表达式
  • -q, --quiet -- 安静模式,不会显示任何错误讯息
  • -s, --stdio -- 被忽略,为了向后兼容
  • -o -- 指定资料库存的名称。
  • -h, --help -- 显示帮助
  • -i, --ignore-case -- 忽略大小写
  • -V, --version -- 显示版本信息
命令 解释
locate a.c 查找文件
locate /etc/sh 查找etc 目录下所有以sh开头的文件

Linux which

查看指令在哪个目录下

命令 解释
which ls 查看ls指令在哪个目录下
whiich java 查看java指令在哪个目录下

Linux grep和管道符|

过滤查找

命令 解释
grep hello a.txt 在文件a.txt中查找字符串"hello",并打印匹配的行
grep test *txt 查找后缀有txt字样的文件中且包含test字符串的文件
`cat a.c grep -i test`

Linux 磁盘

命令 解释
`mount column -t`
sudo fdisk -l 查看硬盘分区情况
swapon -s 查看所有交换分区
df -h human-readable,以人类可读的格式显示磁盘空间使用情况
du -h 查看硬盘占用情况
du -s /home 查看自定目录占用大小
du -a 包含文件显示
du --max-depth=2 子目录深度
du -c 增加显示汇总值total
du -h -ac --max-depth=2 /home 以人类可读的方式显示/home目录两层深度且包含文件的占用情况并统计总数
`dmesg grep vda`
sudo iotop 查看硬盘I/O读取状态,需要安装sudo apt install iotop
inxi -D 查看硬盘硬件情况,需要安装sudo apt install inxi

Linux 分区

无论如何分区,linux文件系统的结构仍然是根分区/和其下的/bin/boot/etc/dev等等,通过挂载将这些目录分配给不同的分区,只改变了数据存储的分区位置;

  • 在linux中无论你的/opt目录挂载到哪个分区,都可以通过cd /opt进入,文件系统的目录结构不变
  • 在window中,如果你在C盘要进入D盘的opt目录,就要先切换到D盘D:cd opt,很明显C盘和D盘不仅分区不同目录结构也不同
命令 解释
lsblkorlsblk -f 查看挂载情况
fdisk /dev/vdb 开始分区,vdb是磁盘名
mount /dev/vdb /newdisk 挂载vdb磁盘
umount /dev/vdb 卸载
mkfs -t ext4 /dev/vdb 格式化vdb磁盘

Linux 压缩与解压

命令 解释
gzip hello.txt 压缩成.gz,不创建新文件
gunzip hello.txt.gz 解压
zip hello.zip hello.txt 压缩成hello.zip,创建新文件
zip -r /home/hello.txt 压缩目录
unzip -d /tmp hello.zip 解压,-d指定目录
tar -c hello.txt 打包成.tar
tar -x archiver.tar 解压
tar -v hello.txt 显示详细信息
tar -f a hello.txt 指定压缩后的文件名
tar -z 4 hello.txt.tar.gz 打包同时压缩,压缩率为4,压缩率(1-9),级别越高压缩时间越长
tar -czf documents.tar.gz /home/user/documents 压缩成名为documents.tar.gz的压缩归档文件
tar --list -f documents.tar 列出压缩文件内容
tar -cf documents.tar --exclude='*.txt' /home/user/documents 打包时排除文件
tar --preserve-permissions -cf documents.tar /home/user/documents 打包时保留权限和所有权信息
tar --atime-preserve -cf documents.tar /path/to/backup 打包时保留时间戳
tar -zcvf documents.tar.gz /home 压缩成tar.gz
tar -zxvf documents.tar.gz 解压
z gzip,.tar.gz
j bzip2,.tar.bz2
J xz,.tar.xz

Linux挂载

命令 解释
mount /dev/vdb /mnt 将/dev/vdb挂载到/mnt下,vdb是磁盘名
umount /dev/vdb 卸载

Linux进程

命令 解释
top 实时显示当前系统中占用资源最多的一些进程,q退出r修改优先级k向进程发送终止信号P按CPU使用率排序M按内存使用率排序
top -d 3 每隔3秒更新
top -i 不显示闲置或僵尸进程
top -p PID 监控指定进程
ps 正在允许的进程
ps a 显示现行终端机下的所有程序,包括其他用户的程序
ps -a 显示当期终端所有运行中/激活进程,包括其他用户的程序
ps -aux 显示所有用户的所有进程
ps -ef 以完整格式显示所有进程
ps -e --forest 以树形结构显示进程关系
pstree 以树形结构显示进程关系
pstree -u 以树形结构显示当前用户进程关系
nice 3 -p vim 使vim优先级+3
kill PID 根据PID终止进程
killall name 根据进程名终止进程
kill -1 PID 或--hangup,挂起信号,通常用于重启或重新加载进程
kill -2 PID 或--interrupt,中断信号,通常由Ctrl+C发送给前台进程
kill -3 PID 或--quit,退出信号,通常由Ctrl+\发送给前台进程
kill -9 PID 强制杀死该进程
kill -15 PID 或--terminate,默认的终止信号,要求进程优雅地退出
kill-17 PID 或-stop,暂停进程的执行,可以使用kill -CONT恢复执行
kill -18 PID 或--continue,恢复被停止的进程的执行
pkill -9 PID 根据进程名强制杀死该进程
PID:进程号 USER:用户名 PR:优先级(-20高-19低) NI:Nice值(-20高-19低) VIRT:虚拟内存 RES:物理内存 SHR:共享内存 S:状态 %CPU:CPU占用 %MEM:内存使用率 TIME+:累积CPU时间 COMMAND:启动进程的命令或可执行文件名字

进程状态含义

命令 解释
S 等待态
T 停止态
R 运行态
Z 僵尸态
D 不可被中断的等待态
X 死亡态
I 闲置在内核的进程
l 拥有子线程的进程
< 高优先级的进程
N 低优先级的进程
+ 运行在前台的进程

Linux 守护进程(service)

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求。debian使用service,Centos使用systemctl,本质上是执行启动脚本

命令 解释
service mysqld start 启动服务
service mysqld stop 停止服务
service mysqld restart 重启服务
service mysqld reload 重载服务
service mysqld status 查看服务状态

Linux apt软件包管理(Advanced Packaging Tool)

apt和apt-get是dpkg的前端,debian默认包管理器,ubuntu也是这个,debian是ubuntu的爹

命令 解释
apt-get 传统工具,命令行没有颜色,稳定,用于shell脚本
apt 后起之秀,带进度条和颜色,信息输出更友好
sudo apt update 列出所有可更新的软件清单
sudo apt-get upgrade 升级软件包,不升级内核版本
sudo apt-get dist-upgrade 升级内核版本
sudo apt upgrade 升级软件包,升级内核版本
sudo apt update && sudo apt upgrade -y 更新清单并升级软件包,-y允许所有安装操作
apt list --upgradeable 列出可更新的软件包及版本信息
sudo apt full-upgrade 升级软件包,升级前先删除需要更新软件包
sudo apt install rpm 安装指定的软件
sudo apt update rpm 更新指定的软件
sudo apt show rpm 显示软件包具体信息
sudo apt remove rpm 删除软件包留下配置文件
sudo apt purge rpm 移除软件包及配置文件
sudo apt autoremove 清理不再使用的依赖和库文件
sudo apt search rpm 查找软件包
apt list --installed 列出所有已安装的包
apt list --all-versions 列出所有已安装的包的版本信息

Linux rpm软件包管理(RedHat Package Manager)

RedHat Linux默认包管理器,其他linux下了也能用

选项 说明
-i, --install 安装一个包
-v 显示详细的信息
-h 打印,显示安装进度
-U, --update 升级一个包
-e, --erase 卸载一个包
-q, --query 查询一个包
-qi, --queryInfo 查询包信息
-v, --verbose 显示详细信息
-V, --verify 校验一个包
-R 列出依赖项
-F, --Flush 安装、升级或删除软件包时跳过依赖项检查
-test, 模拟指令但不执行
-nodeps, 模拟指令但不执行

首先有rpm包才能安装

命令 解释
rpm -ivh vim.rpm 安装包
rpm -Uvh vim.rpm 升级包
rpm -e vim 删除包
rpm -qa 显示所有已安装的rpm包
rpm -qip vim 查询软件包的信息
rpm -qpR vim.rpm 查询包需要的依赖项
rpm -ql vim 显示已安装软件的所有文件

Linux yum包管理器(Yellow dog Updater, Modified)

Centos默认包管理器,yum是rpm的前端程序,rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系,yum增加了自动解决依赖关系的方案

命令 解释
yum check-update 列出所有可更新的软件清单
yum update 更新所有软件
yum install vim 安装指定的软件
yum update vim 更新指定的软件
yum list 列出所有可安裝的软件清单
yum remove vim 删除软件包
yum search vim 查找软件包
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean all

Linux 系统信息

命令 解释
uname -a 显示系统信息

Linux 内存

命令 解释
free -g 以G为单位输出内存的使用量,-g为GB,-m为MB,-k为KB,-b为字节
free -t 查看所有内存的汇总
free -m 查看当前内存使用信息
cat /proc/meminfo 通过/proc文件查看内存信息
`dmesg grep mem`
vmstat 查看虚拟内存统计信息
grep MemTotal /proc/meminfo 查看内存总量
grep MemFree /proc/meminfo 查看空闲内存量
`dmidecode grep -i mem`

Linux 显卡

命令 解释
`lspci grep -i 'VGA'`
`lspci grep -i nvidia`
`sudo dmesg grep -i 'VGA'`
`glxinfo grep OpenGL`

Linux 声卡

命令 解释
`lspci grep Audio`
相关推荐
z92098102312 分钟前
改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原
网络·人工智能
程序员白彬15 分钟前
为什么 npm run serve 正常,npm run build 就报错:digital envelope routines::unsupported
前端·npm·node.js
weixin_83686952018 分钟前
使用Random.next生成随机数
java·前端·python
修炼之路29 分钟前
使用label-studio对OCR数据进行预标注
网络·人工智能·ocr
小和尚敲木头30 分钟前
css 滚动词云
前端·css
志凌海纳SmartX38 分钟前
金融行业专题|某头部期货基于 K8s 原生存储构建自服务数据库云平台
网络·数据库·云原生·架构·kubernetes·存储
xuchengxi-java1 小时前
Vue3使用Vue Router4實現頁面切換
前端·javascript·vue.js
前端组件开发1 小时前
基于Vue.js的电商前端模板:Vue-Dashboard-Template的设计与实现
前端·javascript·vue.js·小程序·前端框架·uni-app·html5
为祖国添砖爪哇1 小时前
【计算机网络】期末复习(1)模拟卷
网络·网络协议·计算机网络
五点六六六2 小时前
深入解析Cookie机制:从操作实践到安全属性详解
前端·javascript·面试