Linux关机重启
命令 解释 shutdown -h now
或poweroff
立刻关机 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
远程登陆 logout
orexit
退出远程登陆
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
忽略大小写查找包含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盘不仅分区不同目录结构也不同
命令 解释 lsblk
orlsblk -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 系统信息
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
通过dmidecode获取内存信息
Linux 显卡
命令 解释 lspci |grep -i 'VGA'
查看默认集成显卡型号 lspci |grep -i nvidia
查看NVIDIA类型的显卡型号 sudo dmesg | grep -i 'VGA'
通过查看开机信息获取显卡信息 glxinfo | grep OpenGL
查看OpenGL信息
Linux 声卡
命令 解释 lspci | grep Audio
列出当前声卡信息