5 常用基本命令

5.1 帮助命令

5.1.1 man 获取帮助信息

1)基本语法

  1. man [命令或配置文件] # (功能描述: 获得帮助信息)

2)显示说明

信息 功能
NAME 命令的名称和单行描述
SYNOPSIS 怎样使用命令
DESCRIPTION 命令功能的深入讨论
EXAMPLES 怎样使用命令的例子
SEE ALSO 相关主题(通常是手册页)

3)案例实操
(1)查看 ls 命令的帮助文档

  1. ~ man ls

5.1.2 help 获取 shell 内置命令的帮助信息

一部分基础功能的系统命令是直接内嵌在 shell 中的, 系统加载启动之后会随着 shell 一起加载, 常驻系统内存中。 这部分命令被称为“内置(built-in) 命令”; 相应的其它命令被称为“外部命令”。
1)基本语法

  1. # 查看所有的内置命令
  2. ~ help
  3. # 查看某个命令是内置命令和外部命令
  4. ~ type ls
  5. help 命令 # (功能描述: 获得 shell 内置命令的帮助信息)

2)案例实操
(1)查看 cd 命令的帮助信息

  1. ~ cd --help

5.1.3 常用快捷键

常用快捷键 功能
ctrl + c 停止进程
ctrl + l 清屏, 等同于 clear; 彻底清屏是: reset
善于用 tab 键 提示(更重要的是可以防止敲错)
上下键 查找执行过的命令

5.2 文件目录类

5.2.1 pwd 显示当前工作目录的绝对路径

pwd:print working directory 打印工作目录
1)基本语法 :::warning pwd (功能描述:显示当前工作目录的绝对路径)
选项说明:
-P :显示当前工作目录的物理路径(实际路径) ::: 2)案例实操
(1)显示当前工作目录的绝对路径

  1. ~ pwd
  2. /root

(2)打印物理目录,不带任何符号链接

  1. ~ ls -l /sbin
  2. lrwxrwxrwx. 1 root root 8 Oct 30 2020 /sbin -> usr/sbin
  3. ~ cd /sbin
  4. /sbin pwd -P
  5. /usr/sbin

5.2.2 ls 列出目录的内容

ls:list 列出目录内容
1)基本语法 :::warning ls [选项] [目录或是文件] ::: 2)选项说明

选项 功能
-a 全部的文件, 连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-l 长数据串列出, 包含文件的属性与权限等等数据; (常用)等价于“ll”
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/“
-t 将文件依建立时间之先后次序列出
-R 若目录下有文件,则以下之文件亦皆依序列出
-r 将文件以相反次序显示(原定依英文字母次序)

3)显示说明
每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字
4)案例实操
(1)查看当前目录的所有内容信息

  1. ~ ls -al
  2. total 144
  3. dr-xr-x---. 8 root root 4096 May 23 22:17 .
  4. dr-xr-xr-x. 18 root root 256 May 17 10:35 ..

5.2.3 cd 切换目录

cd: Change Directory 切换路径
1)基本语法 :::warning cd [参数] ::: 2)参数说明

参数 功能
cd 绝对路径 切换路径
cd 相对路径 切换路径
cd ~或者 cd 回到自己的家目录
cd - 回到上一次所在目录
cd .. 回到当前目录的上一级目录
cd -P 跳转到实际物理路径, 而非快捷方式路径

3)案例实操
(1) 使用绝对路径切换到 root 目录

  1. cd /root/

(2) 使用相对路径切换到“公共的” 目录

  1. cd 公共的/

(3) 表示回到自己的家目录, 亦即是 /root 这个目录

  1. cd ~

(4) cd - 回到上一次所在目录

  1. cd -

(5) 表示回到当前目录的上一级目录, 亦即是 “/root/公共的” 的上一级目录的意思;

  1. cd ../

5.2.4 mkdir 创建一个新的目录

mkdir:Make directory 创建新的目录
1)基本语法 :::warning mkdir [选项] 要创建的目录名 ::: 2)选项说明

选项 功能
-p 创建多层目录(确保目录名称存在,不存在的就建一个。)
-v 为每个创建的目录打印一条消息

3)案例实操
(1)创建一个目录

  1. ~ mkdir dir
  2. ~ mkdir dir/subdir

(2)创建一个多级目录

  1. ~ mkdir -p dir/subdir

