Linux中文件和目录管理

1、Linux命令

1)Shell命令解释器:负责接收用户输入的命令并解释,将需要执行的操作传递给系统内核

bash:默认的Shell,位于/bin/bash

内部指令:集成在Shell中,没有独立的程序文件,执行效率更高

外部指令:能够完成特定功能的脚本文件或二进制程序

注:可通过/etc/shells文件或chsh -l命令查看当前系统支持的shell

2)命令格式

命令字 [命令选项] [命令参数]

命令字:命令的名称

命令选项:调节命令的具体功能,使用不同的命令选项可以获得相似但具有细微差别的功能

使用单个字符选项时,使用“-”符号,即短格式选项,多个短格式选项可写在一起

使用多个字符选项时,使用“--”符号,即长格式选项

命令参数:处理的对象,可以是文件名、目录名或用户名等,选项和参数有时可以颠倒

3)帮助命令

help:查看内置命令的帮助信息,例:help pwd

--help:查看大多数外部命令的帮助信息,例:ls --help

man:阅读手册页,q退出浏览器,空格键翻页,回车键翻行,/进行查找  man ls | more

info:使用info命令阅读信息页,一般使用较少,例:info ls

管道:使用竖杠|表示,将前面命令的的结果作为后面命令的操作对象

重定向输出:使用大于号>表示,将结果保存到大于号后边指定的文件中,而不是直接输出到屏幕

注:①Tab补全;\换行;ctrl+a将光标移至行首;ctrl+e将光标移至行尾;

     ctrl+u删除光标前内容;ctrl+k删除光标后内容;ctrl+l清屏(等同于命令clear);ctrl+c取消

②?表示一个字符位置,*表示任意多个字符位置

③Linux大小写严格区分、不能缩写

④col命令用于过滤控制字符,-b选项表示过滤所有的控制字符;在许多UNIX说明文件里,都有控制字符,当把说明文件的内容重定向输出为纯文本文件时,控制字符会变成乱码,可使用col过滤掉

⑤查看配置文件的帮助man 5 resolv.conf

2、目录操作命令

1)pwd(print working directory)显示当前工作目录

2)cd(change directory)切换工作目录

不指定目标目录则切换到当前用户的宿主目录

   绝对路径:以根开始的路径;相对路径:不是以根开始的路径

.表示当前目录,..表示上一级目录,~用户名表示指定用户的宿主目录,-表示上一个工作目录

3)ls(list)显示目录信息

-l 列出文件的详细信息

-h 以更人性化的方式显示,如单位为K、M等

-a 列出目录下的所有文件,包括以.开头的隐含文件

-d 显示目录本身的属性,而不是显示目录下的文件

-R 以递归方式显示目录及其下的所有内容Recursive

-i 显示 inode号

--color 以颜色区分不同文件

颜色含义:默认颜色-普通文件、蓝色-目录、绿色-可执行文件;浅蓝色-链接文件、

          红色-压缩文件;×××-设备文件;灰色-其他文件

注:RHEL5中默认为"ls -l --color"定义了一个别名"ll"

4)mkdir(make directory)创建目录

-p 创建嵌套的多层目录结构,例:mkdir –p /media/data ; mkdir mp3 mp4 mp5

注:文件名中尽量不要用空格,可以用下划线_代替,如果确实需要包含空格的话,可以使用转义字符\加空格来表示,也可使用双引号,如:mkdir a\ b 或 mkdir “a b”

5)du统计目录和文件所占空间

:du –sh /etc/passwd

3、文件操作命令

1)touch创建文件

2)file查看文件类型(linux中文件扩展名和文件类型没有直接关系)

3)cp(copy)复制文件或目录

-f强制复制

-i提醒用户确认

-a 保留文件属性、链接并递归地拷贝,等同于prd

-p 保持源文件权限、归属、时间标记等属性不变

-r 递归复制目录下所有文件和子目录,复制目录时必须用此选项

-d 拷贝时保留链接

注:RHEL5中默认为"cp -i"定义了一个别名"cp",类似的还有rm -i、mv -i等

4)rm(remove)删除文件或目录

-f 强制删除

-i提醒用户确认

-r 删除该目录下的所有目录,删除目录时必须用此选项

注:rmdir也可用于删除目录,但只能删除空目录

5)mv(move)移动文件或目录

  如果目标位置与源位置相同,则相当于为文件或目录重命名

6)which查找命令文件并显示位置

默认搜索范围由环境变量PATH决定,查看echo $PATH

7)find查找文件或目录

-name按照文件名查找

