文件和目录

创建、删除、拷贝、移动和重命名

  • 创建

    1
    2
    3
    4
    5
    $ touch filename	# 创建空文件

    $ mkdir dirname # 创建目录
    $ mkdir -m 700 dirname # 创建目录并指定权限
    $ mkdir -p outerdir/innerdir # 递归创建目录

    注:如果要创建的文件已存在,touch 不会创建新的空文件,也不会创建一个文件而覆盖原来的文件,而仅仅是刷新已存在文件的最后修改时间(时间戳)。

  • 删除

    1
    2
    3
    4
    5
    6
    $ rmdir dirname	# 删除空目录
    $ rmdir -p outerdir/innerdir # 递归删除空目录

    $ rm filename # 删除文件
    $ rm -r dirname # 删除目录及其下的文件和目录
    $ rm -rf dirname # 删除目录及其下的文件和目录,且没有提示

    注:rmdir 只能删除空目录,而 rm 可以删除非空的目录。

  • 拷贝

    拷贝文件和目录使用 cp 命令。基本用法:

    1
    2
    3
    $ cp file1 file2 target_dir	# 将 file1 和 file2 拷贝到目标目录
    $ cp file target_dir/new_filename # 将 file 拷贝到目标目录并重命名
    $ cp -r dir target_dir # 拷贝目录到目标目录

    cp 命令的其他常用参数:

    • -p:如果某用户 user1 去拷贝其他用户的文件,新文件的所属用户和用户组都会变成 user1。若加 -p 参数,可以原封不动地拷贝。
    • -f:当目标位置有同名文件时,系统会询问是否覆盖,加上 -f 可以跳过询问,直接覆盖。
  • 移动和重命名

    移动文件和目录使用 mv 命令。基本用法:

    1
    2
    $ mv file1 dir1 target_dir	# 将 file1 和 dir1 移动到目标目录
    $ mv file target_dir/new_filename # 将 file 移动到目标目录并重命名
    • 使用 mv 在移动目录时不需要像 cp 命令一样加上 -r 参数。
    • mv 命令也有一个 -f 参数,作用与 cp-f 参数相同。
    • linux 中没有提供专门的重命名命令,可以用 mv 命令重命名文件和目录。即 mv old_filename new_filename

文件与目录的权限

查看文件内容

  • cat:将文件内容全部输出到终端上。用法:

    1
    $ cat filename

    使用 cat 时,如果输出的文件较大,内容超出终端的缓冲区,前面的内容就看不到了,所以 cat 一般用于查看小文件。

  • headtail:将文件的 头/尾 输出到终端上,常用于查看日志文件,因为日志文件的更新内容就是在头或尾,而且日志文件通常会非常大,无法使用 cat 或文本编辑器查看。

    1
    2
    $ head filename	# 显示文件的前 10 行
    $ head -20 filename # 显示文件的前 20 行

    tail 用法与 head 类似。

  • lessmore:相当于只读编辑器,只能查看文件内容而不能修改。

    less 功能比 more 稍强,所以一般使用 less

    1
    $ less filename

    less 移动光标、翻页、查找字符串等操作都与 vim 相同。

文件链接

硬链接与符号链接

创建链接文件

  • 创建硬链接

    1
    $ ln 文件名 链接文件名
  • 创建符号连接

    1
    $ ln -s 文件名 链接文件名

打包和压缩文件

使用 tar 打包文件

tar:tape archive(磁盘档案卷,因为最初是为了将文件打包在磁带上,所以叫此名)

由于 tar 命令的历史很久远,所以它的参数的配置方式和其他命令有一些不同。

常见使用方法:

  • 打包文件和目录

    1
    $ tar -cf archived_file.tar file1 dir1	# 将 file1 和 dir1 打包成 archived_file.tar
    • -c 代表创建打包文件(create);
    • -f 后必须紧跟打包文件名(filename),所以上面的命令不能写成 tar -fc
    • 注:打包后的文件是一个新文件,源文件不会被替换。打包后的文件大小大于被打包文件的大小的总和,因为打包时 tar 命令会添加一些额外的信息。
    • 打包和解包文件时若加 -v 参数,会显示打包或解包过程的详细信息。
  • 解包文件

    1
    2
    $ tar -xf archived_file.tar	# 将 archived_file.tar 解包
    $ tar -xf archived_file.tar -C target_dir # 将 archived_file.tar 解包到指定目录
  • 其他常用操作

    1
    2
    3
    4
    $ tar -tf archived_file.tar	# 列出 archived_file.tar 中的文件
    $ tar -f archived_file.tar --delete filename # 删除 archived_file.tar 中的某个文件
    $ tar -f archived_file.tar -r filename # 向 archived_file.tar 中添加文件
    $ tar -f archived_file1.tar -A archived_file2.tar # 将 archived_file2.tar 的内容追加到 archived_file1.tar