5.2.5 rmdir 删除一个空的目录

rmdir:Remove directory
1)基本语法 :::warning rmdir 要删除的空目录 ::: 2)案例操作
(1)删除一个空的文件夹

  1. ~ rmdir dir/subdir

5.2.6 touch 创建空文件

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。 :::warning ls -l 可以显示档案的时间记录。 ::: 1)基本语法 :::warning touch 文件名称
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][—help][—version][文件或目录…] ::: 2)选项说明

  • a 改变档案的读取时间记录。
  • m 改变档案的修改时间记录。
  • c 假如目的档案不存在,不会建立新的档案。与 —no-create 的效果一样。
  • f 不使用,是为了与其他 unix 系统的相容性而保留。
  • r 使用参考档的时间记录,与 —file 的效果一样。
  • d 设定时间与日期,可以使用各种不同的格式。
  • t 设定档案的时间记录,格式与 date 指令相同。
  • —no-create 不会建立新档案。
  • —help 列出指令格式。
  • —version 列出版本讯息。

3)案例实操

  1. touch dir/root.txt

5.2.7 cp 复制文件或者目录

Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。
1)基本语法 :::warning cp [选项] source dest
cp [options] source… directory ::: 2)选项说明

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。

3)参数说明

参数 功能
source 源文件
dest 目标文件

4)经验技巧
强制覆盖不提示的方法: \cp
5)案例操作
(1)复制文件

  1. ~ cp /etc/fstab dir/

(2)递归复制整个文件夹

  1. ~ cp -av /etc dir/

5.2.8 rm 删除文件或者目录

Linux rm(英文全拼:remove)命令用于删除一个文件或者目录。
1)基本语法 :::warning rm [选项] deleteFIle (功能描述:递归删除目录中的所有内容) ::: 2)选项说明

选项 功能
-r 递归删除目录中所有内容
-f 强制执行删除操作, 而不提示用于进行确认。
-v 显示指令的详细执行过程
-i 删除前逐一询问确认

3)案例操作
(1)删除目录中的内容

  1. ~ rm -f dir/root.txt

(2)递归删除目录中所有内容

  1. ~ rm -f dir/etc
  2. rm: cannot remove dir/etc’: Is a directory
  3. ~ rm -rfv dir/etc

5.2.9 mv 移动文件与目录或重命名

Linux mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
1)基本语法 :::warning (1)mv oldNameFile newNameFIle (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移动文件) ::: 2)参数说明

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

mv 参数设置与运行结果

命令格式 运行结果
mv source_file(文件) dest_file(文件) 将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_directory(目录) 将文件 source_file 移动到目标目录 dest_directory 中
mv source_directory(目录) dest_directory(目录) 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
mv source_directory(目录) dest_file(文件) 出错

3)案例实操
(1)重命名

  1. ~ mv fstab fstab.bak
  2. ~ ls -l fstab fstab.bak
  3. ls: cannot access fstab: No such file or directory
  4. -rw-r--r-- 1 root root 382 May 23 22:52 fstab.bak

(2)移动文件

  1. ~ mv fstab.bak dir
  2. ~ ls -l dir/fstab.bak
  3. -rw-r--r-- 1 root root 382 May 23 22:52 dir/fstab.bak

5.2.10 cat 查看文件内容

查看文件内容,从第一行开始显示
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
1)基本语法 :::info cat [选项] 要查看的文件
cat [-AbeEnstTuv] [—help] [—version] fileName ::: 2)选项说明

  • -n 或 —number:由 1 开始对所有输出的行数编号。
  • -b 或 —number-nonblank:和 -n 相似,只不过对于空白行不编号。
  • -s 或 —squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  • -v 或 —show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
  • -E 或 —show-ends : 在每行结束处显示 $。
  • -T 或 —show-tabs: 将 TAB 字符显示为 ^I。
  • -A, —show-all:等价于 -vET。
  • -e:等价于”-vE”选项;
  • -t:等价于”-vT”选项;

3)经验技巧
一般查看比较小的文件,一屏幕能显示全部的
4)案例实操
(1)查看文件内容并显示行号

  1. ~ cat -n /etc/fstab

5.2.11 more 文件内容分屏查看器

