命令工具
Linux 操作系统拥有字符与图像两种工作界面,在企业生产环境中,Linux 主要担当服务器的角色,而图形界面会占用大量的系统资源。因此,从运行效率以及资源占用率的角度考虑,通常会使用命令行完成日常工作。下面会逐步介绍Limnux 中常用命令的用法与应用案例。
a. 基本命令
1)目录及文件的基本操作
- pwd
描述:pwd命令的作用是显示当前工作日录的名称。
用法:pwd[选项]...
选项:-p 显示链接的真实路径
[root@centos7 Desktop]# pwd
/root/Desktop #返回当前工作目录/root/Desktop
[root@centos7 test]# pwd
/tmp/test #返回当前工作日录/tmp/test
[root@centos7 test]#pwd -p
/tmp/pass #返回链接的真实路径/tmp/pass
- cd
描述:cd 命令的作用是切换当前工作目录。
[root@centos7 ~]# cd /usr/src/ #切换工作目录至/usr/src/
[root@centos7 src]#cd- #返回前一个目录,至/usr/src目录
[root@centos7 usr]#cd.. #切换工作目录至当前目录的上一级目录
[root@centos7 usr]# cd #切换工作目录至当前用户的家目录
- ls
描述:命令的作用是显示目录与文件信息。
用法:Is[选项]...[文件/目录]...
选项:
- -l:以长格式(Long)显示文件和目录的列表,包括权限、大小、最后更新时间等详细信息。不使用-1选项时,1s 命令默认以短格式显示目录名或文件名信息
- -a:显示所有(A11)子目录和文件的信息,包括名称以点号“.”开头的隐藏目录和隐藏文件
- -A:与-a选项的作用基本类似,但有两个特殊隐藏目录不会显示,即表示当前目录的“.”和表示父目录的“..”
- -d:显示目录(Directory)本身的属性,而不是显示目录中的内容
- -h:以更人性化(Human)的方式显示目录或文件的大小,默认的大小单位为字节(B),使用-h选项后将显示为KB、MB等单位。此选项需要结合-l选项一起使用
- -R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容
- --color:在字符模式中以颜色区分不同的文件,如果使用“--color=tty”,则表示使用终端预定义的颜色方案。通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件
[root@centos7 test]#ls #显示当前目录下的子文件与目录名称
[root@centos7 test]#ls /etc #显示/etc目录下的子文件与目录名称
[root@centos7 test]#ls -a #查看包含以·开始的隐藏文件与目录信息
[root@centos7 test]#1s -1 #查看文件与目录的详细信息
[root@centos7 test]#1s -ld /root #查看当前 root 目录自身的详细信息
[root@centos7 test]#1s -lh #人性化显示容量信息
- touch
描述:创建或修改文件时间。
[root@centos7 test]# touch hello.txt
如果 hello.txt不存在,则创建,如果已存在,则更新文件所有的时间为当前系统时间
- mkdir
描述:创建目录。
用法:mkdir [选项]...[目录]..
选项:-p创建多级目录
[root@centos7 test]#mkdir leo
[root@centos7 test]# mkdir -p /tmp/test/jerry/book/computer
- cp
描述:复制文件与目录。
用法:cp[选项] 源 目标
需要复制多个文件或目录时,目标位置必须是目录,且目标目录必须已经存在
选项:
- -f:覆盖目标同名文件或目录时不进行提醒,而直接强制(Force)复制
- -i:覆盖目标同名文件或目录时提醒用户确认(Interactive,交互式)
- -p:复制时保持(Preserve)源文件的权限、属主及时间标记等属性不变
- -r:复制目录时必须使用此选项,表示递归复制所有文件及子目录
[root@centos7 test]# cp /etc/hosts /tmp/ #复制文件/etc/hosts至/tmp 目录下
[root@centos7 test]# cp /etc/hosts /tmp/host #复制文件/etc/hosts至/目录下并改名为 host
[root@centos7 test]# cp -r /var/log/ /tmp/ #复制目录/var/log 至/tmp/目录下
- rm
描述:删除文件或目录
用法:rm「选项]...文件..
选项:
- -f 不提示,强制删除
- -i 删除前,提示是否删除
- -r 递归删除,删除目录以及目录下的所有内容
[root@centos7 test]# rm readme.txt #删除文件 readme.txt
[root@centos7 test]# rm -rf suolong #删除目录且不提示
- mv
描述:移动(重命名)文件或目录
[root@centos7 test]# mv hello.txt hello.doc #将 hello.txt 改名为 hello.doc
[root@centos7 test]# mv hello.doc /root/ #将hello.doc 移至/root目录下
- find
描述:搜索文件或目录。
用法:fnd[命令选项][路径][表达式选项]
选项:
- -empty查找空白文件或目录
- -name按文档名称查找
- -size按容量大小查找
- -type按文档类型查找,文件(f)、目录(d)、设备(b,c)、链接(1)等
- -user按用户查找
- du
描述:计算文件或目录的容量
用法:du「选项]...[文件或目录]...
选项:
- -h人性化显示容量信息
- -a查看所有目录以及文件的容量信息
- -s仅显示总容量
[root@centos7 test]# du /root #查看/root 目录及子目录的容量信息
[root@centos7 testl#du -a root
[root@centos7 test]#du -sh /root #查看/root 所占磁盘空间总和
2)查看文件内容
- cat
描述:查看文件内容。
用法:cat[选项]..[文件]..
- more
描述:分页查看文件内容,通过空格键查看下一页,q键则退出查看
[root@centos7 test]# more /root/install.log
- less
描述:分页查看文件内容,空格(下一页)、方向键(上下回翻)、q键(退出查看)
[root@centos7 test]# less /root/install.log
- head
描述:查看文件头部内容,默认显示前10行
用法:head [选项]...[文件]...
选项:-n显示文件前n行的内容
[root@centos7 test]# head -20 /root/install.log #查看文件的前 20 行的内容
- tail
描述:查看文件的尾部内容,默认显示末尾 10行
用法:tail [选项]...[文件]...
选项:
- -n 显示文件末尾n行的内容
- -f 动态显示文件内容,常用于查看日志,按 Ctl+C 组合键退出
[root@centos7 test]# tail -20 /root/install.log #查看文件末尾 20 行的内容
[root@centos7 test]# tail -f /var/log/messages #实时动态查看文件内容
- wc
描述:显示文件的行、单词与字节统计信息
用法:wc「选项]...[文件]...
选项:
- -c 显示文件字节统计信息
- -l 显示文件行数统计信息
- -w 显示文件单词统计信息
[root@centos7 test]# wc /root/install.log #依次显示文件的行数、单词数、字节数
[root@centos7 test]# wc -c /root/install.log #显示文件的字节信息
[root@centos7 test]# wc -l /root/install.log #显示文件行数
[root@centos7 test]# wc -w /root/install.log #显示文件的单词个数
- grep
描述:查找关键词并打印匹配的行
用法:grep [选项] 匹配模式 [文件]...
选项:
- -i 忽略大小写
- -v 取反匹配
- -w 匹配单词
[root@centos7 test]#grep -i the test.txt #过滤包含 the 的行(不区分大小写)
[root@centos7 test]#grep -w num test.txt #过滤单词 num(不过滤number)
[root@centos7 test]#grep -v the test.txt #过滤不包含 the 关键词的行
- 基本命令:echo
描述:显示一行指定的字符串
用法:echo「选项].. [字符串.]...
选项:
- -n 不输出换行,默认echo 输出内容后会换行
- -e 支持反斜线开始的转义字符,屏蔽反斜线后面字符的原本含义
3)链接文件
Linux 中的链接文件不同于 Windows 的快捷方式,Linux 的链接文件分为软链接与硬链接,软链接可以跨分区,但源文件不可删除,硬链接不可以跨分区,但可以将源文件删除
- 软连接
[root@centos7 test]# ln -s /test/hello.txt /tmp/hi.txt #创建文件软链接
[root@centos7 test]# In -s /test /var/test #创建目录软链接
[root@centos7 test]# rm /test/hello.txt;cat /tmp/hi.txt #删除源后,链接无法使用
- 硬链接
[root@centos7 test]# ln /test/hello.txt /test/hi.txt
[root@centos7 testl# rm /test/hello.txt #删除源文件后,链接文件仍可以正常使用
4)压缩及解压
- gzip
描述:压缩与解压缩
用法:gzip [选项..[文件名称]..
选项:-d解压
[root@centos7 test]# gzip hello.txt #文件压缩后名为 hello.txt.gz
[root@centos7 test]# gzip -d hello.txt.gz #解压 gz 文件
- bzip2
描述:压缩与解压缩
[root@centos7 test]# bzip2 hello.txt #文件压缩后名为 hello.txt.bz2
[root@centos7 test]# bzip2 -d hello.txt.bz2 #解压 gz 文件
注意:gzip 与 bzip2 工具不可以直接对目录做打包压缩操作
- tar
描述:打包与解包文件
用法:tar 模式 [选项] [路径]...
模式:
- -c 创建打包文件
- -r 追加文件至打包文档
- -t 列出打包文档的内容
- -x 释放打包文件
选项:
- -C 指定解压路径
- -f 指定打包后的文件名称
- -j 打包后通过 bzip2 格式压缩
- -z 打包后通过 gzip 格式压缩
5)命令使用技巧
- 善于利用tab键
在 Limux 中,利用 Tab 键可以自动补齐命令或路径,从而提高工作效率
- 使用命令历史
在 Linux 中输入的命令会被记录,对于已经输入过的命令,没有必要重复输入,这时可以直接调用历史命令记录。使用命令历史最简单的方法是通过上、下方向键翻阅历史命令,CentOs默认会记录 1000 条命令历史。输入 history 命令可以显示所有的命令记录,每条记录都有相应的编号,如果你想执行编号为 500 的命令历史,可以通过!500 来调用该命令。
- 适时清屏
当命令输入特别多或屏幕显示特别乱时,可以通过快捷键 Ctrl+l或输入命令 clear 清屏
- 查找常用命令存储位置
通过 which 命令可以找到常用命令的存储位置,如输入 which find,系统将返回 find 命令的实际存储位置/bin/find
6)帮助
- man
通过 man(manual)手册文档可以帮助我们快速掌握命令的用法,man 手册一般保存在/usr/share/man 目录下,查看手册文档可以直接通过 man 命令读取
例如,如果想获取 ls 命令的 man 手册,输入 man ls 即可
- info
inf 信息与 man 手册的内容类似,但 inf 信息是模块化的,它通过链接显示不同的信息块,查看起来有点类似于网页
- help
通过--help 来获得简要信息,比前面两个要用的更加广泛
b. vim文档编辑
vim 是由 vi发展演变过来的文本编辑器,因其具有语法高亮显示、多视窗编辑、代码折叠支持插件等功能,现已成为众多 Linux 发行版本的标配
1)vim工作模式
- 命令模式:启动v编辑器后默认进入命令模式。在该模式中,主要完成如光标移动、字符串查找以及删除、复制、粘贴文件内容等相关操作。
- 输入模式:在该模式中,主要操作是输入文件内容,可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-INSERT--”的状态提示信息。
- 末行模式:在该模式中,可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符。
模式切换:
- a:在当前光标位置之后插入内容
- A:在光标所在行的末尾(行尾)插入内容
- i:在当前光标位置之前插入内容
- I:在光标所在行的开头(行首)插入内容
- o:在光标所在行的后面插入一个新行
- O:在光标所在行的前面插入一个新行
2)vim光标操作
- 使用按键命令 1G 或 gg 可跳转到文件内容的第1行
- 使用按键命令 G 可跳转到文件的最后一行
- 使用按键命令 #G 可跳转到文件中的第#行(其中“#”用具体数字替换)
3)vim编辑文档
只要切换到末行模式执行:set nu命令即可显示行号,执行“:set nonu”命令可以取消显示行号
删除操作:
- 按 x键或 Delete 键删除光标处的单个字符
- 使用按键命令 dd 删除当前光标所在行,使用 #dd 的形式还可以删除从光标处开始的#行内容(其中“#”用具体数字替换)
- 使用按键命令 d^删除当前光标之前到行首的所有字符
- 使用按键命令 d$ 删除当前光标处到行尾的所有字符
复制操作:
使用按键命令 yy 复制当前行整行的内容到剪贴板,使用 #yy 的形式还可以复制从光标处开始的#行内容(其中“#”用具体数字替换)。复制的内容需要粘贴后才能使用。
粘贴操作:
在 vi编辑器中,前一次被删除或复制的内容将会被保存到剪切板缓冲区中,按p键即可将缓冲区中的内容粘贴到当前光标所在位置之后,按P键则会粘贴到当前光标所在位置之前。
4)vim查找与替换
在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按?键则向前查找)。完成查找后可以按n、N 键在不同的查找结果中进行选择。
例如,输入“/yum”,按 Enter键后可以查找出文件中的“yum”字符串并高亮显示,光标自动移动至第一个查找结果处,按n键可以移动到下一个查找结果处
在 vi编辑器的末行模式中,能够将文件中特定的字符串替换成新的内容。当需要大批量修改同一内容时,使用替换功能将大大提高编辑效率。使用替换功能时的末行命令格式如下:
: [替换范围] sub /旧的内容/新的内容[/g]
%:在整个文件内容中进行查找并替换
n,m:在指定行数范围内的文件内容中进行查找并替换
/g部分也是可选内容,表示对替换范围内每行中的所有匹配结果都进行替换,省略“/g”时将只替换每行中的第一个匹配结果
5)vim保存与退出(末行模式)
- :q! 不保存并退出
- :wq 保存并退出
- :x 保存并退出
- :w 保存
- :w b.txt 保存为b.txt
Linux目录结构:
- /boot:此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录,如vmlinuz和 initrd.img。在安装inux操作系统时,为boot 目录创建一个分区,有利于对系统进行备份
- /bin:bin是binary 的缩写。这一目录存放了所有用户都可执行的且经常使用的命令,如cp、ls 等
- /dev:此目录保存了接口设备文件,如/dev/hdal、/dev/cdrom 等
- /etc:系统主要的配置文件几乎都放置到这个目录内,例如人员的账号密码文件、各种服务的起始文件等
- /home:存放所有普通系统用户的默认工作文件夹(即宿主目录、家目录),如用户账号teacher对应的宿主目录位于“/home/teacher/”。如果服务器需要提供给大量的普通用户使用,建议将“/home”目录也划分为独立的分区,以方便用户数据的备份
- /root:该目录是Linux操作系统管理员(超级用户)root的宿主目录,默认情况下只有root用户的宿主目录在根目录飞而不是在“/home”目录下
- /sbin:存放Linux操作系统中最基本的管理命令,一般管理员用户才有权限执行
- /usr:存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序
- /var:存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等,在实际应用系统/var目录通常也被划分为独立的分区