Linux系统管理命令之管理文件和目录


内部命令与外部命令的区别:

内部命令是Shell自带能用help查看的命令。

外部命令为第三方软件安装的命令

一些快捷键:

Tab:自动补全命令。

反斜杠“\”:强制换行后在下一行出现的“>”提示符后可以延续上一行命令。

Ctrl+U: 删除当前光标处之前的所有字符内容。

Ctrl+K: 删除从当前光标处到行尾的所有字符内容。

Ctrl+L: 清屏。

Ctrl+C: 取消当前的命令。

获得帮助命令:

1)  help  //提示简单的命令格式 例子:help pwd

2)  --help  //显示应用命令字的格式及选项等帮助信息。例子: ls –help

3)  man  //手册页常用于外部软件在安装时为执行程序,配置文件的详细的帮助手册页,例子:man file   // file命令用于判断文件的类型

阅读man手册页时将以全屏幕的文本方式显示,使用方向键滚动一行文本,使用Page Up和Page Down键上下翻页,按Q或q退出手册页。按“/”可查找内容例子:“/-v”查找-v的帮助信息。按n或N进行上下定位选择。

4)info  //信息页(info Page)比man更详细的帮助手册,提供了不少主题间的跳转功能帮助。

例子:将ls命令的man手册页保存为文本文件lshelp.txt

# man ls | col –b > lshelp.txt

该命令中col命令用于过滤文本中的一些特殊控制字符。

| 管道符:类似水管,将该命令交给下一个命令处理。

>重定向输出:前面的命令成功执行后,其屏幕输出结果将保存到 > 号后边指定的文件中。

文件和目录管理

绝对路径与相对路径区别:

绝对路径全加“/”可是非常准确地表示一个目录或文件的所在位置。

相对路径开头使用“.”或“..”或“~”,一般用于表示当前工作目录作为起点。例子:“grub.conf”可表示当前目录下的grub.conf文件。

“./grub.conf”可表示同上。

“../vmlinuz”等同于/boot/vmlinuz。

“~teacher”可表示当前用户的宿主目录。

1 目录操作命令

pwd  //查看当前的工作目录

cd  //切换工作目录,进入文件夹。

ls  //列表形式显示目录内容:

-l:以长格式(Long)显示文件和目录的列表。

-a:显示所有(ALL)子目录和文件的信息,包括“.”开头的隐藏目录和文件。

-d:显示目录(Directory)本身的属性。

-A:与-a选项的作用基本类似,但不会显示“.”(表示当前目录),“..”(表示父目录)隐藏目录。

-h:以更人性化的方式显示出目录或文件的大小,默认单位为字节显示为K或M等单位。需要和-l选项结合使用。例子:ls  –lh  /etc/ns*.conf

-R:以递归(Recursive)的方式显示指定目录及其子目录中的所有内容。

--color:在字符模式中以颜色区分不同的文件,例子:--color=tty表示使用预定义的颜色方案。

mkdir  //新建文件夹(目录)

du  //统计目录及文件的空间占用情况

-a:统计磁盘空间占用时包括所有的文件。

-h:便于人性化阅读,单位K或M等。

-s:只统计每个参数所占用空间总的(Summary)大小。

例子:#du  -ah  /boot/vmlin*  //统计以“vmlin”开头的各文件所占用的大小。

#du  -sh  /var/log/  //统计该目录所占用空间的总大小。

文件操作命令

touch  //新建空文件

file  //查看文件类型

cp  //复制(Copy)

-f:强制复制,直接覆盖目标同名文件或目录

-i:覆盖目标同名文件或目录时进行确认提醒。

-p:复制时保持源文件的权限,属主及时间标记等属性不变。

-r:复制目录时必须使用,表示递归复制所有文件及子目录。

例子: #cp  /bin/touch  ./mytouch    //复制/bin/touch目录到当前目录下,并命名为 ./mytouch

#cp  -r  /boot/grub/  /etc/httpd/conf/  ./    //将这两个目录复制到当前目录中进行备份。

rm  //删除文件或目录

-f:强制删除文件或目录,不提醒。

-i:删除文件或目录并提醒用户确认。

-r:删除目录必须用此选项,表示递归删除整个目录树(谨慎使用)

mv  //移动文件或目录

例子:#mv  mytouch tfile.exe  //将当前目录中的mytouch文件改名为tfile.exe

which  //查找命令文件并显示所在的位置

-a:在所有搜索路径中查找

例子:#echo $PATH

#which ls      //显示当前默认搜索路径,并查找ls命令文件所在的位置。

find  //查找文件或目录

按名称查找:关键字“-name”,根据目标文件的部分名称查找可以使用“*”“?”通配符。

按文件大小查找:关键字“-size”一般使用“+”“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括 k  ,M ,G。

按文件属主查找:关键字“-user”,根据文件是否属于目标用户进行查找。

按文件类型查找:关键字“-type”,这里的类型指的是普通文件(f),目录(d),块设备文件(b), 字符设备文件(c)等。块为硬盘,内存等,字符为键盘,鼠标等。

例子:#find  /etc  -name  “resol*.conf”  //查找名称以resol开头,以.conf结尾的文件。

#find  /boot  -type d  //在/boot目录中查找所以的目录。

