从现在开始我们将不会看到图形化操作界面了,对服务器来讲,图形界面会占用更身的系统资源,而且会安装更多的服务、开放更多的端口,这对服务器的稳定性和安全性都有负面影响。但是,大家要理解,对服务器来讲,稳定性、可靠性、安全性才是最主要的。而简单易用不是服务器需要考虑的事情,所以学习Linux,这些枯燥的命令是必须学习和记忆的内容

一:命令的基本格式

1、命令提示符

  1. 登录系统后,第一眼看到的内容是:<br />[root@localhost ~]#<br /> 这就是Linux系统的命令提示符。那么,这个提示符的含义是什么呢?
  2. ●[]:这是提示符的分隔符号,没有特殊含义。
  3. root: 显示的是当前的登录用户,目前使用的是root用户登录。
  4. ●@:分隔符号,没有特殊含义。
  5. localhost: 当前系统的简写主机名(完整主机名是localhost.localdomain)
  6. ●~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。(一般是/root)
  7. ●#:命令提示符,Linux用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是#;如果是普通用户,提示符就是$

家目录是什么?

Linux系统是纯字符界面,用户登录后,要有一个初始登录的位置,这个初始登录位置就称为用户的家。

●超级用户的家目录: /root/

●普通用户的家目录: /home/用户名

2、命令基本格式

  1. 接下来看linux中命令的基本格式:

[root@localhost ~]# 命令 [选项] [参数]

命令格式中的[]代表可选项,也就是有些命令可以不写选项或参数,也能执行。那么,我们就用Linux中最常见的Is命令来解释一下命令的格式。如果按照命令的分类,那么ls命令应该属于目录操作命令。

[root@localhost ~]# ls
anaconda-ks.cfg

2.1.选项的作用

Is命令之后不加选项和参数也能执行,不过只能执行最基本的功能,即显示当前目录下的文件名。那么加入一个选项,会出现什么结果?
[root@localhost ~]# ls -l
总用量4
-rw———-. l root root 1213 9月 3 15:43 anaconda-ks.cfg

3、命令解析

什么是shell?

  1. shell是系统和计算机硬件交互时使用的中间介质,是系统的-个工具。在shell和计算机硬件之间还有一个系统内核。用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell, shell再传输给 系统内核,接着内核再去支配计算机硬件去执行各种操作。通俗一点来说,shell充当来用户与计算机之间的翻译官角色。
  2. 可以将shell看作是一种语言名称,具体的语法遵循bash等的规定。
  3. mac系统自带的Terminal或者自行安装的iTerm2都是标准的shell环境。

什么是bash?

  1. bashshell版本的一种。在查看系统/etc/shells文件中的内容时,可以看到有多种shell类型,
  2. bash, csh, ksh, sh等,而Linux系统中默认的shellbash,即Bourne Again Shell,是sh (Bourne Shell)的增强版本。sh是最早流行起来的shell.

bash的特点
bash有以下一些特点:

●记录命令历史
用户在linux系统中敲过的命令会保存在用户的家目录中的.bash_ history文件中,只有当用户正常退出shell时,在当前 shell中运行的命令才会保存,异常退出时,命令无法保存。

●指令和文件名补全
按tab键,可以帮你补全-一个指令,也可以补全路径或文件名,若连续按两次tab键,系统会把所有的指令或文件名列出来。
●别名
可以通过alias把一个常用的并 且很长的命令进行指定别名,使用unalias解除别名功能。
直接敲alias会看到系统预设的alias.

命令别名设置功能
添加指定命令别名: alias

临时生效alias目标命令名称=’需要执行的命令’ alias hh=ls

删除指定的命令别名: unalias

当前用户永久有效 vim ~/.bashrc ; source .bashrc使其生效

所有用户均可用的命令别名: vim /etc/bashrc; source /etc/bashrc

●通配符
在bash下,可以使用*来匹配0个或多个字符,而用?匹配-个字符。
●输入输出重定向
输入重定向用于改变命令的输入,输出重定向用于改变命令的输出。
输入重定向命令为<;
输出重定向命令为>;(即覆盖文件)
追加重定向命令为>>;(即追加文件)

●管道符
‘|’把前面命令运行的结果给后面的命令
●作业控制
当运行一个进程时,可以使用Ctrl+z暂停, 然后使用fg命令恢复,使用bg命令放到后台运行,使用Ctrl+c终 止。

2.2、参数的作用

  1. 参数是命令的操作对象,-般文件、目录、用户和进程等可以作为参数被命令操作。例如:

[root@localhost ~]# ls -l anaconda-ks.cfg

-rw———-. 1 root root 1213 9月 3 15:43 anaconda-ks.cfg

  1. 但是为什么-开始Is命令可以省略参数?那是因为有默认参数。命令-般都需要加入参数,用于指定命令操作的对象是谁。如果可以省略参数,则一般都有默认参数。例如:

[root@localhost ~]# ls
anaconda-ks.cfg

  1. 这个Is命令后面没有指定参数,默认参数是当前所在位置,所以会显示当前目录下的文件名。

4、命令使用技巧

4.1、善于利用TAB键

  1. linux中,利用tab键可以自动不齐命令或路径,从而提高工作效率,通过键盘输入命令后按下Tab键,即可补齐命令的后半截,当命令不唯一时, 屏幕不会进行命令不全,例如输入s,按下tab屏幕不会自动补全,因为以s开头的命令不止一个,此时连续按两次tab键,既可以显示所有以这个开头的所有命令,供于我们所选择

4.2、使用命令历史

  1. linux中输入的命令会被记录,对于已经输入过的命令可以直接调用历史命令记录,使用命令历史最简单的方法就是通过上下键来翻阅历史命令,调用某一行命令可以使用!32 来调用

4.3、适当清屏

  1. 使用Ctrl +|或者输入clear来清屏

总结:
命令的选项是用来调整命令的功能,命令的参数是这个命令的操作对象

二:基本命令

1:查看其切换目录

  1. 文件或者目录的路径指定其唯一的文件系统位置, 跟随文件路径会遍历一个或多个指定的子目录,用正斜杠(/) 分割,直到到达目标位置,目录也称为文件夹,包含其他文件和子目录,他们的引用方式可以与文件相同。

绝对路径: 绝对路径是一个完全限定的名称,用于指定文件在文件系统层次结构中的确切位置,它从根((/)目录开始,并指定为到达特定文件所必须遍历的每个子目录,文件系统中的每个文件都有一个唯一 绝对路径,可通过一个简单的规则识别:第一个字符是正斜杠(/)的路径是绝对路径,例如。系统消息日志文件的决定路径是/var/log/message。

相对路径: 相对当前所在路径的位置,例如当前所在的位置为/usr,也就是在根目录的usr子目录下,则chsh文件 相对当前位置的路径为: bin/chsh

在路径中有一些特殊符号说明:

~家目录/root /home/redhat

~ USERNAME(root用户有权限) 直接切换到指定用户的家目录

-在上一个目录和当前目录来回切换

. 当前目录

.. 上一级目录

1.1: Is

功能描述: 列表 (List) 显示目录内容
语法: Is [选项] [文件/目录]

选项: -a 显示所有文件, 包括隐藏文件与目录

  1. -l 长格式详细信息显示 (ll)
  2. -d 查看目录属性,而非目录下的资料信息
  3. -h 人性化显示容量信息
  4. -c 显示文件或目录属性最后修改的时间
  5. -t 以修改时间排序,默认按照文件名称排序<br /> -u 显示文件或目录最后被访问的时间

[root@localhost ~]# ls #显示当前目录下的子文件与目录名称
[root@localhost ~]# ls /etc #显示/etc目录下的子文件与目录名称
[root@localhost ~]# ls -a #查看以 . 开始的隐藏文件与目录
[root@localhost ~]# ls -l #查看文件与目录的详细信息
[root@localhost ~]# ls -ld /root #查看当前root目录自身的详细信息
[root@localhost ~]# ls -lh #人性化显示容量信息
[root@localhost ~]# ls -lc /etc/passwd #查看/etc/passwd文件的属性变更时间
[root@localhost ~]# ls -lu /etc/passwd #查看/etc/ passwd最后访问时间
[root@localhost ~]# ls -lt #查看档案信息并以修改时间排序
**

1.2: cd

功能描述:切换目录,其中 . 和..可以理解为相对路径,例如cd ./test表示以当前目录为参考,表示相对于当前,而 cd /home/test表示完整的路径,理解为绝对路径)
语法: cd [目录]
范例:
[root@localhost ~]# cd /usr/local/ #切换工作目录到/usr/local/
[root@localhost ~]# cd . . #切换工作目录到当前目录的上一级目录
[root@localhost usr]# cd - #返回到/usr/local目录
[ root@localhost local]# cd #切换工作目录到当前用户的家目录(或使用命令cd ~ )
[root@localhost~]#

1.3: pwd