more 指令是一个基于 VI 编辑器的文本过滤,它以全屏幕的方式按页显示文本文件的内容。 more 指令中内置了若干快捷键, 详见操作说明。
1)基本语法
more 要查看的文件
2)操作说明

操作 功能说明
空白键(space) 代表向下翻一页
Enter 代表向下翻【一行】
q 代表立刻离开more,不再显示该文件内容
Ctrl + F 向下滚动一屏
Ctrl + B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

3)案例实操
(1)采用 more 查看文件

➜  ~ more /etc/passwd

5.2.12 less 分屏显示文件内容

less 指令用来分屏查看文件内容, 它的功能与 more 指令类似, 但是比 more 指令更加强大, 支持各种显示终端。 less 指令在显示文件内容时, 并不是一次将整个文件加载之后才显示, 而是根据显示需要加载内容, 对于显示大型文件具有较高的效率。
1)基本语法 :::info less 要查看的文件
less [参数] 文件 ::: 2)操作说明

操作 功能说明
空白键 向下翻动一页
[pagedown] 向下翻动一页
[pageup] 向上翻动一页
/字符串 向下搜索【字符串】的功能;n:向下查找,N:向上查找
?字符串 向上搜索【字符串】的功能;n:向上查找,N:向下查找
q 离开 less 这个程序
= 输出当前行的行号
  • -b <缓冲区大小> 设置缓冲区的大小
  • -e 当文件显示结束后,自动离开
  • -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  • -g 只标志最后搜索的关键词
  • -i 忽略搜索时的大小写
  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -o <文件名> 将less 输出的内容在指定文件中保存起来
  • -Q 不使用警告音
  • -s 显示连续空行为一行
  • -S 行过长时间将超出部分舍弃
  • -x <数字> 将”tab”键显示为规定的数字空格
  • /字符串:向下搜索”字符串”的功能
  • ?字符串:向上搜索”字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • b 向上翻一页
  • d 向后翻半页
  • h 显示帮助界面
  • Q 退出less 命令
  • u 向前滚动半页
  • y 向前滚动一行
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

3)经验技巧
用SecureCRT时[pagedown]和[pageup]可能会出现无法识别的问题。
4)案例实操
(1)采用 less 查看文件

➜  ~ less /etc/profile

5.2.13 echo

echo 输出内容到控制台
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。
1)基本语法 :::info echo [选项] [输出内容] ::: 选项:
-e:支持反斜线控制的字符转换

控制字符 作用
\\ 输出 \ 本身
\n 换行符
\t 制表符,也就是 Tab 键
\a 发出警告音
\c 结尾不加换行符

2)案例实操

# echo "hello\tworld"
hello\tworld
# echo -e "hello\tworld"
hello   world

5.2.14 head 显示文件头部内容

head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前面10行的内容
1)基本语法 :::info head 文件 (功能描述:查看文件头 10 行内容)
head -n 5 文件 (功能描述:查看文件头 5 行,5可以是任意行数) ::: 2)选项说明

选项 功能说明
-n <行数> 指定显示头部内容的行数

3)案例实操
(1)查看文件的头 2 行

➜  ~ head -n 2 /etc/passwd

5.2.15 tail 显示文件尾部内容

tail 用于显示文件的尾部部分内容,默认情况下 tail 指令显示文件的后面10行的内容
1)基本语法 :::info (1)tail 文件 (功能描述:查看文件尾部10行的内容)
(2)tail -n 5 文件 (功能描述:查看文件尾部 5行内容,5可以是任意的行数)
(3)tail -f 文件 (功能描述:实施追踪该文档的所有更新) ::: 2)选项说明

选项 功能说明
-n <行数> 输出文件尾部 n 行内容
-f 显示文件最新追加的内容, 监视文件变化

3)案例实操
(1)查看文件尾1行内容

➜  ~ tail -n 1 /etc/passwd

(2)实时追踪该档的所有更新

➜  ~ tail -f /etc/passwd # 一般为日志文件

5.2.16 > 输出重定向和 >> 追加

1)基本语法 :::info (1)ls -l > 文件(功能描述:列表的内容写入到文件 a.txt 中(覆盖写))
(2)ls -al >> 文件(功能描述:列表的内容追加到文件 a.txt 的末尾)
(3)cat 文件1 > 文件2(功能描述:将文件1的内容覆盖到文件2)
(4)echo “内容” >> 文件(功能描述:将 echo 的内容追加到 a.txt 文件末尾,没有该文件则创建后追加内容) ::: 2)案例实操
(1)将 ls 查看信息写入到文件中