#find  /var/log  -user lp  //在/var/log目录中查找属于用户lp的文件或目录。

#find  /boot  -size +1024k –a name “vmlinuz*”  //在/boot目录中查找超过1024KB而且文件名以“vmlinuz”开头的文件。可用运算符“-a”或“-o”,-a为And ,-o为Or。

Find命令还可以对查找到的结果进行过滤处理,在表达式后添加一个“-exec”关键字,并设置过滤用的命令即可。在过滤命令中使用“{ }”表示find命令的查询输出结果,最后必须添加“ \”表示命令结束。注前面有一个空格!

例子:#find  /var/log  -user  lp  –exec  ls  –ld  { }  \ ;  //在/var/log目录中查找属于用户lp的文件或目录,并以长格式显示其详细信息。

ln  //为文件或目录建立链接(Link)

链接文件分为符号链接,硬链接两种类型,区别是:硬链接不能跨越不同分区创建的硬链接。

符号链接(软连接),需要添加“-s”选项。两个链接与直接访问原始文件的效果基本相同。

例子:#ln  -s  /etc/httpd/conf/httpd.conf  /etc/     //为文件httpd.conf创建符号链接文件并保存到/etc目录中,以便需要时查找该文件,ls  -lh  /etc/httpd.conf

#ln  /usr/sbin/system-config-network  /sbin  /mynetconfig   //为网卡配置脚本文件创建名为 mynetconfig的硬链接文件,以便通过它对网卡参数进行配置。

文件内容操作命令

cat  //显示并连接(Concatenate)文件的内容

more和less 命令  //分页查看文件内容

head和tail命令  //查看文件开头或结尾的部分内容

-f:默认开头或最后十行内容。

wc  //统计文件内容中的单纯数量等信息

-c:统计文件内容中的字节数

-l:统计文件内容中的行数

-w:统计文件内容中的单词个数

例子:#ls  -l  /etc/*.conf  |  wc  -l   //统计/etc目录中.conf配置文件的个数。

grep   //检索,过滤文件内容(正则表达式)

-i:查找内容时忽略大小写

-v:反转查找,即输出与查找条件不相符的行

例子:#grep  –v  “^#”  /etc/vsftpd/vsftpd.conf  |  grep  -v  “^$”   //查看vsftpd.conf文件中除了以#号开头的行和空行以外的内容。$:用于结束。

#lspci  |  grep  -i  “Ethernet”   //执行“lspci”命令查看主机中的PCI设备信息,并过滤出其中以太网卡设备的信息。

归档与压缩命令

gzip和bzip2命令  //制作压缩或解压缩的文件

-9:可以有效提高压缩的比率

-d:解压缩专用命令。

例子:#gzip  -9  tfile.exe  //创建压缩文件

#gzip  -d  tfile.exe.gz  //解压缩文件

tar  //制作归档或释放文件

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

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

-f:表示使用归档文件

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

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

-t:列表查看包内的文件

-v:输出详细信息

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

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

例子:#tar  zcf  sysfile.tar.gz  /etc  /boot     //备份/etc和/boot目录为sysfile.tar.gz包文件。

#tar  zxf  sysfile.tar.gz  //将sysfile.tar.gz包文件释放或解压到当前目录中。

Vi文本编辑器

#alias vi =’ /usr/bin/vim’

#which –a vi vim     //设置命令别名vi,以便执行vi命令时加载增强版的vim程序。

工作模式:命令模式,输入模式,末行模式。

模式切换:a , i , o , A ,I ,O

光标操作:方向键调整位置,  Page UP(Ctrl+B)  Page Down(Ctrl+F)翻页,行内快速跳转“^”或“0”跳转到首行,End或$跳转到本行结尾。行间快速跳转gg跳转到第一行G跳转到文件最后一行,#G跳转到文件中第#行(#用具体数字替换),:set  nu显示行号,:set  nonu取消显示行号。

复制粘贴删除:使用x或Del按键删除光标处的单个字符

Dd删除光标前内容,#dd删除从光标处开始第#行内容(#以具体数字代替)

Yy复制当前行整行的内容到剪贴板,#yy意思同上。

按p键可将内容粘贴到光标处之前。

U或u撤销编辑及保存退出,u:用于取消最近一次的操作,可进行多步恢复,U:取消对当前行所作的所有编辑。可按ZZ命令保存退出。

末行模式基本操作:

:w  //保存,另存为

:q!  //强行退出不保存

:wq  //保存并退出也可用:X

打开新文件或读入其他文件内容:

:e  ~/install.log   //打开当前目录下该文件进行编辑

:r  /etc/filesystems  //将该文件的内容复制到当前目录中

文件内容替换:

:替换范围 sub  /旧的内容/新的内容  /g

%:在整个文件内容中进行查找替换

n,m:在指定行数范围以内的文件内容中进行查找并替换

/g:可选内容结尾处,省略的话只替换每行中的第一个匹配结果

例子::sub  /i/r   //将当前行中的第一个i字母替换为大写I

:10,20  sub  /initdefault/DEFAULT/g    //把10~20行内的initdefault字符串替换为DEFAULT字符串。

:%  sub  /initdefault/DEFAULT/g   //把文件所有的initdefault字符串全部替换为DEFAULT字符串。

相关内容