功能描述:显示当前所在的工作目录
语法: pwd [选项]
选项:
-P 显示链接的真实路径
范例:
[ root@localhost bin]# pwd #表示返回当前工作目录/bin
/bin
[root@localhost bin]# pwd -P #表示返回链接的真是路径/usr/bin
/usr/bin

1.4: du

功能描述:统计目录及文件的空间占用情况
语法: du [选项] [文件或目录]
选项:
-a:统计时包括所有的文件,而不仅仅只统计目录
-h: 以更易读的字节单位(K、 M等)显示信息
-s:只统计每个参数所占用空间总的大小
范例:
[ root@localhost ~]# du -sh / #查看根目录大小

2:创建目录和文件

文件命名规则:
(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
(2)文件名不能超过255个字符
(3)区分大小写file File FILE fIle
(4) 目录也是文件,在同一路径下,两个文件不能同名

2.1: touch

功能描述:新建空文件,或更新文件时间标记
语法: touch [文件名]
范例:
[root@localhost ~]# touch hellotest.txt #创建一个名字为hellotest.txt文件
[root@localhost ~]# ll
总用量4
-rw———-. 1 root root 1213 9月 3 15:43 anaconda-ks .cfg
-rw-r—r—.1 root root 0 9月 11 10:13 hellotest.txt #10:13
[root@localhost ~]# touch hellotest.txt #修改名字为hellotest. txt文件的时间
[root@localhost ~]# ll
总用量4
-rw———-.1 root root 1213 9月 3 15:43 anaconda-ks.cfg
-rw-r—r—.1 root root 0 9月 11 10:14 hellotest.txt #10:14

2.2: mkdir

  1. 功能描述: 创建新的目录(Make Directory)<br />** 语法:** mkdir [选项] [/路径/]目录名<br /> 选项:<br /> -p 创建多级目录<br />范例:<br />[root@localhost ~]# mkdir 123 #创建了一个目录123<br />[root@localhost ~]# ls<br />123 anaconda-ks.cfg hellotest.txt<br />[root@localhost ~]# mkdir -p aaa/bbb/ccc/ddd #创建了层级目录aaa/bbb/ccc/ddd<br />[ root@localhost~]# tree ./ #这个命令后面在学,用来显示目录层级信息<br />./<br />├─ 123<br />├─ aaa<br />│ └─ bbb<br />│ └─ ccc<br />│ └─ddd<br />├─anaconda-ks.cfg<br />└─ hellotest.txt

5 directories, 2 files
[root@localhost ~]#

2.3: In

  1. Linux中的链接文件不同于windows的快捷方式,linux的链接文件份为软链接和硬链接。软链接是可以跨分区,但源文件不可删除,硬链接不可以跨分区,但可以将源文件删除<br />** *软链接: ***<br />** 格式: In-s 原文件 链接文件 (目标文件) ****<br /> \1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式<br /> 2.软链接**可以跨文件系统**,硬链接不可以<br /> 3.软链接可以对一个不存在的文件名进行链接<br /> 4.软链接可以对目录进行链接

硬链接
格式: In 原文件 链接文件
\1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
\4.可以以不同的文件名中存在同一个目录中,或者以相同的文件名存在于不同的目录下
5.建立硬链接时,在另外的目录或本目录中增加目标文件的一一个目录项,这样,一个文件就登记在多个目录中。

#软链接
[root@localhost ~]# touch hello. txt
[root@localhost ~]# ln -s /root/hello.txt /tmp/hi.txt #创建文件的软链接
[root@localhost ~]# ll /tmp/hi.txt
1rwxrwxrwx. 1 root root 15 9月 11 11:33 /tmp/hi.txt -> /root/hello.txt
[ root@localhost ~]# mkdir test
[ root@localhost ~]# ln -s /root/test/ /var/test #创建目录的软链接
[root@localhost ~]# ll /var/test
1rwxrwxrwx. 1 root root 11 9月 11 11:33 /var/test -> /root/test/

#硬链接
[root@localhost ~]# ln /root/hello.txt /root/hello-1. txt #创建硬链接
[root@localhost ~]# rm -rf hello.txt #源文件删除后,链接文件仍可以正常使用
[ root@localhost ~]# ll /root/hello-l. txt
-rw-r--r--. 1 root root 0 9月 11 11:32 /root/hello-1. txt

stat # 显示出文件的详细内容 inode
find / -inum inode_ ID

3:复制、删除、移动目录和文件

3.1: cp

  1. 功能描述: 复制 (Copy) 文件或目录<br />**语法: ** cp [选项]...源文件或目...目标文件或目录<br /> 选项:<br /> -r: 递归复制整个目录树<br /> -p: 保持源文件的属性不变<br /> -f: 强制覆盖目标同名文件或目录<br /> -i: 需要覆盖文件或目录时进行提醒

[root@localhost ~]# cp /etc/passwd /tmp/ #复制文件/etc/passwd 到/tmp目录 下
[root@localhost ~]# cp /etc/passwd /tmp/password #复制文件/etc/passwod 到/tmp目录下并改名为password
[``roo``t@localhost ~]# cp -r /var/1og/ /tmp/ #复制目录/var/log 到/tmp/目录下

3.2: mv

功能描述: 移动 (Move) 文件或目录 若如果目标位置与源位置相同,则相当于改名
语法: mv [选项]… 源文件或目录… 目标文件或目录
范例:
[ root@localhost~]# mv hellotest. txt hellotest .doc #将hellotest . txt改名为hellotest . doc
[root@localhost ~]# mv hellotest .doc 123/ #将hellotest . doc移动到123目录下

3.3: rm

  1. 功能描述: 删除 (Remove) 文件或目录<br />** 语法:** rm [选项] [文件或目录]<br /> 选项:<br /> -r 删除目录以及目录下的所有内容<br /> -i 删除前, 提示是否删除<br /> -f 不提示,强制删除<br />范例:<br />[root@localhost ~]# touch test.txt #创建了一个名为test. txt的文件<br />[root@localhost ~]# rm test .txt #删除文件test.txt<br />rm:是否删除普通空文件‘ test.txt'? y #输入y确认删除“也是”<br />[ root@localhost -]# rm -rf 123/ #删除目录且不提示

4:查找目录和文件

4.1: which

功能描述:查找Linux命令 文件并显示所在的位置-一搜索 范围由PATH环境变量指定
语法: which命令或程序名
root@localhost ~]# which mkdir
/bin/mkdir
[ root@localhost ~]# echo $PATH
/usr/kerberos/ sbin:/usr/kerberos/bin: /usr/local/sbin:/usr/local /bin:/sbin:/bin:/usr/sbin:/usr/bin:/ root/bin
[ root@localhost ~]# which cd #cd是She11内部命令,因此查不到对应文件
/usr/bin/which: no cd in
(/usr/kerberos/sbin: /usr/kerberos/bin: /usr/ local/sbin:/usr/1ocal/bin:/sbin: /bin:/usr/sbin: /usr/bin:/root/bin)

