对服务器来讲,图形界面会占用更多的系统资源,而且会安装更多的服务、开放更多的端口,这对服务器的稳定性和安全性都有负面影响。但是,大家要理解,对服务器来讲,稳定性、可靠性、安全性才是最主要的。而简单易用不是服务器需要考虑的事情,所以学习Linux,这些枯燥的命令是必须学习和记忆的内容
登录系统后,第一眼看到的内容是:
[root@localhost ~]#
这就是Linux系统的命令提示符。那么,这个提示符的含义是什么呢?
接下来看linux中命令的基本格式:
[root@localhost ~]# 命令 [选项] [参数]
命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也能执行。那么,我们就用Linux中最常见的ls命令来解释一下命令的格式。如果按照命令的分类,那么ls命令应该属于目录操作命令。
[root@localhost ~]# ls
anaconda-ks.cfg
2.1、选项的作用
ls命令之后不加选项和参数也能执行,不过只能执行最基本的功能,即显示当前目录下的文件名。那么加入一个选项,会出现什么结果?
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1213 9月 3 15:43 anaconda-ks.cfg
在linux中,利用tab键可以自动不齐命令或路径,从而提高工作效率,通过键盘输入命令后按下 Tab键,即可补齐命令的后半截,当命令不唯一时,屏幕不会进行命令不全,例如输入 s ,按下tab屏幕不会自动补全,因为以s开头的命令不止一个,此时连续按两次tab键,既可以显示所有以这个开头的所有命令,供于我们所选择
在linux中输入的命令会被记录,对于已经输入过的命令可以直接调用历史命令记录,使用命令历史最简单的方法就是通过上下键来翻阅历史命令,调用某一行命令可以使用 !32 来调用
使用Ctrl +l 或者 输入 clear 来清屏
总结:
命令的选项是用来调整命令的功能, 命令的参数是这个命令的操作对象
文件或者目录的路径指定其唯一的文件系统位置,跟随文件路径会遍历一个或多个指定的子目录,用正斜杠(/)分割,直到到达目标位置,目录也称为文件夹,包含其他文件和子目录,他们的引用方式可以与文件相同。
绝对路径: 绝对路径是一个完全限定的名称,用于指定文件在文件系统层次结构中的确切位置,它从根(/)目录开始,并指定为到达特定文件所必须遍历的每个子目录,文件系统中的每个文件都有一个唯一绝对路径,可通过一个简单的规则识别:第一个字符是正斜杠(/) 的路径是绝对路径,例如。系统消息日志文件的决定路径是 /var/log/message。 绝对路径以 / 开头的
相对路径: 相对当前所在路径的位置,例如当前所在的位置为/usr,也就是在根目录的usr子目录下,则chsh文件相对当前位置的路径为:bin/chsh 相对路径不是以 / 开头的
功能描述:列表(List)显示目录内容
**语法:**ls. [选项] [文件/目录]
选项:
-a 显示所有文件,包括隐藏文件与目录
-l 长格式详细信息显示 ( ll )
-d 查看目录属性,而非目录下的资料信息
-h 人性化显示容量信息
-c 显示文件或目录属性最后修改的时间
-t 以修改时间排序,默认按照文件名称排序
-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 #查看档案信息并以修改时间排序
功能描述:切换目录,其中 . 和 … 可以理解为相对路径,例如 cd ./test 表示以当前目录为参考,表示相对于当前, 而 cd /home/test 表示完整的路径,理解为绝对路径)
语法:cd [目录]
范例:
[root@localhost ~]# cd /usr/local/ #切换工作目录到/usr/local/
[root@localhost local]# cd .. #切换工作目录到当前目录的上一级目录
[root@localhost usr]# cd - #返回到/usr/local目录
[root@localhost local]# cd #切换工作目录到当前用户的家目录(或使用命令 cd ~ )
[root@localhost ~]#
功能描述:显示当前所在的工作目录
语法:pwd [选项]
选项:
-P 显示链接的真实路径. (软连接)
范例:
[root@localhost bin]# pwd #表示返回当前工作目录 /bin
/bin
[root@localhost bin]# pwd -P #表示返回链接的真实路径 /usr/bin
/usr/bin
功能描述:统计目录及文件的空间占用情况
**语法:**du [选项] [文件或目录]
选项:
-a:统计时包括所有的文件,而不仅仅只统计目录
-h:以更易读的字节单位(K、M等)显示信息
-s:只统计每个参数所占用空间总的大小
范例:
[root@localhost ~]# du -sh / $查看根目录大小
[root@localhost /]# du -sh *
文件命名规则:
(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
(2)文件名不能超过255个字符
(3)区分大小写file File FILE fIle
(4)目录也是文件,在同一路径下,两个文件不能同名
功能描述:新建空文件,或更新文件时间标记
语法: 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
功能描述:创建新的目录(Make Directory)
语法: mkdir [选项] [/路径/]目录名
选项:
-p 递归创建多级目录
范例:
[root@localhost ~]# mkdir 123 #创建了一个目录123
[root@localhost ~]# ls
123 anaconda-ks.cfg hellotest.txt
[root@localhost ~]# mkdir -p aaa/bbb/ccc/ddd #创建了层级目录aaa/bbb/ccc/ddd
[root@localhost ~]# tree ./ #这个命令后面在学,用来显示目录层级信息
./
├── 123
├── aaa
│ └── bbb
│ └── ccc
│ └── ddd
├── anaconda-ks.cfg
└── hellotest.txt
5 directories, 2 files
[root@localhost ~]#
Linux中的链接文件不同于windows的快捷方式,linux的链接文件份为软链接和硬链接。软链接是可以跨分区,但源文件不可删除,硬链接不可以跨分区,但可以将源文件删除
软链接:
格式:ln -s 原文件 链接文件(目标文件)。一定要写绝对路径
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接 (报错红色的)
4.软链接可以对目录进行链接
硬链接:
格式: ln 原文件 链接文件(目标文件)
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
5.建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。
#软链接
[root@localhost ~]# touch hello.txt
[root@localhost ~]# ln -s /root/hello.txt /tmp/hi.txt #创建文件的软链接
[root@localhost ~]# ll /tmp/hi.txt
lrwxrwxrwx. 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
lrwxrwxrwx. 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-1.txt
-rw-r--r--. 1 root root 0 9月 11 11:32 /root/hello-1.txt
stat #显示出文件的详细内容 inode
功能描述:复制(Copy)文件或目录
**语法:**cp [选项]… 源文件或目录… 目标文件或目录
选项:
-r:递归复制整个目录树
-a 或-p:保持源文件的属性不变
-f:强制覆盖目标同名文件或目录
-i:需要覆盖文件或目录时进行提醒
[root@localhost ~]# cp /etc/passwd /tmp/ #复制文件/etc/passwd 到 /tmp目录下
[root@localhost ~]# cp /etc/passwd /tmp/password #复制文件 /etc/passwod 到 /tmp目录下并改名为password
[root@localhost ~]# cp -r /var/log/ /tmp/ #复制目录/var/log 到/tmp/目录下
功能描述:移动(Move)文件或目录 —— 若如果目标位置与源位置相同,则相当于改名
语法: mv [选项]… 源文件或目录… 目标文件或目录
范例:
[root@localhost ~]# mv hellotest.txt hellotest.doc #将hellotest.txt改名为hellotest.doc
[root@localhost ~]# mv hellotest.doc 123/ #将hellotest.doc移动到123目录下
功能描述:删除(Remove)文件或目录
语法: rm [选项] [文件或目录]
选项:
-r 删除目录以及目录下的所有内容(递归删除)
-i 删除前,提示是否删除
-f 不提示,强制删除
范例:
[root@localhost ~]# touch test.txt #创建了一个名为test.txt的文件
[root@localhost ~]# rm test.txt #删除文件test.txt
rm:是否删除普通空文件 'test.txt'?y #输入y确认删除 “也是”
[root@localhost ~]# rm -rf 123/ #删除目录且不提示
功能描述:查找Linux命令文件并显示所在的位置 —— 搜索范围由 PATH 环境变量指定
语法:which 命令或程序名
root@localhost ~]# which mkdir which ssh
/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是Shell内部命令,因此查不到对应文件
/usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
功能描述:该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。
语法:whereis 命令
选项:
-b 只查找二进制文件
-m 只查找说明文件
# 使用指令"whereis"查看指令"bash"的位置,输入如下命令:
[root@rhcsa-1 ~]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。
[root@rhcsa-1 ~]# whereis -b bash
bash: /usr/bin/bash
[root@rhcsa-1 ~]# whereis -m bash
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
功能描述:用于查找文件或目录
语法:find [path] -option
选项:
常用查找条件
-name 按文件名称查找
-size 按文件大小查找
-user 按文件属主查找. --用的不多
-type 按文件类型查找
高级查找条件
-perm 按权限进行查找
-ctime(-cmin) 按文件创建时间(天为单位)查找
-atime(-amin) 按访问时间查找
-mtime(-mmin) 修改时间查找
-maxdepth 限制find的递归层级
-! 取反操作
-exec 查找后再执行操作
# 按照名字查找
find /etc -name "resol*.conf" # 查找/etc/下名字为resol开头以.conf结尾的文件
# 检索空目录
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
M:MB
G:GB
find / -size +1G 检索文件大小高于 1 GB 的文件
-100M
# 按照权限查找
find /usr -perm 644 # 搜索 /usr 目录下权限为 644(即 rw-r--r--)的文件
# 限制递归层级
# find 命令默认是以递归的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。
find / -maxdepth 3 # 搜索时向下递归的层数最大为 3
# 逻辑组合
# find 命令支持 “and” 和 “or” 两种逻辑运算,对应的命令选项分别是 -a 和 -o 通过这两个选项可以对搜索条件进行更复杂的组合。
find / -name *.log -a -type l
find / -name *.log -o -name "*.txt"
# 执行自定义命令
-exec 命令 {} \;
find / -type f -exec grep -l root {} \;
find /etc -name “*” | xargs grep -nH “root” # 查找/etc下 name所有 过滤出内容包含hello 的文件内容
功能描述:显示文件内容(文件内容全部显示出来)
语法:cat [选项] [文件]
选项:
-b 显示行号,空白行不显示行号。
-n 显示行号,包括空白行
范例:
[root@localhost ~]# cat /etc/services
[root@localhost ~]# cat -n /etc/services
[root@localhost ~]# cat -b /etc/services
功能描述:全屏方式分页显示文件内容
语法:more [选项] 文件名…
(空格)或f 显示下一页
(Enter) 显示下一行
q或Q 退出
范例:
[root@localhost ~]# more /var/log/messages
功能描述:查看文件的前几行,默认显示前10行内容。
语法:head [选项] [文件名]
选项:
-c nK 显示文件前nKB的内容 m G
-n 显示文件的前n行的内容
范例:
[root@localhost ~]# head -c 2k /var/log/messages #查看文件的前2KB的内容
[root@localhost ~]# head -20 /var/log/messages #查看文件的前20行的内容
功能描述:查看文件的尾部内容,默认显示末尾10行
语法:tail [选项] [文件]
选项:
-n 显示文件的后n行
-f 动态显示文件内容
-c nK 显示文件末尾nKB的内容
范例:
[root@localhost ~]# tail -c 2K /var/log/messages #查看文件末尾2KB的内容
[root@localhost ~]# tail -20 /var/log/messages #查看文件末尾20行内容
[root@localhost ~]# tail -f /var/log/messages #实时动态查看文件内容
功能描述:查看分页文件内容,空格(下一页)、方向键(上下回翻)、q键(退出查看)
[root@localhost ~]# less /var/log/messages
功能描述:统计文件中的单词数量(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 -l /etc/passwd #显示文件的行数
23 /etc/passwd
[root@localhost ~]# wc -w /etc/passwd #显示文件的单词个数
49 /etc/passwd
功能描述:在文件中查找并显示包含指定字符串的行
语法:grep [选项]… 查找条件 目标文件
常用命令选项:
-i 查找时忽略大小写
-v 反转查找,输出与查找条件不相符的行
-l 列出文件内容符合指定的样式的文件名称。
-A n 搜索时显示匹配到的那一行以及下n行
-B n 搜索时显示匹配到的那一行以及上n行
-C n 搜索时显示匹配到的那一行以及上下n行
查找条件设置
要查找的字符串以双引号括起来
“^……”表示以……开头
“……$”表示以……结尾
“^$”表示空行
[root@localhost ~]# grep root /etc/passwd #在/etc/passwd文件中过滤出包含root的行
[root@localhost ~]# grep --color root /etc/passwd #对匹配的关键字显示颜色
[root@localhost ~]# grep -i ROOT /etc/passwd #不区分大小写
[root@localhost ~]# grep -v root /etc/passwd #反向过滤
#过滤出hosts文件中的非注释行(不以”#“号开头的行)
[root@localhost ~]# grep -v "^#" /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
#查找系统启动时识别的USB总线信息
[root@localhost ~]# dmesg | grep "USB"
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
USB Universal Host Controller Interface driver v3.0
uhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ehci_hcd 0000:02:03.0: new USB bus registered, assigned bus number 2
ehci_hcd 0000:02:03.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
hub 2-0:1.0: USB hub found
功能描述:命令用于显示每行从开头算起 num1 到 num2 的文字。
语法:cut [选项]
选项:
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除
# 打印/etc/passwd文件中每一行的第一个字段。
[root@rhcsa-1 ~]# cut -d ":" -f 1 /etc/passwd
root
bin
daemon
....
[root@rhcsa-1 ~]# grep '/bin/bash' /etc/passwd | cut -d ":" -f 1,6
root:/root
redhat:/home/redhat
xiaohong:/home/xiaohong
思考:
如何过滤出机器的IP地址?
功能描述:用于将文本文件内容加以排序。
语法: 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
*.gz | gzip程序压缩的文件 |
---|---|
*.bz2 | bzip2程序压缩的文件 |
*.tar | tar程序打包的数据,并没有经过压缩 |
*.tar.gz | tar程序打包的文件,其中经过gzip的压缩 |
*.tar.bz2 | tar程序打包的文件,其中经过bzip2的压缩 |
用途:制作压缩文件、解开压缩文件
命令格式:
gzip [-9] 文件名…
bzip2 [-9] 文件名…
gzip -d .gz格式的压缩文件
bzip2 -d *.bz2格式的压缩文件
yum -y install bzip2
常用命令选项
-9 表示高压缩比,多在创建压缩包时用
-d 用于解开已经压缩过的文件
用途:制作归档文件、释放归档文件
格式:tar [选项]… 归档文件名 源文件或目录
tar [选项]… 归档文件名 [-C 目标目录]
常用命令选项
-c 创建 .tar 格式的包文件
-x 解开.tar格式的包文件
-v 输出详细信息
-f 表示使用归档文件
-p 打包时保留原始文件及目录的权限
-t 列表查看包内的文件
-C 解包时指定释放的目标文件夹
-z 调用gzip程序进行压缩或解压
-j 调用bzip2程序进行压缩或解压
创建:
-czvf
-cjvf
解压:
-xzvf
-xjvf
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/
1、客户端是linux的操作系统 服务器-服务器之间传输
从服务器下载普通文件:
scp 用户名@目标IP地址:文件名 目录名
向服务器上传文件:
scp 要上传文件的全路径 用户名@目标IP地址:文件名
2、客户端是windows的操作系统
从windows向linux上传:rz 或者xftp工具
从linux下载文件:sz 文件路径或者xftp工具
yum -y install lrzsz
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
命令名称:man
语法: man [命令或配置文件]
功能描述:获得帮助信息
范例:
$ man ls
......
NAME
ls -- list directory contents
SYNOPSIS
ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1%] [file ...]
DESCRIPTION
For each operand that names a file of a type other than directory, ls
displays its name 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键查看下一行。
指令名称:info
语法:info [任何命令]
功能描述:获得帮助信息
范例:
$ info ls
查看ls指令的帮助信息
文本编辑器的作用
创建或修改文本文件
维护Linux系统中的各种配置文件
Linux中最常用的文本编辑器
vi:类Unix系统中默认的文本编辑器
vim:vi编辑器的增强版本,习惯上也称为vi(高亮显示)
yum -y install vim
vim具有多种工作模式,常用的工作模式有:普通模式、插入模式、命令模式。
普通模式可以实现基本的光标移动于大量的快捷键操作
插入模式可以实现文本的基本编辑功能
命令模式通过输入特定的指令实现特定的功能,如保存与退出等
直接输入vim命令,即可开启该文本编辑器,默认将创建一个新的文档(保存时需要指定文件名)另外,如果vim命令后跟了文件名参数,则需要看该文件是否存在,如果存在,vim将打开该文件,如果不存在,vim将创建该文件。
vim编辑器默认会进入普通模式,插入模式可以通过以下按键进入:
按键 | 功能描述 |
---|---|
a | 进入插入模式,后续输入的内容将插入至当前光标的后面 |
A | 进入插入模式,后续输入的内容将插入至当前光标的断尾 |
i | 进入插入模式,后续输入的内容将插入至当前光标的前面 |
I | 进入插入模式,后续输入的内容将插入至当前光标的段首 |
o | 进入插入模式并在当前行的后面创建新的空白行 |
O | 进入插入模式并在当前行的前面创建新的空白行 |
当需要退回到普通模式或不知道自己当前处于什么模式时,可以通过Esc键返回到普通模式。
最后,在普通模式下输入“:”,即可进入命令模式; 在“:”后输入指令,即可实现特定的功能
vim中最简单的移动光标的方式是使用方向键(上、下、左、右)操作,但这种方式效率低下,更高效的方式是使用快捷键,常用的快捷键如下,需要注意的是所有的快捷键均在普通模式下直接使用
快捷键 | 功能描述 |
---|---|
h | 光标向左移动一位 |
j | 光标向下移动一行(以回车为换行符) |
k | 光标向上移动一位 |
I | 光标向右移动一位 |
gg | 移动光标至文件首行 |
G | 移动光标至文件末尾 |
nG | 移动光标至第n行(n为数字,如n为10时表示第10行) |
^ | 光标移至当前行的首字符 |
$ | 光标移至当前行的尾字符 |
fx | 光标移至当前行的下一个x字符处(任意字符) |
Fx | 光标移至当前行的上一个x字符处 |
w | 光标向右移动一个单词 |
nw | 光标向右移动n个单词(n为数字) |
b | 光标向左移动一个单词 |
nb | 光标向左移动n个单词(n为数组) |
插入模式:
ctrl+w 按照单词删除
在vim编辑器中编辑文档内容主要有两种常用的方式:进入编辑模式操作和快捷键操作。进入编辑模式后,即可以通过移动光标进行增加、删除、修改的基本操作,这种方法也是最简单的方式,另外,快捷键操作方式是在普通模式下输入相应的快捷键实现对应的功能,快捷键如下:
操作快捷键 | 功能描述 |
---|---|
dd | 删除一行 |
ndd | 删除n行(n为数字) |
d$ | 删除光标至行尾的内容 |
J | 删除换行符,可以将两行合并为一行 |
u | 撤销上一步操作,可以多次使用uu表示撤销两步操作 |
rx | 将光标当前字符替换为x (x为任何键盘单个输入) |
yy | 复制当前行 |
nyy | 复制n行内容 |
p | 粘贴至当前行之后 |
P | 粘贴至当前行之前 |
当文档很长时,我们可以通过查找快速定位要找的内容,在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 |
一般情况下,我们会通过命令模式输入特定的质量实现保存与退出功能,如下:
指令 | 功能描述 |
---|---|
:q! | 不保存并退出(强制退出) |
:wq | 保存并退出 |
:x | 保存并退出 |
:w | 保存(不退出) |
:w b.txt | 另存为 b.txt |
显示当前行是第几行的方式有很多,可以通过为文档添加行号来实现,添加行号的方法是在命令模式下输入
:set number 或者简写为 :set nu 即可
在vim中查找时,你可能不清楚所要找的关键词的大小写,而vim默认是区分大小写的,这个时候可以通过在命令模式下输入
:set ignorecase 实现忽略大小写
当需要同时编辑多个文档时,分割窗口就尤为重要了,最简单的方式是在命令模式下输入 :split 如此可以实现编辑同一个文档的不同行,至于窗口的切换,可以使用快捷键:
默认的 :split 为水平分割窗口,
记住 Ctrl+w w 跳转即可
Ctrl+w+h|Ctrl+w+I
---------------
Ctrl+w+j|Ctrl+w+k
Ctrl+w+h:快捷键表示跳转至左边一个窗口
Ctrl+w+I: 快捷键表示跳转至右边一个窗口
Ctrl+w+j: 快捷键表示跳转至上面一个窗口
Ctrl+w+k:快捷键表示跳转至下面一个窗口
在命令模式下输入 :close 可以关闭当前窗口
在命令模式下输入 :split second.txt 此命令会分割窗口并打开新的文件
如此实现多窗口多文件的编辑工作,