目录
注意:more命令包括下面的“less”等命令,可以配合管道符“|”分屏查看执行命令时输出的信息
1.3命令less——查看文件内容(与more命令相同,但扩展功能更多)
一、Linux目录结构
1.Linux文件系统的层次结构
目录相当于Windows中的文件夹,目录存放的既可以是文件,也可以是子目录,而文件中存储的是信息。
文件系统的最顶层是由根目录开始的,根目录是所有分区,目录,文件等位置的起点。整个树形目录结构中,使用独立的“/”表示根目录。
注意:
- 目录名或文件名是区分大小写的。
- 在文件系统中,有两个特殊的目录:一个是用户所在的工作目录,即当前目录,用一个“.”来表示;另一个是当前目录的上一个目录,即父目录,用两个“.”来表示。
- 如果一个目录或文件名是由一个点开始的,就表示这个目录或文件是一个隐藏目录或文件。至于为什么会有隐藏文件,主要原因有三点:
- 防止意外删除
- 一般是你不需要改动的文件
- 属于系统文件
2.常见的子目录及其作用
- /root:该目录Linux系统管理员root(超级用户)的宿主目录
- /home:存放所有普通用户的宿主目录
- /boot:系统内核,启动文件目录
- /dev:设备文件,如/dev/hda1,/dev/cdrom等
- /etc:配置文件,存放人员的账号密码文件,各种服务的起始文件等
- /bin:所有用户可执行的命令
- /sbin:管理员可执行的管理命令
- /usr:应用程序
- /var:存放系统重经常需要变化的文件,如系统日志文件,用户邮箱目录等
二、查看及检索文件
1.查看文件内容
1.1 cat命令——显示并连接文件的内容
格式:cat 【选项】 文件名
优缺点:
- 优点:只能看普通的文本文件
- 缺点:如果内容过多会显示不全
示例:查看文本内容
[root@admin wanganmin]#echo "hello world" >wam.txt
[root@admin wanganmin]#cat wam.txt
hello world
cat可以同时查看多项文件
[root@admin wanganmin]#cat wam.txt sam.txt
hello world
qqq
1.2 命令more——全屏方式分页显示文件内容命令
格式:more 【选项】 文件名
交互操作方式:
- 按Enter键向下逐行滚动
- 按空格键向下翻一屏
- 按b键向上翻一屏
- 按q键退出
示例:显示用户密码
[root@admin wanganmin]#sudo more /etc/shadow
root:$6$rsS7LKa7eTaX/GiA$968aAyIMBpsk41bMVWDY1h44KRhAdfin6gncra5SAwro5skyxTU33r
Zs3JD75HtHQAKb19Nlzs1rXUO.F1gif/::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
注意:more命令包括下面的“less”等命令,可以配合管道符“|”分屏查看执行命令时输出的信息
例如:
[root@localhost ~]# ls -lh /etc/*.conf | more
-rw-r--r--. 1 root root 55 11 月 5 00:29 /etc/asound.conf
-rw-r--r--. 1 root root 14K 11 月 6 02:19 /etc/autofs.conf
-rw-------. 1 root root 232 11 月 6 02:19 /etc/autofs_ldap_auth.conf
-rw-r--r--. 1 root root 22K 11 月 6 01:31 /etc/brltty.conf
…… //省略部分内容
--more--
1.3命令less——查看文件内容(与more命令相同,但扩展功能更多)
格式:less 【选项】 文件名
交互方式:
- Page Up向上翻页,Page Down向下翻页
- 按“/”键查找内容,“n”下一个内容,“N”上一个内容
- 其他功能与more命令基本类似
示例:显示用户密码,并查找与f有关的内容
[root@admin wanganmin]# sudo less /etc/shadow
1.4命令head,tail——查看文件内容
(1)head命令
格式:head -n 文件名 //查看文件开头的一部分内容(n为任意数,默认是10行)
示例:查看前6行的密码
[root@admin wanganmin]# sudo head -6 /etc/shadow
root:$6$rsS7LKa7eTaX/GiA$968aAyIMBpsk41bMVWDY1h44KRhAdfin6gncra5SAwro5skyxTU33rZs3JD75HtHQAKb19Nlzs1rXUO.F1gif/::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
(2)tail命令(与head作用相反)
格式1:tail -n 文件名 //查看文件结尾少部分内容(默认是10行)
格式2:tail -f 文件名 //显示最后几行并追踪心得文件内容
示例:查看末尾6行的密码
[root@admin wanganmin]# sudo tail -6 /etc/shadow
avahi:!!:19905::::::
postfix:!!:19905::::::
sshd:!!:19905::::::
tcpdump:!!:19905::::::
wanganmin:$6$movA63XSNc5s1Hr6$wuoRI30uZpzupj1PRexDfdpPy6m/T6MBqFHsLYZ3d0uoa8Sf/KVnR/e7HGWfc5bC9YYyqrM/GvEJJ3QUqONW7.::0:99999:7:::
anmin1:$6$iHYS3rdZ$6nL6xZoDQTelQT7gNbX23hq41u4D9OyinY.q7mhyLfx2wXF0H.7zmZ7JeeriZMhvNCADRSvYckMzeFbCqNhfJ/:19915:0:99999:7:::
2.检索和过滤文件内容
2.1grep命令——检索和过滤文件内容
格式:grep 【选项】 ……查找条件 目标文件
常用命令选项:
- -i : 查找是忽略大小写
- -v :反向查找,输出与查找条件不相符的行
查找条件的设置:
- 要查找的字符串用双引号括起来
- “^……”表示以……开头,“……$”表示以……结尾
- “^$”表示空行
示例:查找密码里面含有bin的信息
[root@admin wanganmin]# sudo more /etc/shadow | grep "bin"
bin:*:17110:0:99999:7:::
2.2wc命令——统计文件中的单词数量等信息
格式:wc 【选项】 ……目标文件……
常用的命令选项:
- -l:统计行数
- -w:统计单词个数
- -c:统计字节数
3.扩展
3.1paste命令——用于合并文件的列
格式:paste 【选项】 ……目标文件 ……
常见的命令选项:
- -s :串列进行而非平行进行
- -d<间隔字符>:用指定的间隔字符取代跳格字符
- -help:在线帮助
- -version:显示帮助信息
示例:串列合并
[root@admin wanganmin]# cat sam.txt
lisi 120
[root@admin wanganmin]# cat wam.txt
zhangsan 200
[root@admin wanganmin]# paste -s wam.txt sam.txt
zhangsan 200
lisi 120
3.2split命令——分割文件
格式:split 【选项】 文件名
选项:
- -c 行数:指定每多少行切成一个小文件
- -b 字节:每多少个字节切成一个小文件
面试题:
我有一个10g的文件,怎么分割成小的文件存储?
split -b 100M 文件名
三、备份及恢复文档
1.压缩命令gzip,bzip
格式:gzip 【选项】 文件名 //生成的文件名后缀是gz
bzip2 【选项】 文件名 //将文件压缩后,文件名后缀是bz2
常用选项:
-n:数字1到9,9是最高级别
-d:解压缩选项
区别:
- gzip 的压缩速度比 bzip2 快,但是压缩效果不如 bzip2。
- bzip2 的压缩速度比 gzip 慢,但是压缩效果更好。
- gzip 只使用一个 CPU 内核,而 bzip2 可以使用多个 CPU 内核进行压缩和解压缩。
- gzip 更广泛地用于 Web 应用程序,而 bzip2 更适用于数据备份和归档。
- bzip2 只能压缩单个文件,不能打包多个文件。
2.解压命令gunzip,bunzip2
gunzip等价于gzip -d
bunzip2等价于bzip -d
3.归档命令tar(作用:归档)
格式:tar 【选项】 ……归档文件名 源文件或目录
tar【选项】……归档文件名 【-c 目标目录】
注意:
- tar -zcvf加-要在最后加f
- tar fzcv压缩包的名字(*.tar.gz)需要压缩的文件
选项:
- -c:创建(Create).tar 格式的包文件。
- -C:解压时指定释放的目标文件夹。
- -f:表示使用归档文件。
- -j:调用 bzip2 程序进行压缩或解压。
- -p:打包时保留文件及目录的权限。
- -P:打包时保留文件及目录的绝对路径。
- -t:列表查看包内的文件。
- -v:输出详细信息(Verbose)。
- -x:解开.tar 格式的包文件。
- -z:调用 gzip 程序进行压缩或解压。
注意:有八个最常用的选项
- czvf //创建.tar的包文件,调用gzip程序,输出详细信息,并且使用归档文件
- cjvf //与上一个选项有区别的是调用bzip2程序
- xzvf //与第一个选项有区别的是解开.tar格式的包文件,并没有创建
- xjvf //与xzvf同理
- czf //其实和第一个选项大差不差
- cjf
- xzf
- xjf
四、VI文本编辑器
4.1使用vi文本编辑器
4.1.1文本编辑器的作用
- 创建和修改文本文件
- 维护Linux系统中的各种配置文件
4.1.2Linux中最常用的文本编辑器
- vi 是类 UNIX 操作系统的默认文本编辑器。
- vim 是 vi 文本编辑器(简称 vi 编辑器)的增强版本,在 vi 编辑器的基础上扩展了很多实用的功能,但是习惯上也将 vim 称为 vi。为了使用方便,可以设置一个命令别名,将 vi 指向 vim 程序(本书中以 vim 程序为例),具体操作如下:
[root@localhost ~]# alias vi='/usr/bin/vim'
[root@localhost ~]# which -a vi vim
alias vi='/usr/bin/vim'
/usr/bin/vim
/usr/bin/vi
/usr/bin/vim
4.2.vi编辑器的工作模式
4.2.1工作模式
有三种,分别是:
- 命令模式:格式以vi打开一个文件就直接进入一般命令模式了。在这个模式中,你可以使用【上下左右】的按键来移动光标,也可以使用【删除字符】或者【删除整行】来处理文件内容,还可以使用【复制、粘贴】来处理你的文件内容。
- 输入模式:一般命令模式中可以进行删除、复制、粘贴等操作,但是无法编辑文件内容。要等你按下【i,L,o,O,a,A,r,R】等任何一个字母之后才进入编辑模式。如果你要回到一般的命令模式,按下【ESC】即可退出编辑模式
- 末行模式:一般模式当中,输入【:/?】三个中的任何一个按钮,就可以将光标移动到最下面的一行。在这个模式中,可以【查找数据】的操作,可以读取、保存、批量替换字符、退出vi、显示行号的操作都是在这个模式下完成的。
注意:a键——光标位置后面输入内容 A——光标所在的行尾插入内容
i键——光标位置之前输入内容 I——光标所在行首插入内容
o键——光标另起一行输入内容 O——在光标上面一行输入内容
4.3.vi编辑器的基本操作
4.3.1光标移动
- 方向移动:直接按↑、↓、←、→四个方向键完成相应的光标移动。
- 翻页:按 Page Down 键向下翻动一整页内容,按 Page Up 键向上翻动一整页内容。
- 行内快速跳转:按 Home 键或^键、数字 0 键将光标快速跳转到本行的行首。
按 End 键或$键将光标快速跳转到本行的行尾。 - 行间快速跳转:使用按键命令 1G 或者 gg 可跳转到文件内容的第 1 行。使用按键命令 G 可跳转到文件的最后一行。使用按键命令#G 可跳转到文件中的第#行(其中“#”号用具体数字替换)。
- 行号显示::set nu是在编辑器中显示行号,:set nonu取消编辑器中的行号显示
补充:
- w——跳到下一个单词
- b——跳到上一个单词
- H——当前屏幕第一行
- M——当前屏幕中间
- L——当前屏幕最后一行
4.3.2复制、粘贴、和删除
4.3.2.1删除操作
- 操作键x键或者Delete键删除光标处的单个字符
- 操作键dd删除当前光标所在行,使用#dd的形式还可以删除从光标处开始的#行内容(#号用具体数字替换)
- 操作按键命令 d^删除当前光标之前到行首的所有字符。
- 操作按键命令 d$删除当前光标处到行尾的所有字符。
4.3.2.2复制操作
- 操作按键命令 yy 复制当前行整行的内容到剪贴板
- 操作按键命令#yy 的形式还可以复制从光标处开始的#行内容(其中“#”号用具体数字替换)
4.3.2.3粘贴操作
- 小写p——将缓冲区中的内容粘贴到光标位置处之后
- 大写P——将缓冲区中的内容粘贴到光标位置处之前。
补充:
- r 修改当前字符
- ctrl+r 反撤销(撤销u操作)
4.3.3查找文件内容
在命令模式中,按/键后可以输入指定的字符串,从当前光标处开始向后进行查找(按? 键则向前查找)。完成查找后可以按 n、N 键在不同的查找结果中进行选择。
4.3.4撤销编辑及保存和退出
- 小写u 键命令用于取消最近一次的操作,并恢复操作结果,可以多次重复按 u 键恢复已进行的多步操作
- 大写U 键命令用于取消对当前行所做的所有编辑。
4.3.5末行模式中的基本操作
在命令模式中按:键可以切换到末行模式,vi 编辑器的最后一行中将显示“:”提示符,用户可以在该提示符后输入特定的末行命令,完成如保存文件、退出编辑器、打开新文件、读 取其他文件内容及字符串替换等丰富的功能操作。
4.3.5.1保存文件及退出vi编辑器
- :w——保存修改的文件
- :w 路径文件名——若需要另存为其他文件,则需要指定新的文件名,必要时还可以指定文件路径。例如, 执行如下的“:w /root/newfile” 操作将把当前编辑的文件另存到/root 目录下, 文件名为newfile。
- :q!——退出编辑器
- :wq——保存并退出
- :x——保存并退出
4.3.5.2打开新文件或读入其他文件内容
- 格式:e 新的文件——打开新文件并进行编辑
- 格式:r 其他文件——在当前文件中读入其他文件
4.3.5.3文件替换内容
- :s /字符串1/字符串2 #将当前行中找到的第一个字符串1替换成字符串2
- :s /字符串1/字符串2/g #将当前行中所有字符串1替换成字符串2
-
:#,# s /字符串1/字符串2/g #在指定行数范围内的文件内容中进行查找并替换
- :% s /字符串1/字符串2/g #在整个文件内容中进行查找并替换