18.2.常用命令
系统管理
shutdown - 关机、重启
shutdown - 关闭或重启。
shutdown [OPTIONS...] [TIME] [WALL...]
Shut down the system.
-H --halt 停机
-P --poweroff 关机
-r --reboot 重启
-h 等效于--poweroff, 会被--halt覆盖
-k 不停机/关机/重启, 只发送警告
--no-wall 在停止/关机/重新启动之前不发送警告消息
-c 取消关机任务
shutdown [options] when [message]
shutdown -h now
shutdown -h 21:30
shutdown -h +10
shutdown -h +10 "will reboot"
shutdown -r
shutdown -c
命令帮助
man - 查看在线帮助
man - manual - 查看命令的在线帮助。
man wc
whatis - 命令简述
whatis - 查询一个命令的简短描述(单行描述)。
whatis 命令在用 catman -w 命令创建的数据库中查找 command 参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。whatis命令等同于使用 man -f 命令。
whatis wc
apropos - 查找命令
apropos - 在whatis数据库中查找字符串。
使用man -k命令,可以得到和apropos命令相同的结果(实际上是相同的命令)。
-r, -- regex # 将每个keyword作为正则表达式解释, 默认行为
-w, --wildcard # 将每个keyword作为shell样式的通配符解释
-e, --exact # 精确匹配
-a, --and # 所有keyword是“并”的关系
-s section, # 只查找指定的手册section
--section section
apropos pip
文件管理
ls - 列出文件
ls - list - 列出文件,可以使用通配符。
其他参数
-F, --classify # 每个条目后面附加一个指示符,用来说明文件的类型。
# 全部指示符有 */=>@|
# /目录,*可执行文件,@符号链接,|FIFO文件,=套接字
# 没有指示符表示普通文件
--file-type # 同上,但不附加 '*'
-p, --indicator-style=slash # 将 / 指示符附加到目录
--indicator-style=WORD # 指示符风格: none (default), slash (-p),
# file-type (--file-type), classify (-F)
-R, --recursive # 递归列出
-a, --all # 列出全部文件,包括以'.'开头的隐藏文件
-A, --almost-all # 同上,但不列出 . 和 ..
-B, --ignore-backups # 不列出以 ~ 结尾的隐藏文件
-d, --directory # 列出目录本身,而不是列出其内容
--hide=PATTERN # 不列出与shell PATTERN匹配的隐式条目,
# 会被-a或-A参数覆盖
-I, --ignore=PATTERN # 不列出与shell PATTERN匹配的隐式条目,
# 不会被-a或-A参数覆盖
格式参数
# 排列格式
-C, --format=vertical # 多列纵向排列
-x, --format=across, # 多列横向排列
--format=horizontal
-l, --format=long, # 单列输出,并显示详细信息
--format=verbose
-1, --format=single-column # 单列输出,如果不是输出到终端,此选项就是默认选项
-m, --format=commas # 水平输出,以逗号分割
-o # 长格式单列输出,等价于"--format-long --no-group"
-w, --width=COLS # 将输出宽度设置为COLS个字符,0表示没有限制
# 字面值格式
-b, --escape # 使用C风格的转义序列表示非可打印字符
-Q, --quote-name # 条目名称使用双引号
--quoting-style=WORD # 使用WORD将条目名字括起来
# WORD 的有效值为:
# literal,locale,shell,shell-always,
# shell-escape, shell-escape-always, c, escape
-q, --hide-control-chars # 不可打印字符用问号代替
--show-control-chars # 原样显示不可打印字符,
# 默认值,除非程序为"ls",并输出到终端
-N, --literal # 打印文件的原始名称,不特别处理控制符
# 时间格式
--full-time # 类似 -l --time-style=full-iso
--time-style=STYLE # 和-l一起使用,设置时间格式
# STYLE: full-iso,long-iso,iso,locale,+FORMAT
# FORMAT的解释方式类似于'date';
# 如果FORMAT是 FORMAT1 <newline> FORMAT2,
# 则FORMAT1适用于非最新文件,FORMAT2适用于最新文件;
# 如果STYLE带有'posix-'前缀,
# 则STYLE仅在POSIX语言环境外生效
信息参数
-i, --inode # 为每个条目列出 inode
-s, --size # 在开头以块为单位打印每个文件的大小
--author # 和-l共用,打印每个文件的所有者
-G, --no-group # 和-l共用,不打印组名
-g # 类似-l,但不打印所有者
--block-size=SIZE # 以 SIZE 为单位打印每个文件的大小,
# 例如'--block-size=M',则以 1024*1024 bytes 为单位
-k, --kilobytes # 文件的大小以 1024-byte blocks 为单位
-h, --human-readable # 和-l或-s一起使用,文件的大小以可读的方式输出
--si # 类似-h,但使用1000作为底数,而不是1024
-n, --numeric-uid-gid # 类似-l, 但用数字表示UID和GID,而不是用户名和组名
-L, --dereference # 显示符号链接引用的文件信息,而不是链接本身
-Z, --context # 打印文件的 security context
排序参数
-U, --sort=none # 不排序,按它们在磁盘上存储的顺序列出
# 因为不加排序,目录内容很多时,能显著地加快速度
-f # 不排序,启用"-aU",禁用"-ls --color"
-r, --reverse # 逆序排序
-t, --sort=time # 按 mtime 排序
-c, --time=ctime,
--time=status # 和-lt一起使用,按 ctime 排序,并显示 ctime
# 和-l一起使用,按文件名排序,显示 ctime
# 单独使用,按 ctime 纵向排序,时间最新的在最前面
-u # 和-lt共用: 显示并以access time排序
# 和-l共用: 显示access time,以文件名排序
# 否则以access time排序,最新的优先
-S, --sort=size # 按文件大小排序,大文件靠前
-X, --sort=extension # 按文件扩展名排序,没有扩展名的先列出
--sort=WORD # 按 WORD 排序: none (-U), size (-S),
# time (-t), version (-v), extension (-X)
--time=WORD # 和-l共用,显示WORD时间,而不是modification时间
# WORD: atime or access or use (-u);
# ctime or status (-c);
# 当与 --sort=time 共用时,WORD是用于排序的时间
--group-directories-first # 将目录排在文件前面
cd - 进入目录
cd - change working directory - 进入指定目录。
pwd - 打印当前目录
pwd - print working directory - 打印当前目录的绝对路径。
mkdir - 创建目录
mkdir - make directory - 创建目录,若目录已存在,默认报错。
-m, --mode=MODE # 设置文件权限(类似chmod),不会减去umask
-p, --parents # 如果目录已存在不会报错;根据需要创建父目录
-v, --verbose # 为创建的每个目录显示一条消息
rm - 删除文件或目录
rm - remove - 删除文件或目录。
-f, --force # 忽略不存在的文件和参数,从不提示
-i # 在每次删除之前提示,默认行为
-1 # 在删除三个以上的文件之前或递归删除时,提示1次
--interactive[=WHEN] # 根据WHEN进行提示: never, once (-I), or always (-i)
--one-file-system # 递归删除时,跳过任何与指定文件系统不同的目录
--no-preserve-root # 不保护'/'目录
--preserve-root # 不删除'/' (默认)
-r, -R, -recursive # 递归删除目录及其内容
-d, --dir # 删除空目录
rmdir - 删除空目录
rmdir - remove directory - 删除空目录。
--ignore-fail-on-non-empty # 忽略目录非空导致的失败
-p, --parents # 删除目录及其父目录
mv - 重命名 / 移动文件或目录
mv - 移动文件或目录;重命名。
--backup[=CONTROL] # 备份每个现有目标文件
-b # 类似--backup,但不接受参数
-f, --force # 覆盖前不提示
-i, --interactive # 覆盖前提示
-n, --no-clobber # 不覆盖现有文件
--strip-trailing-slashes # 从每个SOURCE参数中删除所有尾随斜杠
-S, --suffix=SUFFIX # 覆盖通常的备份后缀
-t, --target-directory=DIRECTORY # 将所有的SOURCE移至DIRECTORY
-T, --no-target-directory # 将DEST视为普通文件
-u, --update # 仅在SOURCE比DEST更新时,或DEST不存在时移动
cp - 复制文件或目录。
cp:复制文件或目录。
-a, --archive # 等效于-dR --preserve=all
--attributes-only # 不复制文件数据,仅复制属性
--backup[=CONTROL] # 对每个存在的目标文件进行备份
-b # 类似--backup,但不接受参数
--copy-contents # copy contents of special files when recursive
-d # 等效于--no-dereference --preserve=links
-f, --force # 如果已存在的目标文件不能打开,删除它并重试
# 当-n选项也被使用时,该选项将被忽略
-i, --interactive # 覆盖前提示,该选项会被-n覆盖
-H # follow command-line symbolic links in SOURCE
-l, --link # 创建硬链接,而不是复制
-L, --dereference # always follow symbolic links in SOURCE
-n, --no-clobber # 不要覆盖已有的文件
-P, --no-dereference # never follow symbolic links in SOURCE
-p # 等效于--preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]# 尽可能保留指定的属性(default:mode,ownership,timestamps)
# additional attributes: context, links, xattr,all
--no-preserve=ATTR_LIST # 不保留指定的属性
--parents # 在目标目录下使用完整的源文件名
-R, -r, --recursive # 递归复制目录
--reflink[=WHEN] # control clone/CoW copies. See below
--remove-destination # 复制前,直接移除已存在的目标文件,和--force冲突
--sparse=WHEN # control creation of sparse files. See below
--strip-trailing-slashes # 移除源文件的尾随斜杠
-s, --symbolic-link # 创建符号链接,而不是复制
-S, --suffix=SUFFIX # override the usual backup suffix
-t, --target-directory=DIRECTORY # 复制所有指定的SOURCE到DIRECTORY
-T, --no-target-directory # 将DEST视为普通文件
-u, --update # 只有SOURCE文件比目标文件更新,或目标文件不存在时才复制
gzip - 压缩文件
zcat - 读取gzip文件
zcat:读取gzip文件,而无需先解压缩它们。
文件编辑
head - 查看文件头部
-c, --bytes=[-]NUM # 打印每个文件的前NUM个字节
# 以'-'开头, 打印所有内容,除了最后一个NUM bytes
-n, --lines=[-]NUM # 打印前NUM行,默认为前10行
# 以'-'开头, 打印所有内容,除了最后一个NUM lines
-q, --quiet, --silent # 不打印标题
-v, --verbose # 总是打印标题
-z, --zero-terminated # 行终止符为NUL,而不是换行符
tail - 查看文件尾部
-c, --bytes=[+]NUM # 输出最后NUM个字节;
# 或使用-c +NUM输出从NUM字节开始的内容
-f, # 显示文件新追加的内容,查看日志文件比较有用
--follow [={name|descriptor}]
-F # 与--follow=name --retry相同
-n, --lines=[+]NUM # 输出最后NUM行,默认为最后10行;
# 或使用-n +NUM从NUM行开始输出
--max-unchanged-stats=N # 和--follow=name共用
# 重新打开在N次(默认5次)迭代后未更改大小的FILE,
# 以查看其是否已取消链接或重命名
#(这是循环日志文件的常见情况);
# 使用inotify时,此选项很少有用
--pid=PID # 和-f共用,在进程PID终止之后,停止打印
--retry # 如果无法访问文件,不断尝试
-s, --sleep-interval=N # 和-f共用,睡眠大约N秒,默认值为1.0;
# 和inotify或--pid=P共用,每N秒检查进程PID至少一次
-z, --zero-terminated # 行定界符为NUL,而不是换行符
cat - 显示文件内容
cat:在终端显示文件内容、将输入终端的文本保存进文件、将多个文本文件保存到一个文本文件。
- > :表示覆盖原内容
- >> :表示追加
-A, --show-all # 等效于-vET
-b, --number-nonblank # 给非空行编号
-e # 等效于-vE
-E, --show-ends # 每行末尾显示$
-n, --number # 给每行编号
-s, --squeeze-blank # 多个连续的空行替换为一个空行
-t # equivalent to -vT
-T, --show-tabs # 将TAB characters显示为^I
-v, --show-nonprinting # 使用^和M-表示法, LFD和TAB除外
less - 浏览文件内容
less:分屏上下翻页浏览文件内容。用PageUp键向上翻页,用PageDown键向下翻页。按Q键退出less程序。
wc - 统计文件字数
wc:统计文件的字节数、字数、行数。
grep - 搜索文本
grep:在文件中搜索文本,可以使用正则表达式。
sort - 排序文本
sort:排序文本(文本可以来自终端输入、也可以来自文件)。
用户管理
who - 当前所有登陆用户的信息
-a, --all # 等价于调用 '-b -d --login -p -r -t -T -u'
-b, --boot # 上次系统启动的时间
-d, --dead # 打印 dead 状态的进程
-H, --heading # 打印列标题行
-l, --login # 打印系统登录进程
--lookup # 尝试通过 DNS 规范主机名
-m # 仅显示和标准输入关联的主机名和用户
-p, --process # 打印由 init 生成的活动进程
-q, --count # 列出所有已登录用户的名称和数量
-r, --runlevel # 打印当前运行级别
-s, --short # 仅打印名称、行和时间(默认)
-t, --time # 打印上次系统时钟更改
-u, --users # 列出登录的用户
-T, -w, --mesg, --message, --writable
# 将"+、-、?"中的一个作为用户的消息状态添加到用户名称后面
# '+' 允许写入信息
# '-' 禁止写入信息
# '?' 不能查找到终端设备
whoami - 打印与当前有效用户ID关联的用户名。
chmod - 更改权限
change the permissions mode of a file.
- 通过符号组合的方式更改目标文件或目录的权限。
- 通过八进制数的方式更改目标文件或目录的权限。
- 通过参考文件的权限来更改目标文件或目录的权限。
权限 | 数字表示 | 文件 | 目录 |
---|---|---|---|
r | 4 - $2^2$ | 可读取、复制文件 | 可列出目录的内容 |
w | 2 - $2^1$ | 可写入、修改文件 | 可在目录中创建、删除文件 |
x | 1- $2^0$ | 可执行文件 | 可进入目录 |
Symbol | Meaning |
---|---|
u | user |
g | group |
o | other |
a | all |
r | read |
w | write (and delete) |
x | execute (and access directory) |
+ | add permission |
- | take away permission |
Usage: chmod [{ugoa}{+-=}{rwx}] [文件或目录]
[mode=421] [文件或目录]
-c, --changes # 当文件的权限更改时输出操作信息
--no-preserve-root # 不保护根目录,默认选项
--preserve-root # 不能在根目录下递归操作
-f, --silent, # 抑制多数错误消息的输出
--quiet
-v, --verbose # 无论文件是否更改了权限,一律输出操作信息
--reference=RFILE # 使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限
-R, --recursive # 递归更改权限
程序管理
ps sleep 10 & & 在后台运行作业并立即返回提示,允许您在等待该作业完成时运行其他程序。
bg - 后台执行
bg:将任务放到后台执行。
fg - 前台执行
fg:将后台任务放到前台终端执行。
jobs - 显示任务列表
jobs:显示任务列表及任务状态
kill - 终止程序
kill:删除执行中的程序或工作。
磁盘管理
df - 显示磁盘相关信息
df .
% 显示当前目录磁盘相关信息(文件系统、挂载点等等)
du - 显示每个子目录使用的千字节数
du:du 命令输出每个子目录使用的千字节数。如果磁盘空间不足,希望找出哪个目录中的文件最多,则此选项非常有用。
du -s *
file - 文件分类
file:根据命名文件包含的数据类型对其进行分类,例如 ascii(文本)、图片、压缩数据等。
file *
% 报告主目录中的所有文件
find - 查找文件
find:这将在目录中搜索具有给定名称、日期、大小或任何其他要指定的属性的文件和目录。这是一个简单的命令,但有许多选项,可以通过键入man find来阅读手册。
例如:要搜索扩展名为.txt
的所有文件,从当前目录(.)开始,遍历所有子目录,然后将文件名打印到屏幕上:
find . -name "*.txt" -print
搜索当前目录中大于1兆的文件:
find . -size +1M -ls
参考网址
https://www.linuxcool.com/
http://www.ee.surrey.ac.uk/Teaching/Unix/
https://www.runoob.com/linux/linux-command-manual.html
http://c.biancheng.net/linux_tutorial/10/