-size按照文件大小查找,单位可为k、M、G

-user 按照文件属主查找

-group按照文件属组查找

-type 按文件类型查找:f-普通文件;d-目录;l-符号链接文件;b-块设备文件;c-字符设备文件

-exec 操作指令 {} \;    对匹配的文件再次进行操作

例:find /etc -name "*.conf" -a -type f -a -size +10k 或

    find /etc -name "*.conf"  -type f  -size +10k

    find /etc –name “resol*.conf” -exec rm {} \;

注:①查找范围默认为当前目录

②find的选项使用短格式-

③查找条件可以有多个,-a表示并且,-o表示或者;也可使用&&、||分别表示并且、或者

8)ln(link)为文件或目录建立链接

软链接(符号链接):快捷方式,inode节点号变,例:ln –s /etc/httpd/conf/httpd.conf /ect/

硬链接:查看时看的是自己,相当于复制了一份,不能对目录创建硬链接,硬链接与原始文件必须位于同一分区

9)各查找命令的区别

which  查找可执行文件的路径,查找范围为PATH变量指定

find   在硬盘中根据条件搜索文件,速度慢,效率低,但功能强大

whereis查找可执行文件和man文件,速度快,linux将所有文件记录在数据库中,其从数据库中查找

locate 查找文件,也是从数据库中查找,速度快,但数据库更新不及时,大至每天更新一次

4、文件内容操作命令

1)cat:查看文件内容,–n显示行号

cat a.txt b.txt 同时查看多个文件

2)more、less:分屏查看,enter翻行,空格向下翻页,b向上翻页,q键退出

3)head、tail:用于显示文件的开头或末尾部分内容

-n  输出文件的前n行或后n行,不指定则默认为10行

注:tail -f 动态显示内容的变化,如跟踪日志变化

4)wc(word count):统计文件内容中包含的行数、单词数、字节数等信息

-l 统计行数,例:wc /etc/passwd

-w 统计单词数

-c统计字节数(默认相当于三个选项都使用)

5)grep:查找并显示包含指定字符串的行

-i 查找时忽略大小写

-v 反转查找,即查找与条件不符的内容

“^#”表示以#开头,“…$”表示以…结尾,“^$”表示空行

例:grep nobody /etc/passwd      grep -v ^# /etc/hosts

5、归档与压缩

1)压缩gzip、bzip2

-9 此选项可提高压缩的比率

-d 表示解压缩,等同于gunzip或bunzip2

-c 将压缩后的文件输出到标准输出设备,需要和重定向>一起使用,仅适用于gzip

-r递归处理,将指定目录下所有文件和子目录一并处理,需要和-c一起使用,仅适用于gzip

-k bzip2在压缩或解压缩后,会删除源文件,使用此选项会保留原文件,仅适用于bzip2

注:①gzip和bzip2生成的文件后缀名分别为.gz和.bz2

②通常并不单独使用gzip和bzip2,而是与tar命令结合起来使用

③默认情况下,只能压缩文件,不能压缩文件夹,通过gzip可通过-rc选项压缩目录

④正常情况下,压缩或解压缩后原文件会消失,而打包或解包后原文件还在

⑤gzip -c install.log > install.log.gz    //压缩install.log为一个新文件,并保留原文件

  bzip2 -k install.log         //压缩install.log为install.log.bz2,并保留原文件

⑥zip和unzip用来解压缩.zip格式文件

   zip -r test.zip /etc/root            //将root目录下所有文件压缩成test.zip

   unzip test.zip -d /usr/src       //将test.zip文件解压到/usr/src目录

⑦7-ZIP是一个开源的数据压缩程序,扩展名为.7z,相比于其他压缩工具更好

2)归档tar:即打包,将多个零散的文件做成一个包,可以压缩,也可以不压缩

-c :创建.tar格式的包文件

-x :解开.tar格式的包文件

-z :调用gzip程序进行压缩和解压

-j :调用bzip2程序进行压缩和解压

-v :输出详细信息

-f :使用归档文件,在 f 之后要立即接档名,即f参数必须出现在所有参数的最后面,如zxvf

-C:解包时指定释放的目标文件夹

-t:查看包中的文件

-p:打包时保留原始文件及目录的权限

例:tar zcvf home.tar.gz /home

    tar zxvf home.tar.gz –C /usr/src

注:①使用tar命令时,选项前的“-”号引导字符可以省略

②创建压缩归档文件时会提示“tar: 从成员名中删除开头的/”,即保留相对路径,将绝对路径转为相对路径,避免解压缩时覆盖原文件,可以忽略此提示