➜  ~ ls -l /etc > a.txt

(2)将 ls 查看信息追加到文件中

➜  ~ ls -l /boot >> a.txt

(3)采用 echo 将 hello 单词追加到文件中

➜  ~ echo "hello" >> a.txt

5.2.17 ln 软链接

软链接也称为符号链接, 类似于 windows 里的快捷方式, 有自己的数据块, 主要存放了链接其他文件的路径。
Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
1)基本语法 :::info ln -s [原文件或者目录] [软链接名] (功能描述:给原文件创建一个软链接) ::: 2)经验技巧
删除软链接: rm -rf 软链接名, 而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除, 会把软链接对应的真实目录下内容删掉
查询: 通过 ll 就可以查看, 列表属性第 1 位是 l, 尾部会有位置指向。 :::warning (1)硬链接相当于直接连接元数据,与原本的文件名平等;(复制文件)
(2)软链接相当于保存对应文件的地址,没有直接连接文件的元数据;(快捷方式) ::: 3)案例实操
(1)创建软链接

➜  ~ ln -sv ../etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0
➜  ~ ls -l ifcfg-eth0
lrwxrwxrwx 1 root root 43 May 24 17:54 ifcfg-eth0 -> ../etc/sysconfig/network-scripts/ifcfg-eth0

(2)输出软链接(注意不要写最后的/)

➜  ~ rm -rf ifcfg-eth0

(3)进入软链接实际物理路径

➜  ~ ls -ld /bin /usr/bin
lrwxrwxrwx. 1 root root     7 Oct 30  2020 /bin -> usr/bin
dr-xr-xr-x. 2 root root 28672 May 22 22:11 /usr/bin
➜  ~ cd -P /bin
➜  bin pwd
/usr/bin

5.2.18 history 查看已经执行过历史命令

1)基本语法 :::info history (功能描述:查看已经执行过的历史命令) ::: 2)案例实操
(1)查看已经执行过的历史命令

➜  ~ history
# 执行历史命令的编号的指令
➜  ~ !150

5.3 时间日期类

1)基本语法 :::info date [OPTION]… [+FORMAT] ::: 2)选项说明

选项 功能
-d<时间字符串> 显示指定的“时间字符串” 表示的时间, 而非当前时间
-s<日期时间> 设置系统日期时间

3)参数说明

参数 功能
<+日期时间格式> 指定显示时使用的日期时间格式

5.3.1 date 显示当前时间

1)基本语法 :::info

  • date (功能描述:显示当前时间)
  • date +%Y (功能描述:显示当前年份)
  • date +%m (功能描述:显示当前月份)
  • date +%d (功能描述:显示当前是哪一天)
  • date +”%F %T”(date +”%Y-%m-%d %H:%M:%S”)(功能描述:显示年月日时分秒) ::: 2)案例实操
    (1)显示当前时间信息
    ➜  ~ date
    
    (2)显示当前时间的年月日
    ➜  ~ date +%Y-%m-%d
    ➜  ~ date +%F
    
    (3)显示当前时间的时分秒
    ➜  ~ date +%H:%M:%S
    ➜  ~ date +%T
    

    5.3.2 date 显示非当前时间

    1)基本语法 :::info (1)date -d ‘-1 days’ (功能描述:显示前一天的时间)
    (2)date -d ‘+1 days’ (功能描述:显示明天的时间) ::: 2)案例实操
    (1)显示前一天
    ➜  ~ date -d '-1 days'
    
    (2)显示明天时间
    ➜  ~ date -d '+1 days'
    

    5.3.3 date 设置系统时间

    1)基本语法 :::info date -s 字符串时间 ::: 2)案例实操
    (1)设置系统当前时间
    ➜  ~ date -s "2017-06-19 20:52:18"
    

    5.3.4 cal 查看日历

    1)基本语法 :::info cal [选项] (功能描述:不加选项,显示本月日历) ::: 2)选项说明
选项 功能
具体某一年 显示这一年的日历

3)案例实操
(1)显示当前月的日历

➜  ~ cal

(2)显示2017年的日历

➜  ~ cal 2017