4.2: whereis

功能描述:该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
语法: whereis命令
选项:
-b 只查找二进制文件
-m 只查找 说明文件
#使用指令"whereis“查看指令"bash"的位置,输入如下命令:
[ root@rhcsa-l~]# whereis bash
bash: /usr/bin/bash /usr/ share/man/ man1/bash.1.gz /usr/share/ info/bash. info.gz
注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。
[root@rhcsa-l ~]# whereis -b bash
bash: /usr/bin/bash
[root@rhcsa-l ~]# whereis -m bash
bash: /usr/ share/man/man1/bash.1.gz /usr/share/ info/bash. info.gz

4.3: locate

功能描述:命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
语法: locate your. file_ name
选项:
-i 忽略大小写
默认在redhat8中默认不支持locate命令需要安装mlocate包
[ root@rhcsa-l ~]# locate passwd
#忽略大小写搜索当前用户目录下所有以r开头的文件:
[ root@rhcsa-l ~]# locate -i -/r
#搜索etc目录下所有以sh开头的文件
[root@rhcsa-l ~]# locate /etc/sh
whereis和locate都是利用数据库查找数据(Linux系统会 将系统内的所有文件都记录在数据库文件里面,当使用whereis和locate进行查找时,都会以此数据库的内容为准)
数据库文件/var/ib/mlocate/mlocate.db
数据库的创建默认是每天执行一次,不同的发行版不一样

4.4: find

功能描述:用于查找文件或目录
语法: find [path] -option
选项:
常用查找条件
-name 按文件 名称查找
-size 按文件大小查找
-user 按文件属主查找
-type 按文件类型查找
■f:文件
■d:目录
■l:符号链接

高级查找条件
-prem 按权限进行查找
-ctime (-cmin) 按文件创建时间(天为单位)查找
-atime (-amin) 按访问时间查找
-mtime (-mmin) 修改时间查找
-maxdepth 限制find的递归层级
-! 取反操作
-exec 查找后再执行操作