使用 gzip 和 bzip2 压缩文件

gzip 是 linux 中最常用的压缩命令。

1
2
3
$ gzip file1 file2	# 将 file1 和 file2 分别压缩为 file1.gz 和 file2.gz,并替换源文件
$ gzip -r dir # 递归地压缩 dir 中的所有文件,并替换源文件
$ gzip -d file # 解压文件,并替换源文件
  • 使用 -1 ~ -9 参数可以指定压缩比率,数字越大,压缩程度越高,压缩越慢,压缩后文件越小。若不指定压缩比率,则默认为 6
  • gzip 只有压缩功能,不提供打包功能,所以 gzip 的操作对象只能是某个文件,即使使用 -r 参数,也只是递归地将指定目录中的所有文件单独压缩,并不会连接在一起。
  • bzip2 的用法与 gzip 基本相同,只是采用了不同的压缩算法。

使用 tar 打包并压缩文件

tar 命令提供了一个 -z 参数,可以在打包文件的同时调用 gzip 命令来压缩,产生一个 .tar.gz 文件,相当于先使用 tar 打包,再用 gzip 压缩。

1
2
3
$ tar -czf file.tar.gz file1 dir1	# 将 file1 和 dir1 打包并压缩成 file.tar.gz
$ tar -xzf file.tar.gz # 将 file.tar.gz 解压并解包
$ tar -tf file.tar.gz # 列出 file.tar.gz 中的文件。这里的 -z 参数可加可不加。
  • -z 参数类似的还有 -j-J 参数。

    如果将上面的 -z 参数换成 -j 参数,则使用 bzip2 压缩,压缩后的文件后缀约定为 .tar.bz2

    如果换成 -J 参数,则使用 xz 压缩,压缩后的文件后缀约定为 .tar.xz

  • 使用 tar 打包并压缩时,压缩过程的压缩比率为默认值,即 6

各种压缩格式对比

压缩速度:zip > tar.gz > tar.bz2 > rar > tar.xz

压缩比率:zip < tar.gz < tar.bz2 < rar < tar.xz

除了这个格式外,常见的压缩格式还有 .7z,对应的压缩工具是 7z,由于 7zxz 采用了相同的压缩算法,所以压缩后的文件大小基本相同。

zutils 工具包

若想不解压文件而对压缩文件进行某些操作,可以使用 zutils 工具包中的命令。

zcat:将压缩文件的内容显示在终端上(与 cat 命令类似,只不过操作对象是压缩文件)

zgrep:与 grep 命令类似,只不过操作对象是压缩文件。

注意:zutils 工具包中的工具只适用于被压缩成 zipgz 格式的单个文本文件

zutils 主要针对 gz 格式文件,类似的还有 bzip2 提供的 bzutils 工具包和 xz 提供的 xzutils

查找文件

查找文件通常使用两个命令:locatefind

locate 命令

1
$ locate 关键词
  • locate 命令后跟一个关键词,只要路径中包含此关键词的文件都会被查出来(模糊查询)。
  • locate 命令实际上只是在 /var/lib/mlocate/mlocate.db 这个数据库中查(这个数据库记录了整个系统上所有文件和目录的路径信息),所以速度很快。但有些新产生的文件可能查不到,因为这个数据库默认每天才更新一次。系统管理员可以使用 updatedb 命令手动更新该数据库。

find 命令

find 命令是 Linux 上的主要查找命令,功能比 locate 强大的多。它直接在硬盘上查找文件,所以精度高,但速度慢。

基本用法:

1
$ find 要查找的目录 查找条件1 查找条件2 ...

常用查找条件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-name filename	# 指定文件或目录名。注意:find 是精确查询,如果要模糊查询,可以使用通配符。

-type 文件类型 # 指定文件类型

-size 10b/c/k/M/G # 指定文件大小。b 即 block,通常等于 512 字节。c 指字节

