Linux系统启动默认为字符界面,一般不会启动图形界面,所以对命令行的熟练程度能更加方便、高效的管理Linux系统。

本章介绍Linux系统必备命令各项参数及功能场景,Linux常见命令包括:cd、ls、pwd、mkdir、rm、cp、mv、touch、cat、head、tail、chmod、vim等。

1 cd命令详解

cd命令主要用于目录切换,例如:cd /home切换至/home目录,cd /root表示切换至/root目录 ;cd ../切换至上一级目录;cd ./切换至当前目录。

其中.和..可以理解为相对路径,例如cd ./test表示以当前目录为参考,表示相对于当前,而cd /home/test表示完整的路径,理解为绝对路径),如下所示:

[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cd /tmp
[root@superman-vm01 tmp]#
[root@superman-vm01 tmp]# cd /home
[root@superman-vm01 home]#
[root@superman-vm01 home]# cd ..
[root@superman-vm01 /]#
[root@superman-vm01 /]# cd ./home
[root@superman-vm01 home]#
[root@superman-vm01 home]# cd /etc/rc.d/rc3.d
[root@superman-vm01 rc3.d]#
[root@superman-vm01 rc3.d]# cd ../..
[root@superman-vm01 etc]# 

2 ls命令详解

ls命令主要用于浏览目录下的文件或者文件夹,使用方法参考:ls ./ 查看当前目录所有的文件和目录,ls -a 查看所有的文件,包括隐藏文件,以.开头的文件,常用参数详解如下:

-a, --all                    不隐藏任何以.开始的项目;
-A, --almost-all            列出除.及..以外的任何项目;--author                与-l同时使用时列出每个文件的作者;
-b, --escape                以八进制溢出序列表示不可打印的字符;--block-size=大小           块以指定大小的字节为单位;
-B, --ignore-backups        不列出任何以"~"字符结束的项目;
-d, --directory                当遇到目录时列出目录本身而非目录内的文件;
-D, --dired                    产生适合Emacs的dired模式使用的结果;
-f                            不进行排序,-aU选项生效,-lst选项失效;
-i, --inode                    显示每个文件的inode号;
-I, --ignore=PATTERN        不显示任何符合指定shell PATTERN的项目;
-k                            即--block-size=1K;
-l                            使用较长格式列出信息;
-n, --numeric-uid-gid        类似-l,但列出UID及GID号;
-N, --literal                输出未经处理的项目名称 (如不特别处理控制字符) ;
-r, --reverse                排序时保留顺序;
-R, --recursive                递归显示子目录;
-s, --size                    以块数形式显示每个文件分配的尺寸;
-S                            根据文件大小排序;
-t                            根据修改时间排序;
-u                            同-lt 一起使用:按照访问时间排序并显示;同-l一起使用:显示访问时间并按文件名排序;其他:按照访问时间排序;
-U                            不进行排序;按照目录顺序列出项目;
-v                            在文本中进行数字(版本)的自然排序。

2.1 长格式显示

-l 参数主要是可以看到文件的更详细的信息。

[root@superman-vm01 ~]# ls -l /
total 24
lrwxrwxrwx.   1 root root    7 Jul  4 08:08 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Jul  4 08:22 boot
drwxr-xr-x   20 root root 3320 Jul  7 06:55 dev
drwxr-xr-x. 138 root root 8192 Jul  7 06:55 etc
drwxr-xr-x.   3 root root   22 Jul  4 08:17 home
lrwxrwxrwx.   1 root root    7 Jul  4 08:08 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Jul  4 08:08 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   3 root root   16 Jul  4 08:13 opt
dr-xr-xr-x  187 root root    0 Jul  7 06:55 proc
dr-xr-x---.  15 root root 4096 Jul  6 08:42 root
drwxr-xr-x   39 root root 1220 Jul  7 06:55 run
lrwxrwxrwx.   1 root root    8 Jul  4 08:08 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
dr-xr-xr-x   13 root root    0 Jul  7 06:55 sys
drwxrwxrwt.  27 root root 4096 Jul  7 07:01 tmp
drwxr-xr-x.  13 root root  155 Jul  4 08:08 usr
drwxr-xr-x.  20 root root  282 Jul  4 08:22 var
[root@superman-vm01 ~]# -rw-r--r--第一个横行表示文件类型,常见有
-   普通文件:
d   目录
l   链接文件
c   字符设备(即串行端口的接口设备,例如伪终端等)
b   块设备(磁盘)
s   套接字文件(通常用在网络数据连接)
p   管道文件# Linux目录结构:
/ 根目录
/boot          放置linux系统启动时的内核文件以及引导文件。
/dev           存放linux系统下的设备文件
/etc           系统配置文件存放的目录
/home          系统默认的用户家目录
/lib,lib64     动态连接共享库
/media         挂载可移动的设备
/opt           存放第三方软件
/root          管理员家目录
/bin,/sbin     可执行二进制命令
/run           临时文件系统目录
/srv           早期存放数据目录
/tmp           存放临时文件
/usr           应用程序目录
/var           存放动态文件,比如日志
/mnt           临时挂载目录

2.2 显示隐藏文件

-a参数可以显示隐藏文件。

[root@superman-vm01 ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .config  .dbus    Documents  .esd_auth      initial-setup-ks.cfg  Music     Public  .tcshrc    Videos
..  .bash_history    .bash_profile  .cache   .cshrc   Desktop  Downloads  .ICEauthority  .local                Pictures  .ssh    Templates  .viminfo
[root@superman-vm01 ~]# 

3 pwd命令详解

pwd命令主要用于显示或者查看当前所在的目录路径,如下所示:

[root@superman-vm01 ~]# cd /etc
[root@superman-vm01 etc]#
[root@superman-vm01 etc]# pwd
/etc
[root@superman-vm01 etc]#
[root@superman-vm01 etc]# cd /etc/sysconfig/network-scripts/
[root@superman-vm01 network-scripts]#
[root@superman-vm01 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@superman-vm01 network-scripts]#
[root@superman-vm01 network-scripts]# cd /var/log
[root@superman-vm01 log]#
[root@superman-vm01 log]# pwd
/var/log
[root@superman-vm01 log]#

4 mkdir命令详解

mkdir命令主要用于创建目录,用法mkdir dirname,命令后接目录的名称,常用参数详解如下:

用法:mkdir [选项]... 目录;若指定目录不存在则创建目录;
长选项必须使用的参数对于短选项时也是必需使用的;
-m, --mode=模式                设置权限模式(类似chmod),而不是rwxrwxrwx减umask;
-p, --parents               需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理;
-v, --verbose               每次创建新目录都显示信息;
-Z, --context=CTX           将每个创的目录的SELinux 安全环境设置为CTX;
--help                      显示此帮助信息并退出;
--version                      显示版本信息并退出。

4.1 递归创建目录

-p 自动创建上级目录,如果上级目录不存在;如果目录已经,则不创建,不会提示报错。

[root@superman-vm01 ~]# mkdir /home/a/b
mkdir: cannot create directory ‘/home/a/b’: No such file or directory
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# mkdir -p /home/a/b
[root@superman-vm01 ~]# 

4.2 指定目录权限

-m 可以指定创建目录时的权限。

[root@superman-vm01 ~]# mkdir /home/c
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /home
total 0
drwxr-xr-x  3 root     root     15 Jul  7 07:27 a
drwxr-xr-x  2 root     root      6 Jul  7 07:31 c
drwx------. 4 superman superman 97 Jul  7 07:26 superman
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# mkdir -m 640 /home/d
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /home
total 0
drwxr-xr-x  3 root     root     15 Jul  7 07:27 a
drwxr-xr-x  2 root     root      6 Jul  7 07:31 c
drw-r-----  2 root     root      6 Jul  7 07:32 d
drwx------. 4 superman superman 97 Jul  7 07:26 superman
[root@superman-vm01 ~]# 

5 rm命令详解

rm 命令主要用于删除文件或者目录,用法 rm –rf test.txt (-r表示递归,-f表示强制),常用参数详解如下:

用法:rm [选项]... 文件...删除 (unlink) 文件。
-f, --force                    强制删除。忽略不存在的文件,不提示确认;
-i                            在删除前需要确认;
-I                            在删除超过三个文件或者递归删除前要求确认。此选项比-i 提示内容更少,但同样可以阻止大多数错误发生;
-r, -R, --recursive            递归删除目录及其内容;
-v, --verbose                  详细显示进行的步骤;
--help                        显示此帮助信息并退出;
--version                     显示版本信息并退出;
默认时,rm 不会删除目录,使用--recursive(-r 或-R)选项可删除每个给定的目录,以及其下所有的内容;
要删除第一个字符为"-"的文件 (例如"-foo"),请使用以下方法之一:
rm -- -foo
rm ./-foo

6 cp命令详解

cp 命令主要用于拷贝文件,用法,cp old.txt /tmp/new.txt ,常用来备份,如果拷贝目录需要加-r参数,常用参数详解如下:

用法:cp [选项]... [-T] 源文件 目标文件或:cp [选项]... 源文件... 目录或:cp [选项]... -t 目录 源文件...
将源文件复制至目标文件,或将多个源文件复制至目标目录。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --archive                        等于-dR --preserve=all;--backup[=CONTROL                为每个已存在的目标文件创建备份;
-b                                   类似--backup 但不接受参数;--copy-contents                  在递归处理是复制特殊文件内容;
-d                                   等于--no-dereference --preserve=links;
-f, --force                          如果目标文件无法打开则将其移除并重试(当 -n 选项;存在时则不需再选此项);
-i, --interactive                    覆盖前询问(使前面的 -n 选项失效);
-H                                   跟随源文件中的命令行符号链接;
-l, --link                           链接文件而不复制;
-L, --dereference                    总是跟随符号链接;
-n, --no-clobber                     不要覆盖已存在的文件(使前面的 -i 选项失效);
-P, --no-dereference                 不跟随源文件中的符号链接;
-p                                   等于--preserve=模式,所有权,时间戳;--preserve[=属性列表              保持指定的属性(默认:模式,所有权,时间戳),如果;可能保持附加属性:环境、链接、xattr 等;
-c                                   same as --preserve=context;--sno-preserve=属性列表           不保留指定的文件属性;--parents                        复制前在目标目录创建来源文件路径中的所有目录;
-R, -r, --recursive                  递归复制目录及其子目录内的所有内容。

6.1 复制更新的文件

-u 只复制源文件有更新的,否则不执行。

#第一次将abc.txt复制到/home目录:
[root@superman-vm01 ~]# cat abc.txt
123
456
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cp abc.txt /home#更新文件
[root@superman-vm01 ~]# echo "this is update" > abc.txt
[root@superman-vm01 ~]# cat abc.txt
this is update
[root@superman-vm01 ~]# #-u参数复制:
[root@superman-vm01 ~]# cp -u abc.txt /home
cp: overwrite ‘/home/abc.txt’? y
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat abc.txt
this is update
[root@superman-vm01 ~]#
#不更新文件,再次复制,并没有进行替换:
[root@superman-vm01 ~]# cp -u abc.txt /home
[root@superman-vm01 ~]#

6.2 复制软连接

-d|-a复制软连接,这里要注意创建软连接时最好为绝对路径,否则可能会出现失效的软连接。

[root@superman-vm01 ~]# ln -s /root/abc.txt abc1.txt
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l
total 12
lrwxrwxrwx  1 root root   13 Jul  7 07:59 abc1.txt -> /root/abc.txt
-rw-r--r--  1 root root   15 Jul  7 07:48 abc.txt
-rw-------. 1 root root 2002 Jul  4 08:18 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Desktop
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Documents
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Downloads
-rw-r--r--. 1 root root 2050 Jul  4 08:27 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Music
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Pictures
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Public
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Templates
drwxr-xr-x. 2 root root    6 Jul  4 08:30 Videos
[root@superman-vm01 ~]# #如果直接复制,不带参数,会导致软连接失效,直接创建普通文件
[root@superman-vm01 ~]# cp abc1.txt /data
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /data
total 4
-rw-r--r-- 1 root root 15 Jul  7 08:00 abc1.txt
[root@superman-vm01 ~]# #加上参数:
[root@superman-vm01 ~]# cp -d abc1.txt /data
cp: overwrite ‘/data/abc1.txt’? y
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /data
total 0
lrwxrwxrwx 1 root root 13 Jul  7 08:00 abc1.txt -> /root/abc.txt
[root@superman-vm01 ~]# 

6.3 备份复制

-S 复制同名文件到目的目录时,对源文件进行备份,且自定义备份文件后缀名。

#第一次复制
[root@superman-vm01 ~]# cp abc.txt /data
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls /data
abc1.txt  abc.txt
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /data
total 4
lrwxrwxrwx 1 root root 13 Jul  7 08:00 abc1.txt -> /root/abc.txt
-rw-r--r-- 1 root root 15 Jul  7 08:03 abc.txt
[root@superman-vm01 ~]##第二次复制,对源文件进行备份:
[root@superman-vm01 ~]# \cp -S ".`date +%F`" abc.txt /data
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls /data
abc1.txt  abc.txt  abc.txt.2021-07-07
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ll /data
total 8
lrwxrwxrwx 1 root root 13 Jul  7 08:00 abc1.txt -> /root/abc.txt
-rw-r--r-- 1 root root 15 Jul  7 08:05 abc.txt
-rw-r--r-- 1 root root 15 Jul  7 08:03 abc.txt.2021-07-07
[root@superman-vm01 ~]# 

6.4 通用参数

-a 如果参数都记不住,就记住它吧,可以实现递归,复制软连接,保留文件属性。

7 mv命令详解

mv 命令主要用于重命名或者移动文件或者目录,用法, mv old.txt new.txt,常用参数详解如下:

用法:mv [选项]... [-T] 源文件 目标文件;
或:mv [选项]... 源文件... 目录;
或:mv [选项]... -t 目录 源文件;
将源文件重命名为目标文件,或将源文件移动至指定目录。长选项必须使用的参数对于短选项时也是必需使用的。--backup[=CONTROL]               为每个已存在的目标文件创建备份;
-b                                     类似--backup 但不接受参数;
-f, --force                         覆盖前不询问;
-i, --interactive                   覆盖前询问;
-n, --no-clobber                    不覆盖已存在文件,如果您指定了-i、-f、-n 中的多个,仅最后一个生效;--strip-trailing-slashes        去掉每个源文件参数尾部的斜线;
-S, --suffix=SUFFIX                 替换常用的备份文件后缀;
-t, --target-directory=DIRECTORY    将所有参数指定的源文件或目录;移动至 指定目录;
-T, --no-target-directory           将目标文件视作普通文件处理;
-u, --update                        只在源文件文件比目标文件新,或目标文件;不存在时才进行移动;
-v, --verbose                           详细显示进行的步骤;
--help                                 显示此帮助信息并退出;
--version                           显示版本信息并退出。

8 touch命令详解

touch 命令主要用于创建普通文件,用法为touch test.txt,如果文件存在,则表示修改当前文件时间,常用参数详解如下:

用法:touch [选项]... 文件...
将每个文件的访问时间和修改时间改为当前时间;
不存在的文件将会被创建为空文件,除非使用-c 或-h 选项;
如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间;
长选项必须使用的参数对于短选项时也是必需使用的;
-a                           只更改访问时间;
-c, --no-create              不创建任何文件;
-d, --date=字符串              使用指定字符串表示时间而非当前时间;
-f                           (忽略);
-h, --no-dereference         会影响符号链接本身,而非符号链接所指示的目的地;(当系统支持更改符号链接的所有者时,此选项才有用);
-m                           只更改修改时间;
-r, --reference=文件            使用指定文件的时间属性而非当前时间;
-t STAMP                     使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间;
--time=WORD                  使用WORD 指定的时间:access、atime、use 都等于-a;选项的效果,而modify、mtime 等于-m 选项的效果;
--help                         显示此帮助信息并退出;
--version                    显示版本信息并退出。

9 cat命令详解

cat 命令主要用于查看文件内容,用法 cat test.txt 可以查看test.txt内容,常用参数详解如下:

用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。
-A, --show-all                    等于-vET;
-b, --number-nonblank             对非空输出行编号;
-e                                等于-vE;
-E, --show-ends                   在每行结束处显示"$";
-n, --number                      对输出的所有行编号;
-s, --squeeze-blank               不输出多行空行;
-t                                与-vT 等价;
-T, --show-tabs                   将跳格字符显示为^I;
-u                                (被忽略);
-v, --show-nonprinting            使用^ 和M- 引用,除了LFD和 TAB 之外;
--help                            显示此帮助信息并退出;
--version                         显示版本信息并退出。

9.1 查看文件内容

[root@superman-vm01 ~]# cat -n /etc/fstab12  #3  # /etc/fstab4  # Created by anaconda on Sun Jul  4 08:07:23 20215  #6  # Accessible filesystems, by reference, are maintained under '/dev/disk'7  # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info8  #9  /dev/mapper/vg00-lv_root /                       xfs     defaults        0 010  UUID=0e73085e-969b-4e8e-8aa5-83120ce58f76 /boot                   xfs     defaults        0 011  /dev/mapper/vg00-lv_swap swap                    swap    defaults        0 0
[root@superman-vm01 ~]# 

9.2 创建文件

# EOF表示结束符,可以自定义,如下:# 以覆盖得方式写文件
[root@superman-vm01 ~]# cat abc.txt
this is update
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat > abc.txt << EOF
> this is superman
> EOF
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat abc.txt
this is superman
[root@superman-vm01 ~]# # 以追加得方式写文件
[root@superman-vm01 ~]# cat abc.txt
this is superman
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat >> abc.txt <<f
> I am from Zhengzhou
> f
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat abc.txt
this is superman
I am from Zhengzhou
[root@superman-vm01 ~]# 

10 head命令详解

head命令主要用于查看文件内容,通常查看文件前10行,head -10 /var/log/messages可以查看该文件前10行的内容,常用参数详解如下:

用法:head [选项]... [文件]...
将每个指定文件的头10 行显示到标准输出。
如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。
如果不指定文件,或者文件为"-",则从标准输入读取数据,长选项必须使用的参数对于短选项时也是必需使用的;
-q, --quiet, --silent                不显示包含给定文件名的文件头;
-v, --verbose                        总是显示包含给定文件名的文件头;
--help                               显示此帮助信息并退出;
--version                            显示版本信息并退出;
-c,  --bytes=[-]K                    显示每个文件的前K 字节内容,如果附加"-"参数,则除了每个文件的最后K字节数据外显示剩余全部内容;
-n, --lines=[-]K                     显示每个文件的前K 行内容,如果附加"-"参数,则除了每个文件的最后K 行外显示剩余全部内容。

11 tail命令详解

tail命令主要用于查看文件内容,通常查看末尾10行,tail –fn 100 /var/log/messages可以实时查看该文件末尾100行的内容,常用参数详解如下:

用法:tail [选项]... [文件]...
显示每个指定文件的最后10 行到标准输出。
若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。
如果不指定文件或文件为"-" ,则从标准输入读取数据。
长选项必须使用的参数对于短选项时也是必需使用的。
-n, --lines=K                          输出的总行数,默认为10行;
-q, --quiet, --silent                  不输出给出文件名的头;
--help                                   显示此帮助信息并退出;
--version                                显示版本信息并退出;
-f, --follow[={name|descriptor}]    即时输出文件变化后追加的数据;-f, --follow 等于--follow=descriptor
-F            即--follow=name –retry
-c, --bytes=K                         输出最后K字节;另外,使用-c +K 从每个文件的第K字节输出。

12 chmod命令详解

chmod命令主要用于修改文件或者目录的权限,例如chmod o+w test.txt,赋予test.txt其他人w写权限,常用参数详解如下:

用法:chmod [选项]... 模式[,模式]... 文件...或:chmod [选项]... 八进制模式 文件...或:chmod [选项]... --reference=参考文件 文件,将每个文件的模式更改为指定值。
-c, --changes                     类似 --verbose,但只在有更改时才显示结果--no-preserve-root          不特殊对待根目录(默认);--preserve-root             禁止对根目录进行递归操作;
-f, --silent, --quiet             去除大部份的错误信息;
-R, --recursive                 以递归方式更改所有的文件及子目录;
--help                            显示此帮助信息并退出;
--version                         显示版本信息并退出;
-v, --verbose                     为处理的所有文件显示诊断信息;
--reference=参考文件              使用指定参考文件的模式,而非自行指定权限模式。

13 chown命令详解

chown命令主要用于文件或者文件夹宿主及属组的修改,命令格式例如chown –R root.root /tmp/test.txt,表示修改test.txt文件的用户和组均为root,常用参数详解如下:

用法:chown [选项]... [所有者][:[组]] 文件...或:chown [选项]... --reference=参考文件 文件...
更改每个文件的所有者和/或所属组。
当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。
-f, --silent, --quiet 去除大部份的错误信息
--reference=参考文件             使用参考文件的所属组,而非指定值;
-R, --recursive                 递归处理所有的文件及子目录;
-v, --verbose                   为处理的所有文件显示诊断信息;
-H                                 命令行参数是一个通到目录的符号链接,则遍历符号链接;
-L                                历每一个遇到的通到目录的符号链接;
-P                                 历任何符号链接(默认);
--help                          显示帮助信息并退出;
--version                         显示版本信息并退出。

14 echo命令详解

echo命令主要用于打印字符或者回显,例如输入echo ok,会显示ok, echo ok > test.txt 则会把ok字符覆盖test.txt内容。>表示覆盖,原内容被覆盖,>>表示追加,原内容不变。

例如echo ok >> test.txt,表示向test.txt文件追加OK字符,不覆盖原文件里的内容,常用参数详解如下:

使用-e扩展参数选项时,与如下参数一起使用,有不同含义,例如:
\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab; \v 与\f相同;
\\ 插入\字符;
\033[30m 黑色字 \033[0m
\033[31m 红色字 \033[0m
\033[32m 绿色字 \033[0m
\033[33m 黄色字 \033[0m
\033[34m 蓝色字 \033[0m
\033[35m 紫色字 \033[0m
\033[36m 天蓝字 \033[0m
\033[37m 白色字 \033[0m
\033[40;37m 黑底白字 \033[0m
\033[41;37m 红底白字 \033[0m
\033[42;37m 绿底白字 \033[0m
\033[43;37m 黄底白字 \033[0m
\033[44;37m 蓝底白字 \033[0m
\033[45;37m 紫底白字 \033[0m
\033[46;37m 天蓝底白字 \033[0m
\033[47;30m 白底黑字 \033[0m

echo颜色打印扩展,auto_lamp_v2.sh内容如下:

echo -e "\033[36mPlease Select Install Menu follow:\033[0m"
echo -e "\033[32m1)Install Apache Server\033[1m"
echo "2)Install MySQL Server"
echo "3)Install PHP Server"
echo "4)Configuration index.php and start LAMP server"
echo -e "\033[31mUsage: { /bin/sh $0 1|2|3|4|help}\033[0m"

执行结果如图所示:

15 df命令详解

df命令常用于磁盘分区查询,常用命令df –h,查看磁盘分区信息,常用参数详解如下:

用法:df [选项]... [文件]...
显示每个文件所在的文件系统的信息,默认是显示所有文件系统。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all                  显示所有文件系统的使用情况,包括虚拟文件系统;
-B, --block-size=SIZE      使用字节大小块;
-h, --human-readable       以人们可读的形式显示大小;
-H, --si                   同-h,但是强制使用1000而不是1024;
-i, --inodes               显示inode 信息而非块使用量;
-k                         即--block-size=1K;
-l, --local                只显示本机的文件系统;--no-sync              取得使用量数据前不进行同步动作(默认);
-P, --portability          使用POSIX 兼容的输出格式;--sync                 取得使用量数据前先进行同步动作;
-t, --type=类型                只显示指定文件系统为指定类型的信息;
-T, --print-type           显示文件系统类型;
-x, --exclude-type=类型        只显示文件系统不是指定类型信息;
--help                       显示帮助信息并退出;
--version                    显示版本信息并退出。

16 du命令详解

du命令常用于查看文件在磁盘中的使用量,常用命令du -sh,查看当前目录所有文件及文件及的大小,常用参数详解如下:

用法:du [选项]... [文件]...或:du [选项]... --files0-from=F
计算每个文件的磁盘用量,目录则取总用量。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all                       输出所有文件的磁盘用量,不仅仅是目录; --apparent-size                    显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大;
-B, --block-size=大小           使用指定字节数的块;
-b, --bytes                     等于--apparent-size --block-size=1;
-c, --total                     显示总计信息;
-H                             等于--dereference-args (-D);
-h, --human-readable            以可读性较好的方式显示尺寸(例如:1K 234M 2G);--si                        类似-h,但在计算时使用1000 为基底而非1024;
-k                             等于--block-size=1K;
-l, --count-links                   如果是硬连接,就多次计算其尺寸;
-m                             等于--block-size=1M;
-L, --dereference               找出任何符号链接指示的真正目的地;
-P, --no-dereference                不跟随任何符号链接(默认);
-0, --null                      将每个空行视作0 字节而非换行符;
-S, --separate-dirs                 不包括子目录的占用量;
-s, --summarize                 只分别计算命令列中每个参数所占的总用量;
-x, --one-file-system               跳过处于不同文件系统之上的目录;
-X, --exclude-from=文件         排除与指定文件中描述的模式相符的文件;
-D, --dereference-args              解除命令行中列出的符号连接;--files0-from=F             计算文件F中以NUL结尾的文件名对应占用的磁盘空,如果F 的值是"-",则从标准输入读入文件名。

如上为Linux初学者必备命令,当然Linux命令还有很多,后面章节会随时学习新的命令。

17 vi|vim编辑器

vi是一个命令行界面下的文本编辑工具,最早在1976年由Bill Joy开发,当时名字叫做ex。vi支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大

1991年Bram Moolenaar基于vi进行改进,发布了vim,加入了对GUI的支持。

随着VIM更新发展,vim已经不是普通意义上的文本编辑器,而是被广泛的作为在文本编辑、方本处理、代码开发等用途,Linux中主流的文本编辑器包括:vi、vim、sublime、emacs、light table、eclipse、gedit等。

vim强大的编辑能力中很大部分是来自于其普通模式命令。vim的设计理念是命令的组合。

  • “5dd”5表示总共5行,删除光标所在后的5行,包含光标行;
  • “d$” $"代表行尾,删除到行尾的内容,包含光标;
  • “2yy”表示复制光标及后2行,包括光标行;
  • “%d” %代表全部或者全局,%d表示删除文本所有的内容,也即是清空文档所有的内容。

vim是一个主流开源的编辑器,其默认执行vim命令,会显示帮助乌干达贫困的孩子,如图为vim与键盘键位功能对应关系:

17.1 vim编辑器模式

Vim编辑器模式常用有三种,分别是:

  • 命令行模式;
  • 文本输入模式;
  • 末行模式。

vim是vi的升级版本,它是安装在Linux操作系统中的一个软件,官网为:www.vim.org

在Linux Shell终端下默认执行vim命令,按Enter键后:

  • 默认进入命令行模式;
  • 在命令行模式按i进入文本输入模式;
  • 按ESC进入命令行模式;
  • 按:进入末行模式。

17.2 vim编辑器必备

vim 编辑器最强大的功能,就在于内部命令及规则使用,如下为vim编辑器最常用的语法及规则:

命令行模式:可以删除、复制、粘贴、撤销,可以切换到输入模式,输入模式跳转至命令行模式:按ESC键。
yy                         复制光标所在行;
nyy                        复制n行;
3yy                        复制3行;
p,P                        粘贴;
yw                         复制光标所在的词组,不会复制标点符号;
3yw                        复制三个词组;
u                          撤消上一次;
U                          撤消当前所有;
dd                         删除整行;
ndd                     删除n行;
x                          删除一个字符;
u                          逐行撤销;
dw                         删除一个词组;
a                        从光标所在字符后一个位置开始录入;
i                        从光标所在字符前一个位置开始录入;
I                        从光标所在行的行首开始录入;
o                        跳至光标所在行的下一行行首开始录入;
O                        跳至光标所在行的上一行行首开始录入;
末行模式主要功能包括:查找、替换、末行保存、退出等;
:w                        保存;
:q                        退出;
:s/x/y                  替换1行;
:wq                     保存退出;
1,5s/x/y                 替换1,5行;
:wq!                    强制保存退出;
1,$sx/y                 从第一行到最后一行;
:q!                        强制退出;
:x                        保存;
/word                    从前往后找,正向搜索;
?word                    从后往前走,反向搜索;
:s/old/new/g              将old替换为new,前提是光标一定要移到那一行;
:s/old/new                将这一行中的第一次出现的old替换为new,只替换第一个;
:1,$s/old/new/g            第一行到最后一行中的old替换为new;
:1,2,3s/old/new/g          第一行第二行第三行中的old改为new;

​ 欢迎关注我的微信公众号【超哥的IT私房菜】获取更多技术干货!

​ 有什么吐槽或反馈意见,直接告诉我! ​ 我会解决您说的问题,进一步更好的服务您哦!

欢迎关注我的微信公众号【超哥的IT私房菜】获取更多技术干货! 有什么吐槽或反馈意见,直接告诉我! 我会解决您说的问题,进一步更好的服务您哦!

Linux云计算-03_必备基础命令相关推荐

  1. linux云自动化运维,Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程...

    Liunx运维一线大神亲授 全新Linux云计算运维基础与Linux Shell自动化运维实战课程 全新Linux云计算运维基础与Linux Shell自动化运维实战课程,由于国内一线大神亲自授课与教 ...

  2. Linux最常用的基础命令 下篇

    Linux最常用的基础命令个人总结 shell脚本 脚本就是:写一堆指令存成一个文本,用于完成一些小任务 a="123" linux中定义一个变量 echo $a echo $b ...

  3. Linux最常用的基础命令

    Linux最常用的基础命令个人总结 计算机基础知识: 32bit和64bit系统的区别.系统运行机制 32bit=内存的最大寻址空间是2**32,也就是说最大只能使用4GB的内存 64bit=内存的最 ...

  4. Linux最常用的基础命令 上篇

    Linux最常用的基础命令个人总结 计算机基础知识 32bit和64bit系统的区别.系统运行机制 1989年python 诞生 C语言是编译型的语言,不太支持跨平台 Django 江购 32bit= ...

  5. Linux自学之旅-基础命令(locate命令)

    Linux自学之旅-基础命令(locate文件搜索命令) 文章目录 前言 一.locate使用 二.locate查找过程 总结 前言 1.上一节我们讲述了whereis和which搜索命令,主要说了两 ...

  6. Linux让命令居中,Linux 中常用的基础命令

    Linux 中常用的基础命令 ============================================================================== 概述: == ...

  7. Linux自学之旅-基础命令(shutdown关机重启命令)

    Linux自学之旅-基础命令(shutdown) 文章目录 前言 一.shutdown能做什么? 二.shutdown使用 1.关机 2.重启 总结 前言 1.上一节我们讲述了tar命令用来打包并压缩 ...

  8. Linux自学之旅-基础命令(压缩解压缩命令之bzip2命令)

    Linux自学之旅-基础命令(bzip2命令) 文章目录 前言 一.bzip2命令 二.bunzip2命令 总结 前言 1.上一节我们讲述了第二个压缩包格式gz,还没看的可点击下方链接进入观看:gzi ...

  9. [RedHat笔记]第一课:Linux的发展史 以及 基础命令的使用

    计算机发展史: ------------------------------------------------------------------ 主要的架构(Arch)  : x86,x86_64 ...

最新文章

  1. opencl filtering整理
  2. jQuery对表单元素的取值和赋值操作代码
  3. window的文件能在linux,在Linux和Window系统中生成任意大小文件
  4. mysql查询正在执行的存储过程,[转]ms sql server 存储过程,查看正在执行的sql语句...
  5. 安卓 android:windowsoftinputmode,Android:windowSoftInputMode="adjustResize"无效解决方法
  6. python web django base skill
  7. date js 半年_moment.js 搜索栏获取最近一周,一个月,三个月,半年,一年时间
  8. where、having、group by、order by、limit的区别和使用顺序
  9. shell脚本 猜数字游戏并计数比较次数
  10. 关于JXL读写以及修改EXCEL文件转
  11. Oracle 写存储过程的一个模板还有一些基本的知识点
  12. mysql配置文件 my.ini
  13. CodeForce 855B 暴力or线段树
  14. Java加密方式(AES,DES,RSA,DSA,MD5)
  15. 在计算机操作中粘贴的快捷键是什么,键盘按什么键复制粘贴 键盘上复制粘贴快捷键是哪个键...
  16. MySQL学习笔记.安全管理
  17. 服务器安全值得深思的几点问题?
  18. 系统动力学视角的智慧城市模型研究
  19. 计算机大学四年该如何努力学习?
  20. [已解决]mysql查询一周内的数据,解决一周的起始日期是从星期日(星期天|周日|周天)开始的问题

热门文章

  1. 手机用蓝牙键盘好使吗_平板手机上能不能用蓝牙键盘 平板手机的蓝牙键盘使用方法...
  2. c语言程序填空怎么给分,C语言程序填空题-20分
  3. 阿里云服务器IIS网站快照被入侵导致违规URL通知
  4. leetcode.84 leetcode739. 每日温度(都是单调栈)
  5. 多益网络社招iq_【多益网络技术面试】岗位就不说了,社招网申填简历。-看准网...
  6. 关于IDEA的省电模式
  7. 企业软文营销如何断时间生效满足即时时代
  8. 美国科学家团队在半导体芯片上展示分子电子传感器
  9. Windows开启winrm服务
  10. 1138:将字符串中的小写字母转换成大写字母