find / -type d -empty #检索用户主目录下所有的空目录

#反义匹配
find /usr -type f ! -name '*.txt' #检索/usr下所有文件名不以.txt 为后缀的文件

#按照时间相关
-mtime 2 : 该文件2天前被修改过
-mtime -2: 该文件2天以内被修改过
-mtime +2: 该文件距离上次修改已经超过2天时间
find /usr -type f -mtime +50 -mtime -100 #检索/usr下50到100天之前修改过的文件
find /usr -type f -mtime 2 -amin 5 #检索/usr下两天前被修改过且5分钟前又读取过的文件

#按照文件大小查找
#表示文件大小的单位由以下字符组成(使用+或一符号表示大于或小于当前条件)
c:字节
k: KB
4: MB
G: GB
find / -size +1G检索文件大小高于1 GB的文件

#按照权限查找
find /usr -perm 644 #搜索/usr目录下权限为644 (即rwxr-xr-x) 的文件

#限制递归层级
# find命令默认是以递归的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用-maxdepth 限制find命令递归的层数。
find / -maxdepth 3 #搜索时向下递归的层数最大为3

#逻辑组合
# find 命令支持"and"和"or” 两种逻辑运算,对应的命令选项分别是-a和-0通过这两个选项可以对搜索条件进行更复杂的组合。

#``执行自定义命令
-exec命令{} \;
find ~ -type f -exec grep -1 root {} \;
find /etc -name “为”| xargs grep "root" #查找/etc下name所有 过滤出内容包含hello的文件内容

5:查看文件内容

5.1: cat

功能描述:显示文件内容
语法: cat [选项] [文件]
选项:
-b 显示行号,空白行不显示行号。
-n 显示行号, 包括空白行
范例:
[ root@localhost~]# cat /etc/services
[ root@localhost ~]# cat -n /etc/services
[ root@localhost ~]# cat -b /etc/services

5.2: more

功能描述:全屏方式分页显示文件内容
语法: more [选项]文件名… .
(空格) 或 f 显示下一页
(Enter) 显示下一 -行
q或Q 退出

5.3: head

功能描述:查看文件的机几行,默认显示前10行内容。
语法: head [选项文件名]
选项:
-cnK 显示文件前nKB的内容
-n 显示文件的前n行的内容
范例:
[root@localhost ~]# head -c 2k /var/log/messages #查``看文件的前2KB的内容
[root@localhost ~]# head -20 /var/log/messages #查``看文件的前20行的内容

5.4: tail

功能描述:查看文件的尾部内容,默认显示末尾10行
语法: tail [选项] [文件]
选项:
-n 显示文件的后n行,
-f 动态显示文件内容
-c nK 显示文件末尾nKB的内容

范例:
[root@localhost ~]# tail -c 2K /var/log/messages #查看文件未尾2B的内容
[root@localhost ~]# tail -20 /var/log/messages #查看文件末尾20行内容
[root@localhost ~]# tail -f /var/log/messages #实时动态查看文件内容

5.5:less

功能描述:查看分页文件内容,空格(下一页)、方向键(上下回翻)、q键(退出查看)

6:统计文件内容

6.1: wc

功能描述: 统计文件中的单词数量(Word Count)等信息
语法: wc [选项].. 目标文件…
选项:
-l 统计行数
-w 统计单词个数
-c 统计字节数
[ root@localhost ~]# wc /etc/passwd #依次显示文件的行数、单词数、字节数
23 49 1147 /etc/ passwd
[ root@localhost ~]# wc -c /etc/passwd #显示文件的字节信息
1147 /etc/passwd
[ root@localhost ~]# wc -1 /etc/passwd #显示文件的行数
23 /etc/ passwd
[rootelocalhost ~]# wc -w /etc/passwd #显示文件的单词个数
49 /etc/passwd

7:检索和过滤文件内容

7.1: grep

功能描述:在文件中查找并显示包含指定字符串的行
语法: grep [选项]..查找条件 目标文件
常用命令选项:
-i 查找时忽略大小写
-v 反转查找,输出与查找条件不相符的行
-l 列出文件内容符合 指定的样式的文件名称。
-An 搜索时显示匹配到的那-行以及下n行
-Bn 搜索时显示匹配到的那-行以及上n行
-Cn 搜索时 显示匹配到的那一行以及上下n行

