0%

linux 基本命令

linux 基本命令

参考资料: Linux 命令搜索,Linux man 指令

安装和登录命令

login

作用: 登陆系统或切换用户身份

补充说明: login 命令 用于给出登录界面,可用于重新登录或者切换用户身份,也可通过它的功能随时更换登入身份。在 Slackware 发行版中 ,您可在命令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当 /etc/nologin 文件存在时,系统只 root 帐号登入系统,其他用户一律不准登入。

语法:

1
2
3
login [-p] [-h 主机] [用户名] [ENV=VAR...]
login [-p] [-h 主机] [-f 名称]
login [-p] -r 主机

选项:

1
2
3
4
5
6
7
-f 不要执行认证,用户已经预认证过。
注意:此时,username 是强制的。
-h 此登录的远程主机名。
-p 保留环境。
-r 为 rlogin (远程登录)执行 autologin (自动登录)协议。

-r, -h and -f 只能用于 root 使用 login 时。

一般用于当前主机切换用户,远程连接使用 SSH 即可。

shutdown

作用: 系统关机命令

补充说明: shutdown 以一种安全的方式关闭系统。所有登陆用户都可以看到关机信息提示,并且 login(1) 将被阻塞。可以指定立刻关机,也可以指定系统在一定的延时后关机。所有进程都将接收到 SIGTERM 信号。这可以使 vi(1) 等程序有时间将处于编辑状态的文件进行存储,邮件和新闻程序进程则可以将所有缓冲池内的数据进行适当的清除等等。

语法:

1
shutdown [-t sec] [-arkhncfF] time [warning-message]

选项:

1
2
3
4
5
6
7
8
9
-a     使用 /etc/shutdown.allow 来验证身份。
-t sec 通知 init(8) 在转换到其它运行级别前,发送警告 (warning) 信号后延时 (sec) 秒数后再发送关闭 (kill) 信号。
-k 并非真正关机,只向所有人显示警告信息。
-r 重启。
-h 停机。
-n [DEPRECATED(不应再使用)] 不调用 init(8) 程序进行关机操作,而由自己进行。不建议用户使用这种关机方式,它的结果一般也不是你希望的那样。
-f 重启时跳过磁盘检测。
-F 重启时强制磁盘检测。
-c 取消运行中的 shutdown 进程。不可能为此选项指定 time 参数,但你可以在命令行输入一条解释消息来向所有用户说明。(一般的shutdown指令可以用按“+”号来进行中断)

关机指令,在 11:50 关机

1
shutdown -h 11:50

重启指令,在 11:50 关机

1
shutdown -r 11:50

取消 shutdown 指令

1
shutdown -c

更多指令请使用 man shutdown 查看

halt

作用: 关机指令

补充说明: 作为兼容传统的命令存在

语法:

1
halt [OPTINS...]

选项:

1
2
3
4
5
6
7
8
9
--help 显示简短的帮助信息并退出。
--halt 停机(关闭系统但是不切断电源)
-p, --poweroff 关机(关闭系统并且切断电源)
--reboot 重新启动
-f, --force 强制立即停机/关机/重新启动, 而不与 init 进程通信。
-w, --wtmp-only 仅向 wtmp 中写入一条关机记录, 而不实际执行关机动作。
-d, --no-wtmp 不向 wtmp 中写入任何关机记录
-n, --no-sync 在关机前不刷写磁盘缓存
--no-wall 在关机前不发送警告信息

reboot

作用: 重启指令

补充说明: 作为兼容传统的命令存在

语法:

1
reboot [OPTINS...]

选项:

1
2
3
4
5
6
7
8
9
--help 显示简短的帮助信息并退出。
--halt 停机(关闭系统但是不切断电源)
-p, --poweroff 关机(关闭系统并且切断电源)
--reboot 重新启动
-f, --force 强制立即停机/关机/重新启动, 而不与 init 进程通信。
-w, --wtmp-only 仅向 wtmp 中写入一条关机记录, 而不实际执行关机动作。
-d, --no-wtmp 不向 wtmp 中写入任何关机记录
-n, --no-sync 在关机前不刷写磁盘缓存
--no-wall 在关机前不发送警告信息

mount

作用: 挂在文件系统

补充说明:

语法:

1
2
3
4
mount [-l|-h|-V]
mount -a [-fFnrsvw] [-t fstype] [-O optlist]
mount [-fnrsvw] [-o options] device|dir
mount [-fnrsvw] [-t fstype] [-o options] device dir

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
-s-r:等于 -o ro
-w:等于 -o rw
-L:将含有特定标签的硬盘分割挂上。
-U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。
-t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。
-o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。
-o sync:在同步模式下执行。
-o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。
-o auto、-o noauto:打开/关闭自动挂上模式。
-o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async.
-o dev、-o nodev-o exec、-o noexec允许执行档被执行。
-o suid、-o nosuid:
允许执行档在 root 权限下执行。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。
-o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。
-o ro:用唯读模式挂上。
-o rw:用可读写模式挂上。
-o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。

常用命令:

挂载一个文件系统

1
mount /dev/sdc1 /media/store

umount

作用: 卸载文件系统

补充说明: umount 命令 用于卸载已经加载的文件系统。利用设备名或挂载点都能 umount 文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。

语法:

1
2
3
umount [-hV]
umount -a [-nrv] [-t vfstype]
umount [-nrv] device | dir [...]

选项:

1
2
3
4
5
6
7
8
-V     打印版本信息并退出。
-h 显示帮助信息并退出。
-v 以冗长模式运行。
-n 在卸载后不将相应信息写入 /etc/mtab 文件。
-r 如果卸载失败,试图以只读方式进行重新挂载。
-a 卸载所有在 /etc/mtab 文件中描述的文件系统。(在 umount 版本或以后的版本中,不会卸载 proc 文件系统)
-t vfstype 只卸载指定类型的文件系统。如果要一次指定多个文件系统, 可以用逗号分隔。如在指定文件系统前加 no ,则可卸载除些文件系统以外的其它文件系统。
-f 强制卸载(比如不可达的 NFS )。 (此选项须在高于 2.1.116 的版本上使用)

常用命令

通过设备名卸载

1
umount /dev/sdc1

通过挂载点卸载

1
umount /media/store

卸载并弹出

1
eject /media/store

chsh

作用: 更改登录 shell

补充说明: chsh 命令 用来更换登录系统时使用的 shell。若不指定任何参数与用户名称,则 chsh 会以应答的方式进行设置。

语法:

1
chsh [选项] [登录]

选项:

1
2
3
-h, --help 现实帮助信息并退出。
-R, --root CHROOT_DIR Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.
-s, --shell SHELL 用户的新登录 shell 的名称。将此字段设置为空会让系统选择默认的登录 shell。

查看系统安装了哪些 shell 可以使用 cat /etc/shells 命令查看

文件处理命令

file

作用: 用来探测给定文件的类型。

补充说明: file 命令 用来探测给定文件的类型。file 命令对文件的检查分为文件系统、魔法幻数检查和语言检查 3 个过程。

语法:

1
file [ -bcnsvzL ] [ -f 命名文件 ] [ -m 幻数文件 ] file ...

选项:

1
2
3
4
5
6
7
8
9
   -b      不输出文件名 (简要模式).