-user 用户名 # 指定用户名
-group 组名 # 指定组

-perm 644 # 查找权限是 644 的文件和目录
-perm -644 # 查找权限比 644 更充足的文件或目录
-perm -u=s # 查找文件拥有者对文件有 SUID 权限的文件

-mtime -3 # 查找从现在开始计算,3天内内容发生过改动的文件
-mtime +3 # 查找从现在开始计算,比3天更久的时间内内容发生过改动的文件
-mtime 3 # 查找从现在开始计算,三天前那一天的内容发生过改动的文件
  • -mmin 用法和含义与 -mtime 相似,只是将 “” 换成 “分钟”。
  • -atime-amin 用法也相似,只是将 “内容发生过改动” 换成 “文件被读取/执行过”。
  • -ctime-cmin 用法也相似,只是将 “内容发生过改动” 换成 “文件属性被修改过”。

文件编码

常见的编码方式:

  1. UTF-8:Unicode 的一种实现,可以表示世界上的所有文字。
  2. GB2312:ISO-8859-1 的一种,国内常用,只能表示简体中文英文
  3. BIG5:ISO-8859-1 的一种,台湾常用,只能表示繁体中文英文

Linux 下的乱码问题一般与下列因素有关:

  1. 系统默认支持的语系:与 ``/etc/sysconfig/i18n` 有关。
  2. 终端(如 bash)的语系:与 LANG 这个环境变量有关。
  3. 打开的文件乱码:主要与文件编码软件的默认编码有关,如果打开文件的软件默认编码与文件编码不同,则会出现乱码。

使用 iconv 命令修改文件的编码方式:

1
2
$ iconv -f 原编码 -t 新编码 文件名 [-o newfilename]
# 如果不加 -o 选项,会将转码后的内容直接输出到终端,不改变源文件;加 -o 选项,会将原本输出到终端的内容输出到新文件中。

由于 UTF-8 中也包含繁体字,所以如果直接将 BIG5 编码的繁体字转换为 UTF-8,仍然是繁体字。可以先将 BIG5 转换为 GB2312,再转换成 UTF-8,这样可以将 BIG5 编码的繁体字转换为 UTF-8 编码的简体字:

1
$ iconv -f big5 -t gb2312 filename | iconv -f gb2312 -t utf8 -o newfilename

行尾结束符

不同操作系统,文本文件的行尾结束符是有区别的:

操作系统 转义字符 英文缩写 英文名 中文名 vim 中显示
Windows \r\n CRLF carriage return line feed 回车换行 ^M$
Unix / Linux \n LF line feed 换行 $
Mac \r CR carriage return 回车 ^M

转换行尾结束符:

1
2
3
4
5
# CRLF --> LF
$ dos2unix [-nk] filename [newfile]

# LF --> CRLF
$ unix2dos [-nk] filename [newfile]
  • -k:不改变源文件时间戳
  • 如果不加 -n 选项,会原地转换;如果加了 -n,源文件不会改变,转换后的内容被写入 newfile 中。

拓展:回车与换行的区别与来历

Linux 目录树的结构

用户与用户组

vim 文本编辑器

四种模式

一般模式,插入模式,命令行模式,可视模式。

  • 一般模式下:
    • 插入、替换:
      • i:在光标所在字符插入内容。
      • a:在光标所在字符插入内容。
      • I:在行首插入内容。
      • A:在行尾插入内容。
      • o:在光标所在行下一行插入内容。
      • O:在光标所在上一行插入内容。
      • r:按下后再按一个字符,将光标所在处原来的字符替换为这个字符。
      • R:进入替换模式。
    • 删除:
      • x:删除光标所在字符。
      • nx:从光标所在字符算起,向后删除 n 个字符。
      • dd:删除光标所在行。
      • ndd:从光标所在行算起,向下删除 n 行。
      • D/d$:删除光标所在位置至行尾的所有字符。
      • d^:删除光标所在位置至行首的所有字符。
      • J:删除光标所在行的换行符。
      • .:重复上一次删除操作。
    • 复制、粘贴:
      • yy:复制光标所在行。
      • nyy:从光标所在行算起,向下复制 n 行。
      • p:在光标所在行的下一行粘贴内容。
      • P:在光标所在行的上一行粘贴内容。
      • .:重复上一次粘贴操作。
    • 撤销、重做:
      • u:撤销一次编辑。
      • Ctrl+r:撤销一次撤销操作。
    • 定位:
      • h/j/k/l:光标向 左/下/上/右 方向移动一位。
      • nh/nj/nk/nl:光标向 左/下/上/右 方向移动 n 位。
      • gg:光标移动到文件首行行首
      • G:光标移动到文件尾行行首
      • 0/^:光标移动到当前行首
      • $:光标移动到当前行尾
      • nG:光标移动到第 n 行行首
      • n$:光标下移 n 行,并定位到行尾
      • n[Enter]:n 为数字,光标向下移动 n 行
    • 查找字符串:
      • /words:查找 words,按 n 查找下一个,N 查找上一个。
      • ?words:查找 words,按 n 查找上一个,N 查找下一个。
    • 翻页:
      • Ctrl+f:向下翻页。
      • Ctrl+b:向上翻页。
  • 插入模式下:按 [ESC] 退出到一般模式。
  • 一般模式下输入 : 进入命令行模式。命令行模式下:
    • w:将修改写入文件。
    • q:退出 vim。
    • wq:写入并退出。
    • w!:文件没有写权限,但当前用户可以修改文件时,可以用该命令强制写入。
    • wq!:强制写入并退出。
    • q!:放弃修改并退出,! 告诉 vim 无需保存。
    • e!:撤销全部操作。
    • w 文件名:将文件另存为。
    • w! 文件名:将文件另存为,若已存在,则强行覆盖。
    • !:暂时退出,按任意键回来继续编辑。
    • 数字:光标移动到第 n 行行首
    • /words?words:查找字符串。用法与一般模式下的相同。
    • 1,20s/words1/words2/gc:将 1~20 行的 words1 替换为 words2。sg 是替换命令,加 c 表示由用户一个一个决定要不要替换,不加 c 则直接替换。行数可以是数字,也可以是 $$ 表示末行
    • r 文件名:读取指定文件,将其内容插入到当前文件光标所在行的后面。
  • 可视模式:
    • 分为 可视模式可视行模式可视块模式
      • 可视模式:一般模式下按 v 进入,可选择字符。
      • 可视行模式:一般模式下按 V 进入,可选择块。
      • 可视块模式:一般模式下按 Ctrl+v 进入,可选择块。
    • 可视模式常用操作:
      • 大多数一般模式下的操作。
      • 复制:y,粘贴:p,删除:d,插入:I
      • [ESC] 退出到一般模式。

多文件编辑

同时打开多个文件:vim file1 file2

在命令行模式下输入 xn 切换到下 x 个文件,输入 xN 切换到上 x 个文件,输入 files 查看打开的文件的信息。

多窗口功能

进入 vim 后,命令行模式下输入 sp filename 分割窗口。没有 filename 则分割窗口并在新窗口中编辑当前文件,有 filename 则分割窗口并在新窗口中编辑指定文件。

Ctrl+w+j 光标移动到下一个窗口;按 Ctrl+w+k 光标移动到上一个窗口。

光标移动到想关闭的窗口,按 Ctrl+w+q 或 输入 :q 关闭窗口。

环境参数设置

命令行模式下:

  • set all:查看所有环境参数。
  • set nu:显示行号。
  • set nonu:不显示行号。
  • set autoindent:与上一行自动对齐。
  • set tabstop=4:设置制表符宽度。
  • set shiftwidth=4:设置自动缩进的宽度。
  • filetype indent on:根据文件类型自动缩进。
  • syntax on/off:是否显示关键词颜色。
  • set bg=dark/light:设置色调样式。dark 和 light 是两种不同样式,默认为 light。
  • set:显示与默认值不同的设置值。
  • set ruler:显示右下角状态栏。
  • set showmode:显示左下角状态栏

如果在 vim 中输入上面的设置,这些设置只会在当前 vim 中有效,重启 vim 就无效了。

永久设置环境参数:将以上设置添加到 /etc/vimrc~/.vimrc 文件中。如果添加到 /etc/vimrc 中,所有用户都会拥有这些设置;如果添加到 ~/.vimrc 中,仅该家目录的拥有者拥有这些设置。

shell

事实上,Linux 只是一个操作系统内核(Kernel),Linux 内核加上一系列应用软件才构成了 Linux 发行版(如 Ubuntu,CentOS 等)。用户无法直接操作 kernel,而是通过 kernel 的 “外壳” 程序,也就是所谓的 shell 来与 kernel 进行沟通,这就是 kernel 与 shell 的形象命名关系。

系统中的 shell 都记录在 /etc/shells 文件中,该文件被系统用来在运行某些服务时查询用户可以使用的 shells。

用户登录后,系统会根据 /etc/passwd 文件选择 shell 供用户使用。

bash 基础

bash(Bourne Again SHell) 是 大多 Linux 系统所默认的 shell,所以 bash 是必须要学的。

常用内置命令

  1. cd:切换当前工作目录。

  2. alias:为命令设置别名。

  3. type:查看命令是内置命令、外部命令还是命令别名。

    1
    2
    3
    4
    $ type command

    # 若一个命令有多个属性,加上 -a 选项可以显示所有属性且按执行顺序排序,否则只显示最先执行的那个属性
    $ type -a command

为命令设置别名

可以使用 alias 为命令设置别名,方便使用:

1
$ alias ll='ls -l'

取消别名:

1
$ unalias ll

显示当前已设置的所有别名:

1
$ alias

alias 设置的别名只在当前终端中有效,如果要永久设置,可以修改 ~/.bashrc 文件。

历史命令

使用过的所有命令都会记录在 ~/.bash_history 文件中,默认数量上限为 1000 个。

用户登录时,bash 会读取 ~/.bash_history 文件中的命令到内存,此后用户输入的命令也都会暂时存储在内存中,用户注销时,bash 又将内存中的命令都写入 ~/.bash_history 文件。

快速使用历史命令:

1
2
3
4
$ !66	# 执行第 66 条命令
$ !-66 # 执行倒数第 66 条命令
$ !! # 执行上一条命令
$ !al # 执行最近的以 al 开头的命令

history 命令:

1
2
3
4
5
6
7
8
$ history	# 显示所有历史命令
$ history 10 # 显示 10 条历史命令

$ history -c # 清除目前内存中的所有历史命令

$ history -r histfile # 将 histfile 中的数据读取到内存中,若不加 histfile,则默认为 ~/.bash_history
$ history -a histfile # 将内存中新增的命令写入 histfile 文件中,若不加 histfile,则默认为 ~/.bash_history
$ history -w histfile # 将内存中的所有命令写入 histfile 文件中,若不加 histfile,则默认为 ~/.bash_history

命令执行的判断依据

1
2
3
$ cmd1; cmd2	# 先执行 cmd1,再执行 cmd2
$ cmd1 && cmd2 # 若 cmd1 执行成功,继续执行 cmd2;若执行失败,不执行 cmd2
$ cmd1 || cmd2 # 若 cmd1 执行成功,不执行 cmd2;若执行失败,执行 cmd2

注:&&|| 联用时没有优先级,只有从左到右的顺序。

通配符

  1. *:匹配任意长度字符串。

  2. ?:匹配任意一个字符。

  3. []:匹配方括号内的任意一个字符。例如:

    file[0-9].txt 可以匹配 file0.txt ~ file9.txt

    file[0,5,a].txt 可以匹配 file0.txt,file5.txt,filea.txt

  4. {}:与 [] 的第二种用法相似,但能匹配字符串,而 [] 只能匹配一个字符。

  5. ^ / !:与[]{}联用,表示不匹配某些字符,例如:

    file[^0-8].txt 无法匹配 file0.txt ~ file8.txt,可以匹配 file9.txt,filea.txt ~ filez.txt

bash 中的变量

配置 bash

bash 登录信息与欢迎消息

  1. 修改 /etc/issue 文件可以自定义 bash 的登录信息,可以通过一些转义字符显示一些动态的内容:

    转义字符 含义
    \d 本地日期
    \t 本地时间
    \n 主机名
    \r 操作系统版本(相当于 uname -r
    \s 操作系统名称
    \v 操作系统版本
    \o 域名
    \m 硬件等级
    \l 是第几个终端机接口
  2. 修改 /etc/motd 文件可以自定义欢迎信息,常用来提示登录的用户一些事项。

bash 的环境配置文件

输入输出重定向

输入输出重定向:把原本要从键盘获得的输入重定向为从文件或其他流获得;将原本要输出到屏幕上的输出流重定向为输出到文件或其他流中。

输入输出重定向涉及到三种流:

  • 标准输入流(stdin,文件描述符 0
  • 标准输出流(stdout,文件描述符 1
  • 标准错误输出流(stderr,文件描述符 2

重定向输出流

使用 >>> 可以重定向输出流,区别是,当目标文件已存在,> 会用新内容覆盖原文件内容(相当于 C 语言文件打开方式中的 w 方式),而 >> 则是将新内容追加到原文件尾部(相当于 a 方式)。

  1. 将标准输出重定向到文件中:

    1
    2
    3
    $ command 1> filename
    $ command 1>> filename
    $ command >> filename # 不写 1 或者 2,也是重定向标准输出
  2. 将标准错误输出重定向到文件中:

    1
    2
    $ command 2> filename
    $ command 2>> filename
  3. 将所有输出重定向到文件中:

    1
    $ command &>> filename
  4. 标准输出和标准错误输出重定向到不同文件中:

    1
    $ command 1>> filename1 2>> filename2
  5. 标准输出和标准错误输出重定向到一个文件中,但分离开:

    1
    $ command 1> filename 2> filename
  6. 标准输出和标准错误输出的相互重定向:

    1
    2
    $ command 1>&2	# 将标准输出重定向到标准错误输出
    $ command 2>&1 # 将标准错误输出重定向到标准输出

    注:如果有多个重定向,上面两种重定向要放到后面。例如:

    1
    $ find / -name abcd 1>>/dev/null 2>&1

输出流重定向的常见用途:

  1. 快速向某个文件写入少量内容,例如:

    1
    $ echo "export JAVA_HOME=/usr/local/jdk1.8.0" >> /etc/profile
  2. 保存命令的执行结果。

  3. 丢弃命令的错误输出,如:

    1
    $ find / -name xxx 2>> /dev/null

    /dev/null 是一个字符设备文件,它就像一个黑洞,重定向到该文件的内容都会彻底消失。

重定向输入流

管道

常用管道命令

zsh

shell Script

磁盘管理

网络管理

查看和操纵网卡

常见网卡的命名:

  • 以太网卡:
    • eth0,eth1,……(eth 表示以太网,0 和 1 是序号)
    • enp3s0(en 表示以太网,p3s0 代表 PCI 接口的物理位置为 (3, 0))
  • 无线网卡:
    • wlan0, wlan1, ……(wlan 表示无线局域网,0 和 1 是序号)
    • wlp2s0(wl 表示无线局域网,p2s0 代表 PCI 接口的物理位置为 (2, 0))
  • 本地回环:lo(不是真正的网卡,是一个模拟出来的网卡。该网卡为系统提供一个单机网络环境,一般用于网络程序的调试,许多程序的运行也需要这个网卡)

对网卡的操作主要使用 ifconfig 命令。

  • 查看网卡:

    1
    2
    3
    $ ifconfig	# 查看所有已启动的网卡
    $ ifconfig -a # 查看所有网卡,无论有没有被启动
    $ ifconfig wlp2s0 # 查看指定网卡
  • 启动/关闭网卡:

    1
    2
    $ ifconfig wlp2s0 up	# 启动网卡
    $ ifconfig wlp2s0 down # 关闭网卡
  • 修改网卡属性:

    1
    2
    3
    4
    5
    $ ifconfig wlp2s0 IP地址	# 修改IP地址
    $ ifconfig wlp2s0 netmask 掩码 # 修改掩码
    $ ifconfig wlp2s0 mtu MTU值 # 修改MTU(最大传输单元)

    $ ifconfig wlp2s0 IP地址 netmask 掩码 mtu MTU值 # 可以连起来以简化书写

    注:ifconfig 修改网卡参数只是暂时的,系统重启后就会恢复原样。

配置 TCP/IP 网络参数

其他常用命令

  1. ping

    1
    $ ping -c 数据包个数 IP/域名	# 测试网络是否联通
  2. dig

    1
    $ dig domain_name	# 返回该域名对应的主机信息
  3. netstat

    1
    2
    $ netstat -rn	# 查看网关
    $ netstat -nlutp # 查看开放的端口
  4. 查看 DNS 服务器

    1
    $ cat /etc/resolv.conf
  5. 命令行下获取本机对外的 IP 地址

    1
    $ curl http://ifconfig.me

软件管理

Redhat 系列发行版

Debian 系列发行版

进程与服务

远程登录

使用 ssh 远程登录

使用 screen 管理虚拟终端

使用 vnc 远程登录图形界面

其他命令