查找条件设置
要查找的字符串以双引号括起来
“^…..”表示以…….开头
“……$”表示以…..结尾
“^$”表示空行
[root@localhost ~]# grep root /etc/ passwd #在/etc/passwd文件中过滤出包含root的行
[root@locahost ~]# grep —color root /etc/passwd #对匹配的关键字显示颜色
[root@localhost ~]# grep -i ROOT /etc/passwd #不区分大小写
[root@localhost ~]# grep -v root /etc/pagswd #反向过滤

7.2: cut

功能描述:命令用于显示每行从开头算起num1到num2的文字。
语法: cut [选项]
选项:
-b : 以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了-n标志。
-c : 以字符为单位进行分割。
-d : 自定义分隔符,默认为制表符。
-f : 与-d一起使用,指定显示哪个区域。
-n : 取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的List参数指示的范围之内,该字符将被写出;否则,该字符将被排除

打印/etc/passwd文件中每一 行的第一个字段。
[root@rhcsa-l ~]# cut -d “ : “ -f 1 /etc/passwd
root
bin
daemon
. . .
[root@rhcsa-l ~]# grep ‘ /bin/bash’/etc/passwd | cut -d “:” -f 1,6
root: /root
redhat: /home/ redhat
xiaohong: / home/ xiaohong

思考:
如何过滤出机器的IP地址?

7.3: sort

功能描述:用于将文本文件内容加以排序。
语法: sort [选项] [文件] .
选项:
-b 忽略每行前 面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外, 忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照 月份的缩写进行排序。
-n 依照数值的大小排序。
-k 定义排序键值字段
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件>将排序后的结果存入指定的文件。
-r 以相反的顺序来排序 。
-t<分隔字符>指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位>以指定的栏位来排序,范围由起始栏位到结束栏位的前一-栏位。
—help显示帮助。
—version 显示版本信息。
按照数值大小排序: sort -n文件名
排序并去掉重复的: sort -u文件名
逆序排序: sort -r文件名
按照用户uid数字大小排序显示:
sort -t指定分隔符 -k 指定第几列 -n /etc/passwd

8:归档和压缩命令

8.1: gzip命令、bzip2命令

用途:制作压缩文件、解开压缩文件
命令格式:
gzip [-9] 文件名…
bzip [-9] 文件名…
gzip -d .gz格式的压缩文件
bzip2 -d *.bz2格式的压缩文件

常用命令选项
-9 表示高压缩比,多在创建压缩包时用
-d 用于解开已经压缩过的文件

8.2: tar命令

