ubuntu命令

145 阅读10分钟

命令和命令对应的参数有很多,此处只记录会常使用的命令及参数信息,如需查询更多命令,请查看下方连接
manpages.debian.org/unstable/ma…

重要文件

/etc/passwd 用户信息配置文件

/etc/shadow 用户密码配置文件

/etc/group 用户组文件管理

/etc/sudoers 修改sudo管理信息

  • %sudo ALL=(ALL:ALL) NOPASSWD:ALL 使用sudo执行命令时不用输入确认密码

系统命令

systemctl 系统服务管理

控制systemd系统与服务管理器, systemd文件位置为 /usr/lib/systemd/system

  • 查看服务开机启动状态:systemctl list-unit-files
    • --all 查看所有
    • --type 对服务类型进行过滤, 可以通过 systemctl list-unit-files --type=help查看可用的服务类型
    • --state 对状态进行过滤, 可以通过 --state=help 进行查看
  • 启用服务(开机自启):systemctl enable service_name
  • 禁用服务(开机不自启):systemctl disable service_name
  • 查看服务是否开机自启:systemctl is-enabled service_name
  • 暂停服务:systemctl stop service_name
  • 启动服务:systemctl start service_name
  • 重启服务:systemctl restart service_name

hostnamectl 控制系统的主机名

  • 修改系统启动时设置内核的主机名:hostnamectl --static set-hostname 主机名

apt 软件包管理器

  • 根据名称列出软件包名:apt list
  • --installed 已安装
    • --all-versions 所有可用
    • --upgradeable 可升级
  • 搜索软件包描述:apt search 包名
  • 显示软件包细节:apt show 包名
  • 安装软件包:apt install
  • 重新安装:apt reinstall
  • 移除软件包: apt remove
  • 卸载所有自动安装且不再使用的软件包: apt autoremove
  • 更新可用软件包列表: apt update
  • 通过安装/升级软件来更新系统: apt upgrade
  • 通过卸载/安装/升级更新系统:apt full-upgrade

pwd 显示当前工作目录

history 历史命令

date 时间日期类

  • 显示当前时间 date
  • 显示年份 date +%Y
    • 显示月份 date +%m
    • 显示当前天 date +%d
    • 显示年月日时分秒 date "+%Y-%m-%d %H:%M:%S"
    • 显示年月日 date +%F
    • 显示时分秒 date +%T
  • 显示前一天 date -d '1 days ago' date -d -1day +%F
  • 显示明天 date -d '-1 days ago' date -d 1day +%F
    • 1year 一年
    • 1month 一月
  • 设置系统时间 date -s "2017-06-19 20:52:18"

timedatectl 时间管理

  • 修改时区:timedatectl set-timezone Asia/Shanghai

df 查看磁盘空间使用情况

  • -h 以更容易阅读的方式展示
  • -a 查看子文件信息

du 文件和目录的磁盘使用空间

  • du -ah 文件名[目录名]
  • -s 只显示指定文件夹

PS 查看当前系统进程

  • ps -aux 查看所有进程
    • -a 选择所有进程
    • -u 显示所有用户的所有进程
    • -x 显示没有终端的进程
    • USER(启动用户) PID(进程号) %CPU(占用的CPU资源) %MEM(占用的内存) vsz(占用虚拟内存大小,单位kb) RSS(占用实际内存大小, 单位kb) TTY(在哪个终端中运行, tty1-tty6是本地字符界面终端,tty7是图形终端。 pts/0-225是虚拟终端) STAT(进程状态, R运行,S睡眠,T停止,s包含子进程,+后台运行) START(进程启动时间) TIME(占用CPU计算时间) COMMAND(使用的命令)
  • ps -ef 查看子父进程之间的关系
    • UID(启动用户) PID(进程号) PPID(父进程号) C(CPU优先级,数值越小,优先级越高) STIME(启动时间) TTY(运行终端) TIME(占用CPU计算时间) CMD(启动命令)

Kill 终止进程

kill [选项] 进程号 通过进程号杀死进程 killall 进程名称 通过进程名称杀死进程,支持通配符

  • -9 强迫进程立即停止

free 查看服务器总体内存

  • -h 以更容易阅读的方式展示
  • -m 以M为单位进行显示