-c 检查时打印输出幻数文件的解析结果.常与 -m 一起使用,用来在安装幻数文件之前调试它.
-f 命名文件 从在参数表前的 命名文件 中读出将要检查的文件名(每行一个文件).要有 命名文件 ,或者至少有一个文件名参数; 如果要检查标准输入, 使用``-''作为文件参数.
-m list 指定包含幻数的文件列表.可以是单个文件,也可以是 用冒号分开的多个文件.
-n 每检查完一个文件就强制刷新标准输出. 仅在检查一组文件时才有效. 一般在将文件类型输出到管道时才采用此选项.
-v 打印程序版本并退出.
-z 试图查看压缩文件内部信息.
-L (在支持符号链接的系统上)选项显示符号链接文件的原文件, 就像 ls(1) 命令的like-named 选项.
-s 通常, file 只是试图去检查在文件列表中那些 stat(2) 报告为正常文件的文件的类型.由于读特殊文件将可能导致 不可知后果,所以这样可以防止发生问题.使用 -s 选项时 file 命令也将去读文件列表中的块特殊文件和字符特殊文件. 一般用于从原始磁盘分区中获得文件系统类型,此文件为块 特殊文件. 这个选项也导致 file 命令忽略 stat(2) 报告的文件大小,因为在有些系统中原始磁盘分区的大小报告为0.

mkdir

作用: 创建目录

补充说明:

语法:

1
mkdir [选项]... 目录列表...

选项:

1
2
3
4
5
6
7
-m, --mode=模式 设置文件模式(类似chmod),而不是 rwx 减 umask
-p, --parents 如果目录已存在,不报错,且按需创建父目录
-v, --verbose 为每一个已创建的目录打印信息
-Z 将每个创建的目录的 SELinux 安全上下文设置为默认类型
--context[=CTX] 类似 -Z,或者如果指定了上下文,则将 SELinux 或者 SMACK 安全上下文设置为指定类型
--help 显示此帮助信息并退出
--version 显示版本信息并退出

常用命令

创建目录指定权限

1
mkdir -m 777 /opt/test

如果创建目录的上级目录不存在,先创建上级目录在创建指定目录

1
mkdir -p /test/opt/test

grep

作用: 文件搜索工具

补充说明: grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。

语法:

1
2
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]

选项:

1
太多了,使用 man grep 查看

常用命令

一般 grep 配置 Linux 管道进行搜索

1
cat test.txt | grep pattern

不输出匹配行,改为输出匹配的行数

1
cat test.txt | grep -c pattern

dd

作用: 转换和拷贝文件

补充说明: dd 命令 用于复制文件并对原文件的内容进行转换和格式化处理。dd 命令功能很强大的,对于一些比较底层的问题,使用 dd 命令往往可以得到出人意料的效果。用的比较多的还是用 dd 来备份裸设备。但是不推荐,如果需要备份 oracle 裸设备,可以使用 rman 备份,或使用第三方软件备份,使用 dd 的话,管理起来不太方便。

语法:

1
dd [--help] [--version] [if=file] [of=file] [ibs=bytes] [obs=bytes] [bs=bytes] [cbs=bytes] [skip=blocks] [seek=blocks] [count=blocks] [conv={ascii, ebcdic, ibm, block, unblock, lcase, ucase, swab, noerror, notrunc, sync}]

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if=file 从 file 中读而不是标准输入。
of=file 写到 file 里去而不是标准输出。除非指定 conv=notrunc ,否则, dd 将把 file 截为O字节(或由 seek= 选项指定的大小)
ibs=bytes 一次读 bytes 字节。默认是512。
obs=bytes 一次写 bytes 字节。默认是512。
bs=bytes 一次读和写 bytes 字节。这将覆盖 ibs 和 obs 设定的值(并且,设定 bs 不等于同时将 ibs 和 obs 设为同一个值,至少在 只使用 sync, noerror 或 notrunc 转换时是这样的。因为bs规定,每个输入块都应作为单独 的数据块拷贝到输出,而不把较短的块组合到一起)。
cbs=bytes 为 block 转换和 unblock 转换指定转换块的大小。
skip=blocks 在拷贝之前,跳过输入文件的前 blocks 块,每块大小为 ibs-byte 字节。
seek=blocks 在拷贝之前,跳过输出文件的前 blocks 块,每块大小为 obs-byte 字节。
count=blocks 只拷贝输入文件的前 blocks 块(每块的大小为 ibs-byte 字节),而不是全部内容,直到文件末尾。
conv=转换"[,"转换"]..." 将文件按 转换 参数指定的方式转换(在“,”两边没有空格)。
转换方式包括:
ascii 将 EBCDIC 转换成 ascii。
ebcdic 将 ascii 转换成 ebcdic。
ibm 将 ascii 转换成 alternative ebcdic。
block 每一行输入,无论长短,输出都是 cbs 字节,并且其中的“换行”(NEWLINE,即c中的'0)用 空格替换。如有必要,行尾会填充空格。
unblock 用“换行”替换每个输入块( cbs 字节大小)末尾的空格。
lcase 将大写字母转换成小写。
ucase 将小写字母转换成大写。
swab 交换每对输入字节。如果读入的字节数是奇数,最后 一个字节只是简单的复制到输出(因为没有能跟它交换的 字节了)(POSIX 1003.26,PASC翻译1003.2 3号和4号)。
noerror 发生读错误时,继续进行。
notrunc 不截断输出文件。
sync 用0填充到每个输入块的末尾,使其大小为 ibs 字节。

常用命令

制作 Linux 镜像

1
dd if=/home/ubuntu.iso of=/mnt/usb_device

find

作用: 查找文件

补充说明: 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

语法:

1
find [path...] [expression]

选项:

1
太多了,使用 man find 查看

常用命令

列出当前目录及子目录下的所有文件和文件夹

1
find .

在 home 目录下查找以 .txt 结尾的文件名

1
find /home -name "*.txt"

在 home 目录下查找以 .txt 结尾的文件名,但忽略大小写

1
find /home -iname "*.txt"

在当前目录查找所有以 .txt 和 .pdf 结尾的文件

1
find . -name "*.txt" -o -name "*.pdf"

更多参考命令点击这里

mv

作用: 移动文件

补充说明: mv 命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source 表示源文件或目录,target 表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

语法:

1
2
3
mv [选项]... 源文件 目标文件
mv [选项]... 源文件... 目录
mv [选项]... --target-directory=DIRECTORY SOURCE...

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
--backup[=CONTROL] 为现有的每一个目标文件作一个备份
-b 和--backup一样但是不接受参数
-f, --force 覆盖前永不提示
-i, --interactive 覆盖前提示
--strip-trailing-slashes 删除任何“源文件”参数后面跟随的斜杠
-S, --suffix=SUFFIX 省略一般的备份后缀
--target-directory=DIRECTORY 移动全部“源文件”参数到“目录”中
-u, --update 只移动更老的或者标记新的非目录
-v, --verbose 说明完成了什么
--help 显示帮助且退出程序
--version 输出版本信息且退出程序
这是备份后缀 `~', 除非设定 --suffix 或 SIMPLE_BACKUP_SUFFIX。 这个版本管理方法可以选择通过 --backup 选项或通过
VERSION_CONTROL 环境变量。这些值是:
none, off 永不做备份 (即使用 --backup)
numbered, t 做备份编号
existing, nil 编号,如果编号备份存在,用其它的简单方法
simple, never 总是做简单备份

mv 可以用作备份,但是总会有更好的选择

常用命令

覆盖文件提示

1
mv -i test.txt /home/office

无条件覆盖已经存在的文件

1
mv -f test.txt /home/office

重命名文件

1
mv test.txt test.md

mv 不仅可以操作文件,也可以操作目录,上述操作对目录同样起作用

ls

作用: 列出目录内容

补充说明: ls 命令 用来显示目标列表,在 Linux 中是使用率较高的命令。ls 命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

语法:

1
ls [选项] [文件名...]

选项:

1
太多了,使用 `man ls` 命令查看

常用命令

查看当前目录的非隐藏文件

1
ls

查看当前目录的所有文件

1
ls -a

单列查看但前目录的所有文件

1
ls -1a

查看指定目录的文件

1
ls /opt

递归输出指定目录下面的文件

1
ls -R /opt

显示文件夹信息

1
ls -ld /etc/

更多参考命令点击这里查看

diff

作用: 比较两个文件的不同

补充说明: diff 命令 在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff 命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。

语法:

1
diff [选项] 源文件 目标文件

选项:

1
太多了,使用 `man diff` 查看

常用命令

比较两个文件的不同

1
diff test1.txt test2.txt

对于 diff 显示的结果有不明白的,可以参考这篇文章

cat

作用: 连接文件并在标准输出上输出

补充说明: cat 命令 连接文件并打印到标准输出设备上,cat 经常用来显示文件的内容。对于大型文件应该使用 more 或者 less 命令分屏显示

语法:

1
cat [选项]... [文件]...

选项:

1
2
3
4
5
6
7
8
9
10
11
12
-A, --show-all 等价于 -vET
-b, --number-nonblank 给非空输出行编号,使 -n 失效。
-e 等价于 -vE
-E, --show-ends 在每行结束显示 $
-n, --number 给所有输出行编号
-s, --squeeze-blank 将所有的连续的多个空行替换为一个空行
-t 等价于 -vT
-T, --show-tabs 把 TAB 字符显示为 ^I
-u (被忽略的选项)
-v, --show-nonprinting 除了 LFD 和 TAB 之外的不可打印字符,用 ^ 和 M- 标记方式显示
--help 显示此帮助信息并退出
--version 显示版本信息并退出

常用指令

输出一个文件到终端

1
cat test1.txt

将两个文件输出到终端

1
cat test1.txt test2.txt

输出文件内容到文件

1
cat test1 > newfile

ln

作用: 为文件创建连接

补充说明: ln 命令 用来为文件创件连接,连接类型分为硬连接和软链接两种,默认的连接类型是硬连接。如果要创建软链接必须使用 “-s” 选项。

关于硬链接和软链接的区别可以看这篇文章
简单的说,硬链接就是有多个指针指向同一个文件区域,删除任何一个指针并不会实际删除文件区域,因此不会影响其他指针的使用。
软链接则不同,软链接创建的指针指向的不是文件区域,而是指向一个指向文件区域的指针,一旦指向的指针被删除,软链接就无法生效。

语法:

1
2
ln [options] source [dest]
ln [options] source...directory

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--backup[=CONTROL]  为每个已存在的目标文件创建备份文件
-b 类似--backup,但不接受任何参数
-d, -F, --directory 创建指向目录的硬链接(只适用于超级用户)
-f, --force 强行删除任何已存在的目标文件
-i, --interactive 覆盖既有文件之前先询问用户;
-L, --logical 取消引用作为软链接的目标
-n, --no-dereference 把软链接的目的目录视为一般文件;
-P, --physical 直接将硬链接到软链接
-r, --relative 创建相对于链接位置的软链接
-s, --symbolic 对源文件建立软链接,而非硬连接;
-S, --suffix=SUFFIX 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
-t, --target-directory=DIRECTORY 指定要在其中创建链接的DIRECTORY
-T, --no-target-directory 将“LINK_NAME”视为常规文件
-v, --verbose 打印每个链接文件的名称
--help 显示此帮助信息并退出
--version 显示版本信息并退出

常用命令

创建一个硬链接

1
ln source newfile

创建一个软链接

1
ln -s source newfile

系统管理相关命令

df

作用: 报告文件系统磁盘空间的使用情况

补充说明: df 命令 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为 KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法:

1
df [OPTION]... [FILE]...

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-a, --all 列出包括BLOCK为0的文件系统
--block-size=SIZE use SIZE-byte blocks 指定块的大小
-h,--huma-readable" 用常见的格式显示出大小(例如:1K 234M 2G)
-H,--si" 同上,但是这里的1k等于1000字节而不是1024字节
-i, --inodes 用信息索引点代替块表示使用状况
-k, --kilobytes 指定块大小等于1024字节来显示使用状况
-l, --local 只显示本地文件系统使用状况
-m, --megabytes 以指定块大小等于1048576字节(1M)来显示使用状况
--no-sync 在取得使用信息前禁止调用同步 (default)
-P, --portability 使用POSIX格式输出
--sync 在取得使用信息前调用同步
-t, --type=TYPE 只显示指定类型(TYPE)的文件系统
-T, --print-type 输出每个文件系统的类型
-x, --exclude-type=TYPE 只显示指定类型(TYPE)之外的文件系统.
-v (忽略)
-- 输出该命令的帮助信息并退出
--version 输出版本信息并退出

常用命令

友好的方式显示整个文件系统的磁盘使用情况

1
df -h

查看指定文件系统的使用情况

1
df -h /

df 只能查看挂载点上使用情况

top

作用: 显示 Linux 进程

补充说明: top 命令 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过 top 命令所提供的互动式界面,用热键可以管理。

语法:

1
top -hv|-bcHiOSs -d secs -n max -u|U user -p pid -o fld -w [cols]

选项:

1
2
3
4
5
6
7
8
9
10
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。

top 交互命令

在 top 命令执行过程中可以使用一些交互命令。这些命令都是单字母的,如果在命令行中使用 -s 选项,其中一些命令可能会被屏蔽

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。

free

作用: 显示系统中已用和未用的内存空间总和

补充说明: free 命令 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

语法:

1
free [-b | -k | -m] [-o] [-s delay ] [-t] [-V]

选项:

1
2
3
4
5
-b 选项 以字节为单位 显示 内存总和; -k 选项 (缺省的) 以 KB 为单位 显示; -m 选项 以 MB 为单位.
-t 选项 显示 一个 总计行.
-o 选项 禁止 "buffer adjusted" 行的显示. 除非 指定 free 从 (相应的) 已用/未用的 内存 减去/加上 缓冲区内存.
-s 使 free 以 delay 秒为间隔, 连续抽样显示. delay 可以设置成浮点数, 它用 usleep(3) 做 微秒级 延迟.
-V 显示版本信息.

常用命令

以友好的方式显示内存使用情况

1
free -h

quota

作用: 显示磁盘的使用和限额

补充说明: quota 命令 用于显示用户或者工作组的磁盘配额信息。输出信息包括磁盘使用和配额限制。

语法:

1
2
3
quota [ -guv | q ]
quota [ -uv | q ] user
quota [ -gv | q ] group

选项:

1
2
3
4
-g     显示 用户所在组 的 组限额. 可选项(optional).
-u 和 缺省情况 一样.
-v 显示 文件系统上 的 限额, 即使 没有 占用 空间.
-q 简洁的 信息, 只 显示 超出 限额 的 文件系统.

at

作用: 在指定时间执行一个任务

补充说明: at 命令 用于在指定时间执行命令。at 允许使用一套相当复杂的指定时间的方法。它能够接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。

上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now 就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。

语法:

1
at [-V] [-q 队列] [-f 文件] [-mldbv] 时间 at -c 作业 [作业...]  atq [-V] [-q 队列] [-v]

选项:

1
2
3
4
5
6
7
8
9
10
-V      在标准错误上输出版本号。
-q queue 使用指定的队列。一个队列用一个字母标定,有效的的队列标定的 范围是从a到z和从A到Z。at 的缺省队列是 a,batch 的缺省队列是 b。队列的字母顺序越高,则队列运行时越谦让(运行级别越低)。 指定的队列 "=" 保留给当前运行的作业所在的队列。
如果一个作业被提交到一个以大写字母标定的队列,则与提交到 batch 同样对待。如果给 atq 指定一个队列,则只显示在此指定 队列中的作业。
-m 当作业完成时即使没有输出也给用户发邮件。
-f file 从文件而不是标准输入中读取作业信息。
-l 是 atq 的别名。
-d 是 atrm 的别名。
-v 对于 atq, 显示完整的在队列中未被删除的作业,对于其他 命令,显示作业将要执行的时间。
显示的时间的格式类似于"1997-02-20 14:50",但如果设置了 POSIXLY_CORRECT 环境变量之后,格式类似于"Thu Feb 20 14:50:00 1996"。
-c 连接命令行中列出的作业并输出到标准输出。

lp

作用: 打印文件或修改排队的打印任务

补充说明: lp 命令 用于打印文件,或者修改排队的打印任务。与 lpr 命令类似,lp 命令既支持文件输入也支持标准输入。它与 lpr 的不同之处在于它有一个不同(稍微复杂点)的参数选项设置。

语法:

1
2
lp [ -E ] [ -U username ] [ -c ] [ -d destination[/instance] ] [ -h hostname[:port] ] [ -m ] [ -n num-copies ] [ -o option[=value] ] [ -q priority ] [ -s ] [ -t title ] [ -H handling ] [ -P page-list ] [ -- ] [ file(s) ]
lp [ -E ] [ -U username ] [ -c ] [ -h hostname[:port] ] [ -i job-id ] [ -n num-copies ] [ -o option[=value] ] [ -q priority ] [ -t title ] [ -H handling ] [ -P page-list ]

选项:

1
2
3
4
5
6
7
8
9
-E:与打印服务器连接时强制使用加密;
-U:指定连接打印服务器时使用的用户名;
-d:指定接收打印任务的目标打印机;
-i:指定一个存在的打印任务号;
-m:打印完成时发送E-mail;
-n:指定打印的份数;
-t:指定打印任务的名称;
-H:指定打印任务开始的时间;
-P:指定需要打印的页码。

adduser

作用: 添加一个新成员到系统中

补充说明:

语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
adduser [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--firstuid ID] [--lastuid ID] [--gecos GECOS] [--ingroup GROUP | --gid ID]
[--disabled-password] [--disabled-login] [--add_extra_groups] USER
Add a normal user

adduser --system [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID]
[--gecos GECOS] [--group | --ingroup GROUP | --gid ID] [--disabled-password]
[--disabled-login] [--add_extra_groups] USER
Add a system user

adduser --group [--gid ID] GROUP
addgroup [--gid ID] GROUP
Add a user group

addgroup --system [--gid ID] GROUP
Add a system group

adduser USER GROUP
Add an existing user to an existing group

选项:

1
2
3
4
5
6
--quiet | -q      don't give process information to stdout
--force-badname allow usernames which do not match the
NAME_REGEX configuration variable
--help | -h usage message
--version | -v version number and copyright
--conf | -c FILE use FILE as configuration file

groupadd

作用: 创建一个新组

补充说明: groupadd 命令 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

语法:

1
groupadd [选项] group

选项:

1
2
3
4
5
6
7
8
9
-f, --force		如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录

kill

作用: 终止进程

补充说明: kill 命令 用来删除执行中的程序或工作。kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15) ,可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 job 指令查看。

语法:

1
2
kill[-ssignal|-p][-a]pid...
kill -l [ signal ]

选项:

1
2
3
4
5
6
pid ...
给 kill 指定一个该发信号的进程列表. 每个 pid 可为下面四种之一. 进程名 在这种情况下,发信号给所命名的进程. n 这里的 n 大于 0. 将发信号给 pid 为 n 的进程. -1 在这种情况下, 只要发信号的用户能够控制那些进行, 将发信号给所
有从 MAX_INT 到 2 的进程. -n 这里的 n 大于 1, 在这种情况下, 发信号给属于进程组 n 的进程. 如果给定一个负的参数, 那么信号 必须 首先声明, 否则它会被当作信号发送出去.
-s 指定发送的信号. 信号可以以信号名或数字的方式给定.
-p 指定 kill 只打印命名进程的进程标识 (pid) , 而不应发送给它信号.
-l 打印信号名的列表.这可以在 /usr/include/linux/signal.h 中找到.

常用命令

列出所有信号名称

1
kill -l

crontab

作用: 提交和管理用户的需要周期性执行的任务

补充说明: crontab 命令 被用来提交和管理用户的需要周期性执行的任务,与 windows 下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

语法:

1
2
crontab [ -u user ] file
crontab [ -u user ] [ -i ] { -e | -l | -r }

选项:

1
2
3
4
-e	(edit user's crontab) 打开一个窗口直接变价 crontab 文件
-l (list user's crontab) 列表当前用户设置的定时任务
-r (delete user's crontab)
-i (prompt before deleting user's crontab)

crontab 传入的文件参数是指定格式 crontab 文件,关于 crontab 文件的详细信息点击这里查看

tar

作用: 存储或提取 tar 文件的程序

补充说明: 利用 tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

语法:

1
tar <操作参数> [选项]

选项:

1
太多了,使用 `man tar` 命令查看详细信息

常用命令

把一个目录打包并压缩

1
tar -zcf test.tar.gz config install.sh local_install.sh

查看压缩包有哪些文件

1
tar -ztvf test.tar.gz

只将压缩包内的部分文件解压

1
tar -zxvf test.tar.gz config

解压的文件可以通过 tar -ztvf 查看

排除部分文件

1
tar --exclude docker/latex -zcvf docker.tar.gz docker

压缩并保留权限

1
tar --exclude docker/latex -zcvfp docker.tar.gz docker

unzip

作用: 解压有 zip 命令压缩的压缩包

补充说明: unzip 命令 用于解压缩由 zip 命令压缩的 “.zip” 压缩包。

语法:

1
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...]  [-x xfile(s) ...] [-d exdir]

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件;
-l:显示压缩文件内所包含的文件;
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
-t:检查压缩文件是否正确;
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v:执行时显示详细的信息;
-z:仅显示压缩文件的备注文字;
-a:对文本文件进行必要的字符转换;
-b:不要对文本文件进行字符转换;
-C:压缩文件中的文件名称区分大小写;
-j:不处理压缩文件中原有的目录路径;
-L:将压缩文件中的全部文件名改为小写;
-M:将输出结果送到more程序处理;
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
-q:执行时不显示任何信息;
-s:将文件名中的空白字符转换为底线字符;
-V:保留VMS的文件版本信息;
-X:解压缩时同时回存文件原来的UID/GID;
-d<目录>:指定文件解压缩后所要存储的目录;
-x<文件>:指定不要处理.zip压缩文件中的哪些文件;
-Z:unzip-Z等于执行zipinfo指令。

常用命令

解压文件

1
unzip test.zip

一般压缩文件使用 tar 来压缩,如果是 zip 压缩格式,很有可能是在 Windows 下进行压缩,在 Linux 下解压时可能出现乱码

gunzip

作用: 压缩或解压文件

补充说明:

语法:

1
gunzip [ -acfhlLnNrtvV ] [-S 后缀] [ 文件名 ...  ]

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-a或——ascii:使用ASCII文字模式;
-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备;
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理;
-N或——name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;

last

作用: 列出目前与过去登入系统的用户相关信息

补充说明: last 命令 用于显示用户最近登录信息。单独执行 last 命令,它会读取 /var/log/wtmp 的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。

语法:

1
last [-R] [-num] [ -n num ] [-adiox] [ -f file ] [name...]  [tty...]

选项:

1
2
3
4
5
6
7
8
-num指定 last 要显示多少行。
"-n num"等同 -num.
-R不显示主机名列。
-a在最后一列显示主机名. 和下一个选项合用时很有用
-d对于非本地的登录,Linux 不仅保存远程主机名而且保存IP地址(IP number)。这个选项可以将IP地址(IP number)转换为主机名。
-i这个选项类似于显示远程主机 IP 地址(IP number)的 -d 选项,只不过它用数字和点符号显示IP数
-o读取一个旧格式的 wtmp 文件 (用linux-libc5应用程序写入的).
-x显示系统关机记录和运行级别改变的日志。

网络操作相关命令

ifconfig

作用: 配置和显示Linux系统网卡的网络参数

补充说明: ifconfig 命令 被用于配置和显示 Linux 内核中网络接口的网络参数。用 ifconfig 命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法:

1
2
ifconfig [接口]
ifconfig 接口 [aftype] options | address ...

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
io_addr<I/O地址>:设置网络设备的I/O地址;
irq<IRQ地址>:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
up:启动指定的网络设备;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址;
网络设备:指定网络设备的名称。

常用命令

显示网络设备信息

1
ifconfig

启动关闭指定网卡

1
2
ifconfig eth0 up
ifconfig eth0 down

ip

作用: 显示或操作路由,设备,测路路由和通道

补充说明:

语法:

1
2
3
4
5
6
7
8
9
10
11
12
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec |
-f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
-4 | -6 | -I | -D | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}

选项:

常用命令

查看 ip 地址

1
ip address

ping

作用: 向网络主机发送 ICMP 回显请求(ECHO_REQUEST)分组

补充说明: ping 命令 用来测试主机之间网络的连通性。执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

语法:

1
ping  [-aAbBdDfhLnOqrRUvV46]  [-c count] [-F flowlabel] [-i interval] [-I interface] [-l preload] [-m mark] [-M pmtudisc_option] [-N nodeinfo_option] [-w deadline] [-W timeout] [-p pattern] [-Q tos] [-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop ...] destination

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-4     仅使用 IPv4。
-6 仅使用 IPv6。
-a Audible ping.
-A 自适应 ping。
-b 允许对一个广播地址进行 ping。
-t ttl 仅进行ping。 设置 IP 的 TTL(Time to Live)。
-T timestamp option 设置特殊的 IP 时间戳选项。 timestamp option 可以是 tsonly(仅时间戳)、 tsandaddr(时间戳和地址)或者 tsprespec host1 [host2 [host3 [host4]]](预先指定跳数的时间戳)。
-U 打印完整的用户到用户的延迟(旧行为)。通常情况下 ping 打印网络往返延时,它们可能不同,例如在 DNS 解析出现失败时。
-v 输出详细信息。
-V 显示版本并退出。
-c count 在发送(和接收)了正好数量为 count 的回显应答分组后停止操作。在发送了 count 个分组后没有收到任何分组的特别情况是发送导致了终止(选程主机或网关不可达)。
-d 在所用的套接字上使用 SO_DEBUG 选项。 实际上,这个套接字选项没有被 Linux 内核所使用。
-D 在每行之前打印时间戳(UNIX 时间 + gettimeofday 中的毫秒)。
-f 以高速(洪水)方式进行 ping。 以分组返回的速度来输出其它分组或每秒输出百次。当收到每个回显应答并打印一个退格符时,对每个回显请求都打印一个句点``.''。这可以快速显示出丢弃了多少个分组,只有超级用户可以用这个选项。这(操作)对网络要求非常苛刻,应该慎重使用。
-i wait 在发送每个分组时等待 wait 个秒数。缺省值为每个分组等待一秒。此选项与-f选项不能同时使用。
-l preload 如果指定 preload ,那么 ping 程序在开始正常运行模式前尽可能快地发送分组。同样只有超级用户可以用这个选项。
-n 只以数字形式输出信息。这样就不尝试去查找主机名了。
-p pattern 可以指定最多16个填充字节用于保持分组长度为16的整数倍。在网络上诊断与数据相关问题时此选项很有用。例如``-p ff''将使发出的分组都用全1填充数据区。
-q 静态输出。在程序启动和结束时只显示摘要行。
-R 记录路由。在回显请求分组中包含记录路由选项并在相应的分组返回时显示路由缓冲区。注意IP首部的容量只能存放9条这样的路由。很多主机 忽略或禁用此选项。
-r 在所连接的网络上旁路正常的选路表,直接向主机发送分组。如果主机未处于直接相连的网络上,那么返回一个错误。此选项可用来通过无路由接口对一台主机进行检测(例如当接口已被 routed 程序丢弃后)。
-s packetsize 指定要发送数据的字节量。缺省值为 56 ,这正好在添加了 8 字节的 ICMP 首部后组装成 64 字节的 ICMP 数据报。
-w waitsecs 在 waitsecs 秒后停止 ping 程序的执行。当试图检测不可达主机时此选项很有用。

常用命令

测试网络状态

1
ping www.biying.com

netstat

作用: 显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组。

补充说明: netstat 命令 用来打印 Linux 中网络系统的状态信息,可让你得知整个 Linux 系统的网络情况。

语法:

1
2
3
4
5
6
7
8
9
10
11
netstat  [address_family_options]  [--tcp|-t]  [--udp|-u]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]  [--numeric-hosts][--numeric-ports][--numeric-ports]  [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o]
[--program|-p] [--verbose|-v] [--continuous|-c] [delay]
netstat {--route|-r} [address_family_options] [--extend|-e[--extend|-e]] [--verbose|-v] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]
netstat {--interfaces|-i} [iface] [--all|-a] [--extend|-e[--extend|-e]] [--verbose|-v] [--program|-p] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]
netstat {--groups|-g} [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]
netstat {--masquerade|-M} [--extend|-e] [--numeric|-n] [--numeric-hosts][--numeric-ports][--numeric-ports] [--continuous|-c] [delay]
netstat {--statistics|-s} [--tcp|-t] [--udp|-u] [--raw|-w] [delay]
netstat {--version|-V}
netstat {--help|-h}
address_family_options:
[--protocol={inet,unix,ipx,ax25,netrom,ddp}[,...]] [--unix|-x] [--inet|--ip] [--ax25] [--ipx] [--netrom] [--ddp]

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
--verbose , -v 详细模式运行。特别是打印一些关于未配置地址族的有用信息。
--numeric , -n 显示数字形式地址而不是去解析主机、端口或用户名。
--numeric-hosts 显示数字形式的主机但是不影响端口或用户名的解析。
--numeric-ports 显示数字端口号,但是不影响主机或用户名的解析。
--numeric-users 显示数字的用户ID,但是不影响主机和端口名的解析。
--protocol=family , -A 指定要显示哪些连接的地址族(也许在底层协议中可以更好地描述)。 family 以逗号分隔的地址族列表,比如 inet, unix, ipx, ax25, netrom, 和 ddp。 这样和使用 --inet, --unix (-x), --ipx, --ax25, --netrom, 和 --ddp 选项效果相同。
地址族 inet 包括raw, udp 和tcp 协议套接字。
-c, --continuous 将使 netstat 不断地每秒输出所选的信息。
-e, --extend 显示附加信息。使用这个选项两次来获得所有细节。
-o, --timers 包含与网络定时器有关的信息。
-p, --program 显示套接字所属进程的PID和名称。
-l, --listening 只显示正在侦听的套接字(这是默认的选项)
-a, --all 显示所有正在或不在侦听的套接字。加上 --interfaces 选项将显示没有标记的接口。
-F 显示FIB中的路由信息。(这是默认的选项)
-C 显示路由缓冲中的路由信息。
delay netstat将循环输出统计信息,每隔 delay 秒。

常用命令

列出所有处于监听状态的 Sockets

1
2
3
4
netstat -l
netstat -lt
netstat -lu
netstat -lx

列出所有端口,包括监听和未监听的

1
2
3
netstat -a
netstat -at
netstat -au

telnet

作用: 登录远程主机和管理(测试ip端口是否连通)

补充说明: telnet 命令 用于登录远程主机,对远程主机进行管理。telnet 因为采用明文传送报文,安全性不好,很多 Linux 服务器都不开放 telnet 服务,而改用更安全的 ssh 方式了。

语法

1
telnet [-468ELadr] [-S tos] [-b address] [-e escapechar] [-l user] [-n tracefile] [host [port]]

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-8:允许使用8位字符资料,包括输入与输出;
-a:尝试自动登入远端系统;
-b<主机别名>:使用别名指定远端主机名称;
-c:不读取用户专属目录里的.telnetrc文件;
-d:启动排错模式;
-e<脱离字符>:设置脱离字符;
-E:滤除脱离字符;
-f:此参数的效果和指定"-F"参数相同;
-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机;
-k<域名>:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名;
-K:不自动登入远端主机;
-l<用户名称>:指定要登入远端主机的用户名称;
-L:允许输出8位字符资料;
-n<记录文件>:指定文件记录相关信息;
-r:使用类似rlogin指令的用户界面;
-S<服务类型>:设置telnet连线所需的ip TOS信息;
-x:假设主机有支持数据加密的功能,就使用它;
-X<认证形态>:关闭指定的认证形态。

常用命令

1
telnet <ip>

ftp

作用: Internet 文件传输程序 (file transfer program)

补充说明: 用户通过 Ftp 这个程序来使用 Internet 上的标准文件传输协议 (File Transfer Protocol). 本程序允许用户向远端网站发送文件, 或从远端网站接收文件.

语法:

1
ftp [-pinegvd] [host] pftp [-inegvd] [host]

选项

1
2
3
4
5
6
7
-p    使用被动模式进行数据传输. 如果你本地网络有防火墙, 外部主机不能连接到你这个客户端, 这个选项就派上用场了.  本选项要求 ftp 服务器支持 PASV 命令.  如果使用 pftp 从命令行启动 ftp, 本选项是默认打开的.
-i 进行多个文件传输时关掉交互式的确认提示.
-n 一般,在启动 ftp 时, ftp 会试着进行自动登录. 本选项可以关掉这个功能. 如果 auto-login 功能被启用的话, ftp 会在用户 home 目录下的 .netrc (参阅 netrc(5)) 文件中查找远端主机上的用户帐号. 如果 .netrc 文件中用户帐号这一项不存在, ftp 会提示用户输入远端主机上的登录名 (缺省为用户在本地机器上的帐号), 如果需要, 还会提示你输入密码和用来登录的帐号. ??
-e 如果被编译成了 ftp 可执行格式, 本选项会关掉命令编辑和历史命令功能; 否则什么也不做. ??
-g 关掉文件名匹配功能.
-v 显示详细信息. 本选项使得 ftp 显示远端服务器的所有响应, 并在数据传输完成后显示传输数据的统计信息.
-d 打开 debug 模式.

常用命令

1
ftp <ip>

route

作用: 显示 / 操作 IP 选路表

补充说明: route 程序对内核的IP选路表进行操作。它主要用于通过已用 ifconfig 程序配置好的接口来指定的主机或网络设置静态路由。

语法:

1
2
3
4
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I][reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw][netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]

常用命令

列出当前路由

1
route

添加/设置网关

1
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0    #增加一条到达244.0.0.0的路由。

屏蔽一条路由:

1
route add -net 224.0.0.0 netmask 240.0.0.0 reject     #增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。

删除路由记录:

1
2
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject

删除和添加设置默认网关:

1
2
route del default gw 192.168.120.240
route add default gw 192.168.120.240

rlogin

作用: 从当前终端登录到远程Linux主机

补充说明: 请用 SSH

语法:

1
rlogin [-8EKLdx] [-e char] [-l username] host

选项:

1
2
3
4
5
6
7
8
-8    -8 选项 允许 进行 8 位的 输入 数据 传送; 否则在 远程主机 未使用 与 ^S/^Q 不同的 控制 字符 之前, 所有的 奇偶 校验位 都会 被清除.
-E -E 选项 阻塞(stops) 一些 被识别 为转意 字符 的字符. 当 使用了 -8 选项时, 这样 可以 提供 完全 透明的 连接.
-K -K 选项 关闭 所有的 Kerberos 安全 鉴别.
-L -L 选项 允许 rlogin 会话 以 ``litout'' 模式 运行(参见 tty(4))
-d -d 选项 启动 套接字 调试(参见 setsockopt(2)) , 在 TCP 类型 的连接中, 套接字 用于 提供 与远程 主机的 通讯.
-e -e 选项 允许 用户 指定 转意 字符, 缺省是 ``~''. 可以 直接 使用 字符, 也可以 使用 八进制值 进行 指定, 八进制 格式为: \nnn.
-k -k 选项 要求 rlogin 在从 远程 接受 许可证时, 使用 realm 中定义的 realm, 而不是 krb_realmofhost(3) 中定义的 realm.
-x -x 选项 使通过 rlogin 会话 进行的 数据 传送 都要 采用 DES 加密. 这可能 会影响 响应 时间和 CPU 的利用, 但 提高了 安全性.

rcp

作用: 安装在两台主机之间通信

补充说明: rcp 似乎是 scp 的一个马甲,实际使用的 scp 命令。

语法:

1
rcp [-pqrvBC1246] [-F ssh_config] [-S program] [-P port] [-c cipher] [-i identity_file] [-l limit] [-o ssh_option] [[user@]host1:]file1 [...] [[user@]host2:]file2

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-c cipher Selects the cipher to use for encrypting the data transfer.  This option is directly passed to ssh(1).
-i identity_file Selects the file from which the identity (private key) for RSA authentication is read. This option is directly passed to ssh(1).
-l limit Limits the used bandwidth, specified in Kbit/s.
-p Preserves modification times, access times, and modes from the original file.
-r 递归复制整个目录。
-v 详细模式。该选项使 scp 和 ssh(1) 打印出关于运行情况的调试信息。在进行调试连接、验证和配置问题时,这会很有用的
-B 用批模式(避免重复询问口令)。
-q Disables the progress meter.
-C 允许压缩。向 ssh(1) 传递 -C 标志以允许压缩。
-F ssh_config Specifies an alternative per-user configuration file for ssh. This option is directly passed to ssh(1).
-P port Specifies the port to connect to on the remote host. Note that this option is written with a capital ‘P’, because -p is already reserved for preserving the times and modes of the file in rcp(1).
-S program Name of program to use for the encrypted connection. The program must understand ssh(1) options.
-o ssh_option Can be used to pass options to ssh in the format used in ssh_config(5). This is useful for specifying options for which there is no separate scp command-line flag.
-1 Forces scp to use protocol 1.
-2 Forces scp to use protocol 2.
-4 Forces scp to use IPv4 addresses only.
-6 Forces scp to use IPv6 addresses only.

常用命令

从本地复制到远程主机

1
rcp /test root@<ip>:/home/test/

从远程主机复制到本地

1
rcp root@<ip>:/home/test test/

从远程主机复到远程主机

1
rcp root@<ip>:/home/test root@<nwe-ip>:/home/test/

finger

作用: 用户信息查找程序

补充说明: finger 命令 用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行 finger 指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

语法:

1
finger [-lmsp] [user ...] [user@host ...]

选项:

1
2
3
4
5
6
7
8
9
10
-s    Finger 显示用户的登录名, 真名, 终端名 以及写 状态(如果写被禁止,在终端名后显示一个``*''), 空闲时间,登录时间,办公地点和电话等。
登录时间显示为月,天,小时和分钟,如果是超过6个月以前,则 显示年份,而不是小时和分钟。
不明设备以及不存在的空闲时间和登录时间显示为一个星号。
-l 产生一个多行显示来描述信息 -s 关于用户家目录,家庭电话,登录脚本,邮件状态和文件的内容 “.plan” 和 “.project” 和 “.forward” 从用户的家目录.
11位数字电话号码显示为 ``+N-NNN-NNN-NNNN''. 十位或七位数字可以显示为它的子集。 五位数字电话号码显示为 ``xN-NNNN''. 四位数字电话号码显示为 ``xNNNN''.
如果对设备写被禁止, 短语 ``(messages off)'' 被附加在有此设备的行后边. 每一个用户有一个条目,用 -l 选项; 如果一个用户多次登录, 终端信息 按每次登录重复显示。.
如果什么邮件都没有,邮件信息显示为``No Mail.'', 如果当新邮件来后, 已经查看过信箱,为``Mail last read DDD MMM ## HH:MM YYYY (TZ)'' 如果有新邮件,则为 ``New mail received ...'',`` Unread since ...''
-p 防止 finger -l 选项 显示 “.plan”
和 “.project” 文件的内容。
-m 防止 user 名字的匹配. User 通常是一个登录名; 可是, 也会对用户的真实名字 进行匹配, 除非提供 -m 选项. 所有由 finger 进行的名字匹配是区分大小写的

常用命令

1
finger

mail

作用: 发送和接受邮件

补充说明: mail 命令 是命令行的电子邮件发送和接收工具。操作的界面不像 elm 或 pine 那么容易使用,但功能非常完整。

语法:

1
mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr... mail [-iInNv] -f [name] mail [-iInNv] [-u user]

选项

1
2
3
4
5
6
7
8
9
10
-b<地址>:指定密件副本的收信人地址;
-c<地址>:指定副本的收信人地址;
-f<邮件文件>:读取指定邮件文件中的邮件;
-i:不显示终端发出的信息;
-I:使用互动模式;
-n:程序使用时,不使用mail.rc文件中的设置;
-N:阅读邮件时,不显示邮件的标题;
-s<邮件主题>:指定邮件的主题;
-u<用户帐号>:读取指定用户的邮件;
-v:执行时,显示详细的信息。

nslookup

作用: 查询域名DNS信息的工具

补充说明: nslookup 命令 是常用域名查询工具,就是查 DNS 信息用的命令。

nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。

进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址)。或者输入nslookup -nameserver/ip。进入非交互模式,就直接输入nslookup 域名就可以了。

语法:

1
nslookup [-option] [name | -] [server]

选项:

1
-sil:不显示任何警告信息。

常用命令

1
nslookup www.biying.com

系统安全相关命令

passwd

作用: 修改用户密码

补充说明: 命令用来更改用户账户的密码。普通用户通常只更改其自己账户的密码,而超级用户可以更改任何账户的密码。passwd 也更改账户或相关的密码有效期。

语法:

1
passwd [选项] [登录]

选项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-a, --all 此选项只能和 -S 一起使用,来显示所有用户的状态。
-d, --delete 删除用户密码(让它为空)。这是禁用一个用户密码的快速方法。它将设置给出名称的账户。
-e, --expire 让一个账户的密码立即过期。这可以强制一个用户下次登录时更改密码。
-h, --help 现实帮助信息并退出。
-i, --inactive INACTIVE 此选项用于在密码过期一定天数之后禁用账户。一个用户账户密码已经过期 INACTIVE 天之后,用户将不能再登录进账户。
-k, --keep-tokens 表示密码更改只应该因为认证口令(密码)过期更改。用户希望保持他们尚未过期的口令。
-l, --lock 锁定指定账户的密码。此选项通过将密码更改为一个不可能与加密值匹配的值来禁用(它在密码开头添加一个“!”)。
注意,这并没有禁用此账户。用户仍然可以通过其它认证方式(如 SSH 密码)来登录。要禁用此账户,管理员需要使用 usermod --expiredate 1 (设置账户的过期时间为1970年1月2日)。
被锁定了密码的用户不允许更改密码。
-n, --mindays MIN_DAYS 在密码更改之间的最小天数设置为 MIN_DAYS。此字段中的 0 值表示用户可以在任何时间更改其密码。
-q, --quiet 安静模式。
-r, --repository REPOSITORY 在 REPOSITORY 中更改密码
-R, --root CHROOT_DIR Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.
-S, --status 显示账户状态信息。状态信息包含 7 个字段。首个字段是用户的登录名,第二个字段表示用户账户是否已经锁定密码(L)、没有密码 (NP)或者密码可用(P),第三个字段给出最后一次更改密码的日期。接下来的四个字段分别是密码的最小年龄、最大年龄、警告期和禁用期。这些年龄以天为单位计算。
-u, --unlock 解锁指定用户的密码。此操作通过将密码改回先前值(改回使用 -l 之前的值)重新启用密码。
-w, --warndays WARN_DAYS 设置在要求更改密码之前警告的天数。WARN_DAYS 选项是在密码过期之前提前警告的天数。
-x, --maxdays MAX_DAYS 设置密码仍然有效的最大天数。MAX_DAYS 之后,密码会要求更改。

常用命令

用户修改自己的密码

1
passwd

管理员创建用户之后,使用 passwd 为新用户创建密码,当然也可以任意修改用户的密码

1
passwd <new-user-name>

su

作用: 用于切换当前用户身份到其他用户身份

补充说明: su 命令 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

语法:

1
su [选项] [用户名]

选项:

1
2
3
4
-c, --command COMMAND 通过使用其 -c 选项,指定一个由 shell 运行的命令。
-, -l, --login 提供一个类似于用户直接登录的环境,用户可能会希望这样。
-s, --shell SHELL 将使用的 shell。
-m, -p, --preserve-environment 保留当前环境,除非:.PP $PATH

常用命令

切换为 root 用户

1
su

切换为其他用户

1
su <other-user>

umask

作用: 用来设置限制新建文件权限的掩码

补充说明: umask 命令 用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask 命令都被执行, 并自动设置掩码 mode 来限制新文件的权限。用户可以通过再次执行 umask 命令来改变默认值,新的权限将会把旧的覆盖掉。

语法:

1
umask [-p] [-S] [模式]

选项:

1
2
-p:输出的权限掩码可直接作为指令来执行;
-S:以符号方式输出权限掩码。

常用命令

设置掩码

1
umask u=rwx,g=,o=

运行上述命令之后创建的文件,默认权限为 -rw——-

chgrp

作用: 修改文件或目录所属的群组

补充说明: chgrp 命令 用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的 id,也可以是用户组的组名。文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户 (root) ,则不能改变该文件的组。

语法:

1
2
chgrp [选项列表]... 组 文件...
chgrp [选项列表]... --reference=参考文件 文件...

选项:

1
2
3
4
5
6
7
8
9
10
-R 递归式地改变指定目录及其下的所有子目录和文件的所属的组
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-H如果命令行参数是一个通到目录的符号链接,则遍历符号链接
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-L遍历每一个遇到的通到目录的符号链接
-P不遍历任何符号链接(默认)
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;

常用命令

改变一个文件所属用户组

1
chgrp canxing test

改变一个目录以及目录下所有文件所属用户组

1
chgrp -R canxing test/

chown

作用: 修改文件所有者和组别

补充说明: chown 修改每个由第一个非选项参数声明的给定 file(文件) 的用户和/或组的所有权.如下: 如果只给出了用户名(或者数字用户标识),那么该用户即成为每个指定 文件的所有者,而该文件的组别并不改变.如果用户名后面紧跟着冒号和组名(或者是数字组标识),并且它们之间没有空格,那么文件的组所有权 也随之改变.

语法:

1
chown [options] user [:group] file...

选项:

1
2
3
4
5
6
7
-c, --changes 详尽地描述每个 file 实际改变了哪些所有权.
-f, --silent, --quiet 不打印文件所有权不能修改的报错信息.
-h, --no-dereference 只作用于其本身的符号链接,而不修改它们所指向的文件. 这只在提供了 lchown 系统调用的情况下才可用.
-v, --verbose 详尽地描述对每个 file 所执行的操作(或者无操作).
-R, --recursive 递归地修改目录及其下面内容的所有权.
--dereference 修改符号链接目标端的所有权,而非符号链接自身. (fileutils 4.0中实现的新功能.)
--reference=rfile (fileutils 4.0中实现的新功能.) 修改 file 的所有权为 rfile 的所有权.

常用命令

改变文件的所有者

1
chown canxing test

改变目录以及目录下所有文件的所有者

1
chown -R canxing test/

chmod

作用: 变更目录或文件权限

补充说明: chmod 命令 用来变更文件或目录的权限。在 UNIX 系统家族里,文件或目录权限的控制分别以读取、写入、执行 3 种一般权限来区分,另有 3 种特殊权限可供运用。用户可以使用 chmod 指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

语法:

1
chmod [options] mode file...

选项

1
2
3
4
5
-c, --changes 只有在文件的权限确实改变时才进行详细的说明
-f, --silent, --quiet 不输出权限不能改变的文件的错误信息
-v, --verbose 详细说明权限的变化
-R, --recursive 改变目录及其所有子目录的文件的权限
--reference=rfile (更新在fileutils 4.0上) 改变文件的模式到rfile.

常用命令

使用数字修改文件或目录权限

1
2
chmod 755 test 
chmod -R 755 test-dir/

增加其他用户的执行权限

1
2
chmod o+x test
chmod -R o+x test-dir/

chattr

作用: 用来改变文件属性

补充说明: chattr 命令 用来改变文件属性。这项指令可改变存放在 ext2 文件系统上的文件或目录属性,这些属性共有以下 8 种模式:

1
2
3
4
5
6
7
8
a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。

语法:

1
chattr [ -RVf ] [ -v 版本 ] [ -p project ] [ mode ] files...

选项

1
2
3
-R     递归地修改目录以及其下内容的属性.  如果在递归目录时遇到了符号链接,遍历将跳过.
-V 详尽地给出chattr的输出信息并打印出程序的版本.
-v version 设置文件系统的版本.

sudo

作用: 以其他用户的身份来执行命令

补充说明: sudo 命令 用来以其他身份来执行命令,预设的身份为 root。在 /etc/sudoers 中设置了可执行 sudo 指令的用户。若其未经授权的用户企图使用 sudo,则会发出警告的邮件给管理员。用户使用 sudo 时,必须先输入密码,之后有 5 分钟的有效期限,超过期限则必须重新输入密码。

语法:

1
2
3
4
sudo -h | -K | -k | -V
sudo -v [-AknS] [-a type] [-g group] [-h host] [-p prompt] [-u user]
sudo -l [-AknS] [-a type] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
sudo [-AbEHnPS] [-a type] [-C num] [-c class] [-g group] [-h host] [-p prompt] [-r role] [-t type] [-u user] [VAR=value] [-i | -s] [command]

选项

1
2
3
4
5
6
7
8
9
10
-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

没啥用

ps

作用: 报告当前程序的状态

补充说明:

语法:

1
ps [options]

选项

1
太多,使用 `man ps` 查看

常用命令

1
ps -ef

上述命令会输出所有当前运行进程的详细信息,再通过管道即可获取想要的信息

who

作用: 显示已登录用户

补充说明: who 命令 是显示目前登录系统的用户信息。执行 who 命令可得知目前有那些用户登入系统,单独执行 who 命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个 X 显示器。

语法:

1
who [选项]... [ 文件 | 参数1 参数2 ]

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-a, --all 等价于 -b -d --login -p -r -t -T -u
-b, --boot 最近一次系统引导的时间
-d, --dead 显示死进程
-H, --heading 显示表格的表头
--ips 显示 IP地址而不是主机名。加上 --lookup,则会尽可能基于已存储的 IP 规范化,而不是已存储的主机名
-l, --login 显示系统登录进程
--lookup 试图通过 DNS 规范主机名
-m 仅显示和标准输入关联的主机名和用户
-p, --process 显示由 init 生成的活跃进程
-q, --count 所有登录名称与已登录用户数量
-r, --runlevel 显示当前运行级别
-s, --short 仅显示名称、线路与时间(默认)
-t, --time 显示最近一次系统时钟更改
-T, -w, --mesg 添加用户状态信息,如 +, - 或 ?
-u, --users w列出已登陆用户
--message 等价于 -T
--writable 等价于 -T
--help 显示此帮助信息并退出
--version 显示版本信息并退出