用途:制作归档文件、释放归档文件
格式: tar [选项…归档文件名源文件或目录
tar [选项]… 归档文件名[-C 目标目录]
常用命令选项
-c 创建.tar格式的包文件
-x 解开.tar格式的包文件
-V 输出详细信息
-f 表示使用归档文件
-p 打包时保留原始文件及目录的权限.
-t 列表查看包内的文件
-C解包时指定释放的目标文件夹
-z 调用gzip程序进行压缩或解压
-j 调用bzip2程 序进行压缩或解压

[root@localhost ~]# tar -cjvf test.tar .bz2 /etc/httpd/
tar:从成员名中删除开头的“/”
[ root@localhost~]# ls -lh test. tar .bz2
-rw-r—r— 1 root root 21K 09-09 01:19 test. tar .bz2
[ root@localhost~]# tar jxf test.tar.bz2 -C /tmp
[ root@localhost ~]# ls -ld /tmp/etc/httpd/
drwxr-xr-x 4 root root 4096 09-08 16:37 /tmp/etc/httpd/
[ root@localhost ~]# rm -rf /tmp/etc/

8.3:如何从linux服务器上传/下载文件

1、客户端是linux的操作系统
从服务器下载普通文件:
scp 用户名@目标IP地址:文件名 目录名
向服务器上传文件:
scp 要上传文件的全路径 用户名@目标IP地址: 文件名
2、客户端是windows的操作系统
从windows向linux上传: rz或者xftp工具
从linux下载文件: sz 文件路径或者xftp工具

9:帮助命令

man手册分段
NAME 命令名称及功能简要说明
SYNOPSIS 格式说明,用法说明,包括可用的选项DESCRIPTION,命令功能的详尽说明,可能包括每一个选项的意义
DESCRIPTION 选项,说明每一一个选项的意义
AUTHOR 作者
REPORTING BUGS bug反馈
COPYRIGHT 版权
SEE ALSO 参见
man手册章节
一般从1 到9哪个章节先出现就显示哪个,如man mount就显示第8章节,那如何知道命令有哪些章节呢?用whatis read去查看
如man read, man 2 read
1 可执行程序或用户 命令/bin,/usr/bin,/usr/local/bin
2 系统内核可调用的函数与工具
3 c库调用
4 特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容
5 文件格式,配置文件的格式说明,举例passwd
6 games, 游戏,休闲益智类的游戏使用帮助
7 杂项, 不便归类的杂项,Miscellaneous
8 系统管理 员可用的管理命令,/sbin,/usr/sbin,/usr/local/sbin
9 跟kernel有关的文件
man手册符号说明: **
[]表示可选内容
<>必须提供的内容
a | b | c多选一
…同类内容可出现多个
{} 分组
翻屏
下翻一页 空格
上翻一页 b
.下翻一行 回车
上翻一行 k
查找关键字
/KEYWORD 向后
n 下一个
N 前一个
? KEYWORD
N下一个
n 上一个
退出
q

9.1:man

命令名称: man
语法: man [命令或配置文件」
功能描述:获得帮助信息
范例:
$ man ls
……
NAME
ls — list directory contents
SYNOPSIS
ls [-ABCFGHLOPRSTUW@ abedefghik1mnopqrstuwx19] [file …】
DESCRIPTION
For each operand that names a file of a type other than directory, ls
displays its mume as well as any requested, associated information,For
each operand that names a file of type directory, ls displays the names
of files contained within that directory, as well as any requested, asso-
ciated information .

If no operands are given, the contents of the current directory are dis-
played.
If more than one operand is given, non-directory operands are
displayed first; directory and non-directory operands are sorted sepa-
rately and in lexicographical order .
……
$ man services
查看配置文件services的帮助信息
其中,NAME为命令的名称与简单藐视
SYNOPSIS 为命令的语法格式
DESCRIPTION为命令的详细描述,后面一般为命令的俄具体选项以及功能描述
通过这种方法可以找到绝大多数命令的用法与描述,
空格键 表示向下翻页
q键 表示退出man手册
在查看命令手册的过程中,随时可以通过</关键字>来搜索你需要的内容(不包含尖括号),如/file 查看包含file的行,按键盘上的n键
查看下一行。

9.2: info

指令名称: info
语法: info [任何命令]
功能描述:获得帮助信息
范例:
$ info ls
查看ls指令的帮助信息

三: Vim文档编辑

文本编辑器的作用
创建或修改文本文件
维护Linux系统中的各种配置文件
Linux中最常用的文本编辑器
vi: 类Unix系统中默认的文本编辑器
vim: vi编辑器的增强版本,习惯上也称为vi
yum -y install vim

1、vim工作模式

vim具有多种工作模式,常用的工作模式有 : 普通模式、插入模式、命令模式。
普通模式可以实现基本的光标移动于大量的快捷键操作
插入模式可以实现文本的基本编辑功能
命令模式通过输入特定的指令实现特定的功能,如保存与退出等
直接输入vim命令,即可开启该文本编辑器,默认将创建一个新的文档(保存时需要指定文件名)另外,如果vim命令后跟了文件名参数,则需要看该文件是否存在,如果存在,vim将打开该文件,如果不存在,vim将创建该文件。
vim编辑器默认会进入普通模式,插入模式可以通过以下按键进入:

a 进入插入模式,后续输入的内容将插入至当前光标的后面
A 进入插入模式,后续输入的内容将插入至当前光标的断尾
i 进入插入模式,后续输入的内容将插入至当前光标的前面
I 进入插入模式,后续输入的内容将插入至当前光标的段首
o 进入插入模式并在当前行的后面创建新的空白行
O 进入插入模式并在当前行的前面创建新的空白行

当需要退回到普通模式或不知道自己当前处于什么模式时,可以通过Esc键返回到普通模式。
最后,在普通模式下输入”:”,即可进入命令模式;在”:”后输入指令, 即可实现特定的功能

2、vim无标操作

vim中最简单的移动光标的方式是使用方向键(上、下、左、右)操作,但这种方式效率低下,更高效的方式是使用快捷键,常用的快捷键如下,需要注意的是所有的快捷键均在普通模式下直接使用

快捷键 功能描述
h 光标向左移动一位
j 光标向下移动一行(以回车为换行符)
k 光标向上移动一位
l 光标向右移动一位
gg 移动光标至文件首行
G 移动光标至文件末尾
nG 移动光标至第n行(n为数字, 如n为10时表示第10行)
^ 光标移至当前行的首字符
$ 光标移至当前行的尾字符
fx 光标移至当前行的下一个x字符处
Fx 光标移至当前行的上一个x字符处
w 光标向右移动一个单词
nw 光标向右移动n个单词(n为数字)
b 光标向左移动一个单词
nb 光标向左移动n个单词(n为数组)

3、vim编辑文档
在vim编辑器中编辑文档内容主要有两种常用的方式:进入编辑模式操作和快捷键操作。进入编辑模式后,即可以通过移动光标进行增加、删除、修改的基本操作,这种方法也是最简单的方式,另外,快捷键操作方式是在普通模式下输入相应的快捷键实现对应的功能,快捷键如下:

操作快捷键 功能描述
dd 删除一行
ndd 删除n行(n为数字)
d$ 删除光标至行尾的内容
j 删除换行符,可以将两行合并为一行
u 撤销上一-步操作,可以多次使用uu表示撤销两步操作
rx 将光标当前字符替换为x (x为任何键盘 单个输入)
yy 复制当前行
nyy 复制n行内容
P 粘贴至当前行之后
p 粘贴至当前行之前

4.vim的查找和替换
当文档很长时,我们可以通过查找快速定位要找的内容,在vim中通过”/“关键词实现自上往下的查找功能
如/host在当前文档的光标处向下查找host并显示,如果-个文档中有多个host,可以通过快捷键n跳转至下一个匹配的关键词处,快捷键N将跳转至上一个匹配的关键词处。
“?”关键词实现了自下往上的查找功能
如?host从房前文档的光标处向上查找host并显示,此时快捷键n表示查看上一匹配,N表示查找下一 个匹配。
vim提供了非常好用的替换功能,可以快速完成大量的替换工作
例如:
[root@localhost ~]# cp /etc/passwd /root
[root@localhost ~]# vim /root/passwd
通过.上面两条命令复制一份临时测试文档并编辑,我们可以对该文件实现多种替换功能

指令 功能描述
:s/root/admin/ 将光标当前行中第一个出现的root替换为admin,没有则不替换
:s/root/admin/g 将光标当前行中所有的root替换为admin
:3,5 s/sbin/bin/g 将第三行至第五行之间的所有sbin替换为bin
:% s/nologin/fault/g 将所有行的nologin都替换为fault

5、vim保存并退出
一般情况下, 我们会通过命令模式输入特定的质量实现保存与退出功能,如下:

指令 功能描述
:q! 不保存并退出
:wq 保存并退出
:x 保存并退出
:w 保存
:w b.txt 另存为b.txt

6、vim扩展小知识
6.1、显示行号
显示当前行是第几行的方式有很多,可以通过为文档添加行号来实现,添加行号的方法是在命令模式下输入
:set number或者简写为:set nu即可

6.2、忽略大小写
在vim中查找时,你可能不清楚所要找的关键词的大小写,而vim默认是区分大小写的,这个时候可以通过在命令模式下输入:setignorecase实现忽略大小写
6.2、忽略大小写
在vim中查找时,你可能不清楚所要找的关键词的大小写,而vim默认是区分大小写的,这个时候可以通过在命令模式下输入:setignorecase实现忽略大小写
6.3、多窗口编辑
当需要同时编辑多个文档时,分割窗口就尤为重要了,最简单的方式是在命令模式下输入:split如此可以实现编辑同-一个文档的不同行,至于窗口的切换,可以使用快捷键:
Ctrl+w+h | Ctrl+w+I
Ctrl+W+j | Ctrl+w+ki
Ctrl+w+h:快捷键表示跳转至左边-一个窗口
Ctrl+w+I:快捷键表示跳转至右边- 一个窗口
Ctrl+W+j:快捷键表示跳转至 上面一个窗口
Ctrl+w+k:快捷键表示跳转至下面一个窗口
在命令模式下输入:close, 可以关闭当前窗口
在命令模式下输入:split second.txt此命令会分割窗口并打开新的文件
如此实现多窗口多文件的编辑工作,默认的:split为水平分割窗口,垂直分割可以使用:vsplit指令。

6.4、执行shell命令
使用vim编辑文档的过程中,如需要执行一条shell命 令而不想退出vim编辑器,可以通过:{命令}的方式实现,例如,需要查看当前目录下档案的名称,则在命令模式下输入指令ls即可,执行完成后按回车键返回vim编辑器

6.5、自动补齐
如果需要输入的内容在前面的行中已经出现过,那么vim可以根据上文内容自动补齐输入,例如。在文件第三行定义了一个变量FIRST_ TIME=09。以后需要再次输入FIRST. _TIME时,可以仅输入FI后使用快捷键CtrI+N,实现自动补齐功能。