6、vi编辑器

文本编辑工具:vi、vim、gedit、nano(功能简单)、emacs(功能很强大)

1)模式

命令模式(Command Mode):默认进入命令模式,又称为指令模式

输入模式(Input Mode):a、i、o、A、I、O进入输入模式

末行模式(Last line Mode):冒号进入末行模式

esc返回命令模式(或ctrl+c),只能从命令模式进入输入或末行模式,不能直接从输入进入末行模式

2)命令模式中的操作

   ^或0跳转到行首;$跳转到行尾

1G或gg跳转到第一行;G跳转到最后一行;nG跳转到第n行

PageDown或ctrl+f向下翻页;PageUp或ctrl+b向上翻页

:set nu 显示行号(:set nonu 取消显示行号)

/向下查找关键字,?向上查找关键字,按n键可以移动到下一个查找结果

dd剪切当前行

yy复制当前行;nyy 从当前行开始复制n行

p粘贴到当前光标下一行;P粘贴到当前光标上一行

u撤销最近一次操作

U撤销对当前行所做的编辑

x或Delete键删除光标处的单个字符,较少使用

3)末行模式中的操作

w保存

w!强制保存

q 退出

q!强制退出

x 保存退出,等同于wq

e 新的文件   //打开新文件进行编辑,当前文件必须已保存

r 其他文件  //将其他文件读入当前文件中

10,20y 复制第10行-20行之间的内容

:替换范围sub/旧的内容/新的内容/g (中间没有空格

sub可简写为s,替换范围默认为只对当前行的内容进行替换,%表示在整个文件中进行查找替换,n,m表示在指定行范围内进行查找替换,/g表示对替换范围内的每一行所有匹配结果都进行替换,省略时将只替换每行中第一个匹配结果

注:①vi在编辑文件时是对缓冲区中的临时交换文件进行编辑,只有当保存时才会写入文件

    ②如果文件已被另一个vi会话编辑或上一次未正常退出等情况,则会出现隐藏的临时交换文件.swp

    ③输入d可删除临时交换文件,使用原文件

    ④输入r可从临时交换文件中恢复数据,此时临时文件仍需要手动删除

    ⑤命令模式下输入关键字查找后关键字会始终以高亮显示,在末行模式下执行:nohl可取消高亮显示

    ⑥文件.vimrc是vi编辑器默认加载的参数配置文件,可在每个用户的宿主目录中建立~/.vimrc

     然后在.vimrc文件中设置默认参数,如显示行号、语法高亮等

 

补充:

1、awk文本处理工具

基于模式匹配检查输入,进行数据的过滤处理,将结果输出到屏幕

语法:awk  '模式 {操作}' 文件

内建变量:

NR:当前行的行号

F:字段分隔,默认为空行或tab位

$n:当前行的第n个字段,n为数字

$0:当前行的所有文本内容

用法示例:

#awk 'NR==3{print}' /etc/passwd                ----输出第三行

#awk 'NR==1,NR==3{print}' /etc/passwd          ----输出第1行至第3行

#awk 'NR==1||NR==3{print}' /etc/passwd         ----输出第1行和第3行

#awk 'NR%2==1{print}' /etc/passwd              ----输出奇数行

#awk '/bash$/{print}' /etc/passwd              ----输出以bash结尾行,正则表达式包含在/ /之间

#awk -F: '{print $1,$7}' /etc/passwd           ----输入以:分隔的第1、7字段

# awk -F: '$1=="root"{print $0}'  /etc/passwd  ----输出以:分隔且第1字段为root的行

#awk -F: '/bash$/{print $1,$7}' /etc/passwd    ----输出以bash结尾,以:分隔的第1、7字段

或#grep "bash$" /etc/passwd | awk -F: '{print $1,$7}'   ----模式可以省略

2、sed文本处理工具

 

 

3、.tar.xz文件的解压

这种文件是使用tar打包后再使用xz压缩生成的。解压方法是:

  1、xz -d **.tar.xz

  2、tar -xvf **.tar

如没有按照xz工具,则首先需要下载、安装xz工具:

  http://tukaani.org/xz/xz-4.999.9beta.tar.bz2

安装:

  1、tar -jxvf xz-4.999.9beta.tar.bz2

  2、cd xz-4.999.9beta

  3、./configure --prefix=/

  4、make

  5、sudo make install

注:xz是一种压缩文件格式,目标文件较gzip压缩文件(.gz或.tgz)小30%,较.bz2小15%。


猜你喜欢

转载自blog.51cto.com/12402007/2160442