记录 Linux 操作系统常用命令的备忘

通用命令格式:

命令名称 [命名参数] [命令对象]

基础命令

获取登录信息

w

显示已登录用户以及他们正在干什么

who

显示已登录用户,信息没有 w 来得全面

last

显示最近登录的用户列表

lastb

显示用户错误的登录列表,此指令可以发现系统的登录异常

查看命令的说明和位置

whatis

显示命令的简短说明

which

查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找命令时需要遍历的目录

whereis

显示指令的二进制程序、源代码文件和 man 手册页等相关文件的路径

清除屏幕上显示的内容

clear

查看帮助文档

man [manual]

命令手册页

manpages-zh

中文命令手册

info

更加详细的命令文档

查看系统和主机名

uname

显示系统信息

hostname

显示或设置系统的主机名

时间和日期

date
cal

重启和关机

reboot
shutdown

shutdown [OPTIONS…] [TIME][WALL…]

可选参数[TIME] 表示时间的字符串(通常是 now,+m ) [WALL…]用于发送给所有登录用户的警告信息

如果使用了[TIME]参数, 那么在关机流程开始前 5 分钟将会创建 /run/nologin 文件, 以禁止用户登录。

退出登录

exit
logout

查看历史命令 history

实用程序

文件和文件夹操作

创建/删除目录
mkdir
rmdir
创建/删除文件
touch
rm
切换和查看当前工作目录
ls
  • R 递归展开

  • a 显示隐藏文件

  • d 仅显示目录

  • t/r 排序 (正向,反向)

cd
查看文件内容
cat (正看)
tac (倒看)
head
tail
more
less
rev (反向)
od
拷贝/移动文件
cp
mv
文件重命名
rename
查找文件和查找内容
find
1
  find . -type f -exec ls -l {} \;
grep
创建链接和查看链接
ln
readlink
压缩/解压缩和归档/解归档
gzip
gunzip
unar

中文不会乱码

xz
tar
将标准输入转成命令行参数
xargs
其他相关工具
对内容排序 sort
拆分文件 split
判断文件类型 file
统计文件行数、单词数、字节数 wc
去掉相邻重复内容 uniq
替换指定内容为新内容 tr
剪切/黏贴内容 cut paste
编码转换 iconv

管道和重定向

管道 |
输出重定向和错误重定向
输出>
追加>>
错误输出 2>
输入重定向 <
多重定向 tee

别名

alias
unalias

文本处理

字符流编辑器 sed

用法: sed 脚本 文件

sed 's,A,B,' FILE 把 FILE 中的 A 用 B 替换

  • a 追加

  • i 插入

  • d 删除

  • s 替换

    例子

    1
    
      [root ~]# sed '2,4d' fruit.txt
模式匹配和处理语言 awk

处理表格

例子

1
2
  [root ~]# awk '{print $2}' fruit2.txt 
  [root ~]# awk '{if($3 >= 300) {print $0}}' fruit2.txt

用户管理

创建和删除用户

useradd
userdel

创建和删除用户组

groupadd
groupdel

修改密码 passwd

批量修改用户密码 chpasswd

查看和修改密码有效期 chage

切换用户 su

以管理员身份执行命令 sudo

显示用户与用户组的信息 id

显示当前终端 tty

write

向指定登录用户终端上发送信息

1
write Rollaend pts/2

进程管理

查看进程 ps

显示进程状态树 pstree

查找与指定条件匹配的进程 pgrep

通过进程号终止进程 kill

通过进程名终止进程 killall / pkill

将进程置于后台运行 &

查询后台进程 jobs

让进程在后台继续运行 bg

将后台进程置于前台 fg

用户登出后进程继续工作 nohup

跟踪进程系统调用情况 strace

查看当前运行级别 runlevel

实时监控进程占用资源状况 top

  • `-c` - 显示进程的整个路径。

  • `-d` - 指定两次刷屏之间的间隔时间(秒为单位)。

  • `-i` - 不显示闲置进程或僵尸进程。

  • `-p` - 显示指定进程的信息。

磁盘管理

访问权限

改变文件模式 chmod
改变文件所有者 chown
改变用户组 chgrp

磁盘管理

列出文件系统的磁盘使用状况 df
磁盘分区表操作 fdisk
磁盘分区工具 parted
格式化文件系统 mkfs
1
   [root ~]# mkfs -t ext4 -v /dev/sdb
文件系统检查 fsck
转换或拷贝文件 dd
挂载/卸载 mount / umonut
创建/激活/关闭交换分区 mkswap / swapon / swapoff

模块管理

配置服务

启动服务 systemctl start [SERVER]

终止/重启服务 stop/restart

查看状态 status

设置/禁用服务开机自启 enable / disable

网络访问和管理

安全远程连接 ssh

通过网络获取资源 wget

发送和接收邮件 mail

网络配置工具(旧) ifconfig

网络配置工具(新) ip

网络可达性检查 ping

显示或管理路由表 route

查看网络服务和端口 netstat / ss

  • netstat -lntp 查看所有监听端口

  • netstat -antp 查看所有已建立的连接

网络监听抓包 tcpdump

安全文件拷贝 scp

文件同步工具 rsync

安全文件传输 sftp

查看公网 IP

  • curl cip.cc

  • curl icanhazip.com

  • curl ident.me

计划任务

在指定的时间执行命令

将任务排队,在指定的时间执行 at

指定 3 天以后下午 5 点要执行的任务。

[root ~]# at 5pm+3days at> rm -f /root/*.html at> <EOT> job 9 at Wed Jun 5 17:00:00 2019

查看待执行的任务队列 atq
从队列中删除待执行的任务 atrm

计划任务表 crontab

输入`crontab -e`命令会打开 /etc/crontab

1
2
3
4
5
  * * * * *                  # 每隔一分钟执行一次任务  
  0 * * * *                  # 每小时的 0 点执行一次任务,比如 6:00,10:00  
  6,10 * 2 * *               # 每个月 2 号,每小时的 6 分和 10 分执行一次任务  
  0 * * * *                  # 每小时的 0 点执行一次任务,比如 6:00,10:00  
  6,10 * 2 * *               # 每个月 2 号,每小时的 6 分和 10 分执行一次任务

系统诊断

系统启动异常诊断 dmesg

查看系统活动信息 sar

  • `-A` - 显示所有设备(CPU、内存、磁盘)的运行状况。

  • `-u` - 显示所有 CPU 的负载情况。

  • `-d` - 显示所有磁盘的使用情况。

  • `-r` - 显示内存的使用情况。

  • `-n` - 显示网络运行状态。

查看内存使用情况 free

虚拟内存统计 vmstat

CPU 信息统计 mpstat

查看进程使用内存状况 pmap

报告设备 CPU 和 I/O 统计信息 iostat

显示所有 PCI 设备 lspci

显示进程间通信设施的状态 ipcs

工具软件

pdf

合并 pdf
1
  pdfunite *.pdf all.pdf

图片处理

压缩转换 convert

录制视频短片 peek

1
2
3
  sudo add-apt-repository ppa:peek-developers/stable
  sudo apt update
  sudo apt install peek

像素识别

1
  sudo snap install pick-colour-picker