top 监控页面

  • -d 秒数: 每隔几秒更新一次
  • -i 不显示闲置或僵尸进程
  • -p 指定监控进程ID
  • P 以CPU使用频率排序
  • M 以内存使用频率排序
  • N 以PID排序
  • q 退出
top - 15:07:43 up  5:18,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  28 total,   1 running,  27 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15848.4 total,  15177.0 free,    709.9 used,    231.7 buff/cache
MiB Swap:   4096.0 total,   4096.0 free,      0.0 used.  15138.5 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
1 root      20   0   22060  13448   9692 S   0.0   0.1   0:02.24 systemd
2 root      20   0    2616   1444   1320 S   0.0   0.0   0:00.00 init-systemd(Ub
8 root      20   0    2616    132    132 S   0.0   0.0   0:00.00 init
62 root      19  -1   50444  17196  16032 S   0.0   0.1   0:01.06 systemd-journal
111 root      20   0   24520   6724   4936 S   0.0   0.0   0:00.35 systemd-udevd
122 systemd+  20   0   21452  11904   9708 S   0.0   0.1   0:00.40 systemd-resolve
123 systemd+  20   0   91020   6520   5672 S   0.0   0.0   0:00.49 systemd-timesyn
201 root      20   0    4236   2704   2468 S   0.0   0.0   0:00.03 cron

top - 当前系统时间 up 电脑启动时长, 登录用户数量,负载情况:一分钟,5分钟,15分钟平均负载 进程数量, 运行进程数量,休眠进程数量,停止进程数量,僵尸进程数量 cpu 使用情况 用户模式占用比(us) 系统模式占用比(sy) 改变过优先级的用户进程占用比(ni) 空闲(id) 等待输入输出(wa) 硬中断请求服务(hi) 软中断请求服务(si) 虚拟时间(st) 内存使用情况 总量 空闲 已使用 缓冲内存 交换内存使用情况 总量 空闲 使用 缓存交互分区大小

netstat 网络统计信息和端口占用情况

apt install net-tools

  • netstat -anp 查看进程网络信息
    • -n 拒绝显示别名,使用数据进行展示
    • -l 仅展示在监听的服务状态
    • -p 显示哪个进程在调用
  • netstat -nlp 查看网络端口号占用情况

crontab 系统定时任务

systemctl status cron

  • 查询定时任务 cron -l

which 查看命令位置

  • -a 返回所有匹配的路径名
  • -s 如果找到所有可执行文件,则静默返回 0,否则返回 1

scp 文件传输

  • scp -r ./* master@192.168.83.101:/home/master/k8s-init 将当前文件夹下所有文件及目录传递到 192.168.83.101服务器上,使用的用户为 master, 服务器上地址为 /home/master/k8s-init

文件操作命令

ls 列出目录内容

  • -a 显示所有文件
  • -l 显示文件详细信息

cd 切换目录

  • -P 跳转到实际物理路径,非快捷方式路径
    • 回到上一次所在目录

mkdir 创建文件

  • -p 创建多层文件夹

touch 创建空白文件

cp 复制文件或目录

  • cp source dest : 复制source文件到dest
  • -r 递归复制整个文件夹

rm 删除文件或目录

  • -r 递归删除目录中所有内容
  • -f 强制删除,不用进行确认
  • -v 显示指令的详细执行过程

mv 移动文件或目录,也可进行重命名操作

ln 软连接

  • 给原文件创建一个软连接:ln -s [源文件或目录] [软件链名]
  • 删除使用 rm -rf 软件链名

chmod 修改文件权限

  • u 所有者
  • g 所有组
  • o 其他人
  • a 所有人
  • r = 4, w = 2, x = 1

chown 更改属主,属组

  • 修改属主: chown 用户 文件
  • -R 递归操作
  • 修改属主和属组: chown 用户:用户组 文件

find 查找文件或目录

从指定目录向下递归遍历各个子目录,将满足条件的文件进行显示 find [搜索范围] 选项

  • -name 按照指定文件名查找
    • find ./ -name "*.txt" 查找 .txt 结尾的文件
  • -user 查找属于用户名的所有文件
  • -size 按照指定文件大小查找文件
    • b c w k M G
    • find / -size +200M 查找大于200M的文件
    • find / -size -200M 查找小于200M的文件
    • find / -size 200M 查找等于200M的文件

文件内容查看命令

cat 查看文件内容

  • -n 显示行号

more 文件内容分屏查看

  • enter 向下翻一行
  • space 向下翻一页
  • q 退出
  • ctrl+F 向下滚动一屏
  • ctrl+B 返回上一屏
  • = 输出当前行行号
  • :f 输出文件名和当前行行号

less 分屏显示文件内容

比more指令更强,不会一次将整个文件进行加载,根据显示需要加载内容,对大文件显示具有较高的效率

  • space 向下翻一页
  • pagedown 向下翻一行
  • pageup 向上翻一行
  • /字串 向下搜索 n 下一个 N 上一个
  • ?字串 向上搜索 n 下一个 N 上一个
  • q 退出

tail 输出文件尾部内容

默认显示后10行内容

  • -n 5 显示最后几行
  • -f 实时滚动

echo

  • 输出重定向 >> 追加

grep 过滤查找

和 | 管道符配合使用

  • -n 显示原本输出的位置行数 ll | grep -n mysql
  • -v 反向过滤
  • -A 显示过滤后的下方几行 ll | grep -n -A 2 mysql
  • -C 显示过滤后的上下几行 ll | grep -n -C 2 mysql
  • -B 显示过滤后的前几行 ll | grep -n -B 2 mysql

cut 数据剪切

  • cut -d " " -f 1 cut.txt 对cut.txt文件内容通过空格进行区分获取第1列
  • cut -c 1 cut.txt 获取第1列的内容
  • echo PATHcutd":"f3PATH | cut -d ":" -f 3 对PATH输出内容,通过 :进行切割,获取第3列
  • echo PATHcutd":"f3PATH | cut -d ":" -f 3- 对PATH输出内容,通过 :进行切割,获取第3列及之后内容
  • ifconfig eth0 | grep "inet " | cut -d " " -f 10 输出ip地址

awk 文本分析工具

把文件逐行读入,以空格为默认分隔符对每行进行隔开,切开的部分在进行分析处理 -F 指定分隔符 -v 指定变量名 FILENAME 变量 NR 已读的行号 NF 浏览的个数(切割后的个数)

  • awk -F : '/^root/{print $7}' passwd 使用:对passwd文件内容进行分割,打印匹配root开头的第7列数据
  • awk -F : '/^root/{print 1","1","7}' passwd 使用:对passwd文件内容进行分割,打印匹配root开头的第1列和第7列数据,以逗号进行分割
  • awk -F : 'BEGIN{print "user,shell"} /^root/{print 1","1","7} END{print "dahaige,/bin/zuishuai"}' passwd 对输出的内容前后添加指定内容信息
  • awk -v i=1 -F : '{print $3+i} passwd 对输出第3列内容进行加1操作
  • awk -F : '{print "filename:" FILENAME ", linenum:" NR", col:"NF}' passwd 统计passwd文件名,每行的行号,每行的列数
  • ifconfig eth0 | awk -F " " '/inet /{print $2}' 打印ip地址

用户和组管理命令

adduser 用户管理

  • 添加用户 adduser 用户名称

userdel 删除用户

  • -r 同时删除用户目录

usermod 修改用户信息

  • -l 改变用户名
  • -d 修改家目录
  • -g 指定用户的新主组
  • -aG 添加附加组 usermod -aG 组名 用户名

groupadd 添加用户组

groupdel 删除用户组

groupmod 修改组

  • -n 指定工作组的新组名

passwd 设置或更改用户密码

  • 修改密码 passwd 用户名称

id 查看用户是否存在

  • id 用户名称

su 切换用户

sudo 使用root用户身份执行某条命令

解压缩命令

gzip/gunzip 压缩和解压缩

只能压缩文件,不能压缩目录

  • gzip 文件 将我呢见压缩为 .gz 文件
  • gunzip 文件.gz 解压

tar 打包

打包目录,压缩后的文件格式为 .tar.gz

  • -c 产生 .tar 打包文件
  • -v 显示详细信息
  • -f 指定压缩后的文件
  • -z 打包同时压缩
  • -x 解压 .tar 文件
  • 压缩多个文件 tar -zcvf 文件.tar 文件1 文件2 ...
  • 解压 tar -zxvf 文件.tar