【二】Linux系统文件和目录管理等常用命令

时间:2022-11-01 16:28:26

1·Linux命令

用于实现某一类功能的指令或程序;命令的执行依赖于解释器程序shell,解释器程序默认路径:/bin/bash ,也就是内部命令的默认路径。

 

  命令分类:内部命令(linux系统自带的shell解释器里面的命令)和外部命令(安装普通应用程序而带来的命令)

 

  取别名:alias

  用法:alias  别名 = ‘旧名’

  如  aliasmyls = ‘ls –alh’

  取消别名:unalias  别名  如:unaliasmyls

 

2·Linux命令的格式

  命令字  [选项]  [参数]

  选项:用于调节命令的具体功能(选项的个数可以是多个,但是要用空格隔开;短格式选项用单个杠,长格式选项用双杠,如:-l   -a    -f    --set   --date   --help;短格式一般合起来使用,如-alh;有的选项功能相同但是既有长格式又有短格式,可以混用)

  参数:命令操作的对象,如文件、目录(路径)名、用户名等。(参数也可以是多个)

(跟dos命令格式里关于选项、参数的说法对调过来而已,dos里选项的意思等价于Linux里的参数)

 

3·命令行编辑的几个辅助操作

Tab键:自动补齐(重点)

反斜杠\:强制换行(重点)(用于一次输入的命令过长时,注意使用时与命令之间要有空格)

快捷键Ctrl+U:快速删除光标之前的所有字符

快捷键Ctrl+K:快速删除光标处到行尾的所有字符

快捷键Ctrl+L:清屏(等价于clear命令)

快捷键Ctrl+C:取消当前命令的编辑或执行(重点)

 

4·获得命令帮助:4种

①  help  内部命令:查看bash内部命令的帮助信息,例子:help cd

②  命令名   --help(两个-):适用于大多数外部命令,例子:shutdown --help

③用man  命令

  阅读手册页:翻行、翻页、退出阅读环境、查找内容。

  例子:man shutdown(man中是全屏查找,可用方向键和翻页键Pageup、pagedown进行操作,(文末有出现冒号时)输入“/字符”,可以定位查询到包含该字符的文件位置,按键n和N可以定位切换要查找的是哪一个,按键“q”可以退出)

④  用info  命令阅读信息页,例子:info  help(快捷键:q 或者ctrl+c退出)。

  (man和info都是在线查找,推荐使用man手册)

 

5·管道符:

① |     前面命令作用的结果作为后面命令的对象

②  >    覆盖重定向

③  >>   追加重定向

④  <    读入重定向

 

6·相对路径:表示后面的路径都是位于当前工作目录下面,所以对于当前目录而言称为相对路径,使用时不需要接上根目录/        点杠(./)表示当前目录 

绝对路径:物理路径,都是以根目录/开头(推荐使用)

 

7·目录操作命令

pwd、cd、ls、dir、mkdir、du

①  pwd查看当前工作目录(print working directory)

 

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

  一个点 . 表示当前目录

  两个点 .. 表示上一级目录(父目录)

 

  cd  -    显示下一级目录并进入

  cd  ..   或者   cd   ../  切换到上一级目录

 

  cd         切换到当前用户的宿主目录

  cd  #      切换到当前/root用户的宿主目录

  cd   ~      切换到当前用户的宿主目录(如果当前的用户是root用户,就进入/root目录)

  cd   ~zhangsan  切换到用户zhangsan的宿主目录

  cd --     切换到当前用户的宿主目录

 

③  ls:(list)列表显示目录里面的内容(目录和文件)

      (dir在Linux也可以使用,但没有像ls的颜色区分)

后面接的选项有:

  –l(long)以长格式显示(权限、用户、用户组、大小、创建时间);【一般使用  ll,相当于  ls -l 】

  -a(all)显示所有文件,包括隐藏文件;

  -A跟-a类似,但不显示“.”、“..”隐藏目录;

  -d显示目录本身的属性,而不显示目录中的内容。

  -h(human)以更易读的字节单位(K、M、G等)显示信息,一般和l一起使用;缺省时大小单位实际为KB。

  -s  表示文件占用的硬盘大小(不是文件实际大小,可能还包含隐藏文件)(summary)

  -R以递归(Recursive)方式显示内容

  -i(唉)表示显示索引节点号(可以理解为磁盘柱面号)(如果文件够大,会直接用M、G表示)

  --color(两个--),在字符模式中以颜色区分出不同的

一般连用: -lhis

 

(--color=tty,表示使用终端预定义的颜色方案: 深蓝色表示目录,白色表示一般文件(如文本文件,配置文件,源码文件等),红色表示压缩文件或者包文件,绿色表示可执行文件,黄色表示设备文件,浅蓝色表示链接文件,红色闪烁表示链接文件有问题。可以用  dircolors  –p 可以查看缺省的颜色设置。

 

lspci   查看主机中的PCI信息

lscpu  查看主机cup的信息

 

④  mkdir目录名1  目录名2  目录名3……:创建新的目录

(mkdir即make directory,在windows和linux中通用,但是md只能在windows中使用)

  -p 如果需要创建的目录的上一级目录是不存在的,必须接上-p

  如:mkdir  –p  /media/cdrom

 

⑤du:统计目录及文件的空间占用情况(estimate(估计) file space usage)

  -a表示统计所有文件大小,包括所有文件(不接,表示只统计目录大小)

  -h人性化方式显示

  -s只统计参数所占用空间总的(summary)大小,不包含其子目录

 

8·通配符

  星号(*)  替代0个或者多个字符;

  问号(?)  替代一个字符

 

  区别:1?   在windows中会显示:1   1.2

          在linux中只会显示:  1.2

 

9·文件操作命令

touch、file、cp、rm、mv、查找、ln(一般而言,目录没有后缀名,而文件有后缀,如: .conf、   .exe)

①   touch文件名1  文件名2  文件名3……:创建空文件(不限定文件类型)(如果目标文件存在,则更新目标文件的时间标记,从而就修改了其时间属性)

 

②  file  文件名或路径:查看文件类型(识别不了文本文件)

 

③  cp   [选项]    源文件或目录   目标文件或目录

    复制文件或目录用绝对路径

  -r或者-R  递归复制整个目录树,即复制目录(复制目录时必须要使用-r)

  -p保持源文件的属性(权限、属主、时间标记)不变 (preserve)

  -f强制覆盖目标同名文件或目录,即覆盖不进行提醒(force)

  -i需要覆盖文件或目录时进行提醒(interactive,交互式)

例如1:cp  -r  /boot/grub/  /etc/httpd/conf/    ./mydir

  将目录/boot/grub和/etc/httpd/conf复制到当前目录并命名为mydir(./表示当前路径,复制目录时目录名后面可以加/)

例如2:cp /etc/inittab  /etc/inittab.bak

  将/etc/inittab文件复制一份,仍然保存在/etc目录下,文件名添加.bak后缀。

需要注意的是使用cp -i时,要先去掉别名:unalias cp,不然-f参数不生效(即cp目录 –i不起作用)

 

④  rm   删除(remove)文件或目录(文本模式中的删除是不能恢复的,须格外小心,一般使用-rf)

  -r递归删除整个目录树,删除目录必须使用-r

  -f强行删除不提醒

  -i删除进行提醒【默认会提醒,因为隐式别名的原因:alias rm=‘rm -i’】

 

⑤  mv   移动文件或目录(剪切或者重命名,用的最多的是重命名)

    (dos中是move,是剪切或重命名)    

  用法:mv  [选项]  源文件或目录目标文件或目录

    (原路径与目标路径一样表示重命名,剪切后重命名)

 

⑥查找:4种

which    判断命令文件是否存在并定位到该路径(只能查找外部命令(cd是内部命令);找到第一个以后就不再继续查找,如要找出全部,接上 -a )

whereis  用于查找二进制文件、源码文件,定位可执行文件位置

  (不可以找命令)

locate  查找命令,按数据库进行查找,速度较快(新建的命令查不到,因为还没有写进数据库)

find     查找所有的文件,由于是按照硬盘目录查找,所以查找速度较慢

  用法:find  目录或路径选项条件

选项有:

  -name按文件名查找;

    如:find /etc –name ‘resol*.conf’      (在/etc目录中查找名字以resol开头以.conf结尾的文件)

  –type按文件类型查找;后面接的参数有:f普通文件,d目录,b块设备文件,c字符设备文件。(块设备是指成块读取数据的设备,如硬盘、内存;字符设备是指单个字符读取数据的设备,如键盘、鼠标

  -user按所属主查找;

  -group按所属组查找;

  -size按文件大小查找;(+表示超过,-表示小于,直接接大小表示等于;大小单位:k小写(默认),单位还有M,G,c字节,w单词)

    例如1:find /etc –name ‘resol*.conf’  -a  –size +1048k   (在/etc目录中查找名字以resol开头以.conf结尾,并且大小超过1048k的文件)

      {注意逻辑符号:-a表示and,并且;-o表示or,或者}

      {locate   相当于 find  路径   -name条件 }

    例如2: find   /boot   -type   d     查找/boot目录下的目录

    例如3: find   /var/log  -user  zhangsan

 

 

⑦ ln   创建链接文件

语法:ln       [-s]   源文件或目录  目标文件或目录

  ln–s符号链接,也称为软链接,相当于是创建快捷方式(源文件删除则软链接文件失效)

  ln硬链接,相当于是复制(源文件删除不影响硬链接文件)

  (无论软链接文件还是硬链接,不管以后修改的是链接文件还是源文件,修改之后其他的都会随着发生变化。目录不能进行硬链接。)

    例如:ln  -s  /usr/sbin/system-config-netwok  /sbin/mynetconfig

  链接一定要使用绝对路径,浅蓝色表示有效链接文件,红色表示无效的链接文件

  查询结果中,硬链接主要看文件个数(第二个字段)多于一个(一般为2;并且第一个字段首字母不是l,而是横杠-),软连接看文件类型和颜色(首字母为l)

 

10·文件内容操作命令

cat、more、less、head、tail、wc、grep

#行一般表示为注释信息

①  cat:查看并链接(concatenate)文件内容,支持所有文件(命令、目录、文件等);

cat/ls   文件或路径   管道符|     more

  例如1:cat /etc/passwd | more (more是最早的一个选项只能enter键往下逐行翻看,具有单向性)

cat/ls    文件或路径    管道符|     less

  例如2: cat /etc/passwd | less (方向键的上下键可以调整)

cat  -n   文件名   :给文件内容加行号。

 

②  more/less     文件或路经       分页查看文件内容

(enter键向下逐行查看,b键向上翻屏,空格键向下翻屏,按q退出)

 

head –n 文件名:n表示数字,意思是选取前面的n行;

    (不加-n,表示默认10行)

tail –n 文件名:意思是选取后面的n行;(不接数字默认n=10,,显示10行内容)

    例子:ls –lh  a.txt | head -5  表示显示文件a.txt的前五行内容

  tail –f  文件名        截取文件后部分(默认10行,follow)

 

⑤    wc(word count)统计文件内容中的单词数量等信息

语法:wc    [选项]   文件名

选项有:

    –l      行数

    -w     单词个数

    -c/m    字节数

    -l     最长行的长度

      (不加选项默认统计:行数、单词数、总的字节数)

(换行符、空格也算一个字节,一个字母一个字节,一个符号也是一个字节)

例子1:wc –c a.txt 

例子2:ls / | head -5 |wc –c

 

⑥   grep      [选项]      查找条件目标文件

  在文件中查找包含指定字符串的行,即文件内容检索过滤,可以类比windows中的findstr。

  一般与cat命令加上管道符|一起使用,例如:cat  a.txt  |  grep  -v  “^$”   (找出 a.txt 文件中所有不是空行的内容)

  -i:查找时忽略大小写(ignore case)

  -v:反转查找(invert),输出与查找条件不符的行

查找条件的设置:要查找字符串中包含某内容,要用双引号括起来:

  “^…..”  表示以…..开头,

  “…$”  表示以…结尾,

  “^$”  表示空行

  “[…]”  包含有…范围以内字符的内容

  “[^…]”  排除…范围以内的内容

  “[x-z]”   表示查找包含小写字母的行

  “[0-9]”  表示查找包含数字的行

  “[…]*”        表示重复之前的内容,如9*表示连续出现9

  “\<”           表示行首以特定的内容开始

  “\>”            表示行尾以特定的内容结尾

 

例子:

grep  –i  “a”  a.txt    找a.txt文件中带有字母a或A的所有行

grep  “^f”  a.txt   显示文件中以字母f开头的所有行,区分大小写

grep  “a$”  a.txt   显示文件中以字母a结尾的所有行,区分大小写

grep  -v  “^$”  a.txt    显示文件中除了空行以外的所有,

grep “^name$”  a.txt          显示a.txt中的有单独字符串name的行

grep  “[0-9]”  a.txt   显示文件中带有数字的所有行

grep  –i  “[a-z]”  a.txt    显示文件中带有字母的行,不区分大小写

grep“^[0-9]*[0-9]$”a.txt    找到文件中纯数字的所有行

 

11·压缩与解压缩文件

归档:是指为文件或目录备份,建立归档文件。

打包:是指将一大堆文件或目录变成一个文件;

压缩:是指将一大堆文件通过一些压缩算法变成一个小文件。

 

(A)、 gzip与bzip2的压缩与解压缩

1.压缩:接上参数-9表示高压缩比例,一般来说,bzip2的压缩效率要高些

gzip     选项    文件名*.gz    目标文件路径:生成一个.gz结尾的压缩包

bzip2   选项    文件名*.bz2  目标文件路径:生成一个.bz2结尾的压缩包

 

2.解压缩:-d  或者 un

gzip   -d       文件名.gz     或者     gunzip       文件名.gz:解压.gz结尾的文件名

bzip2  -d     文件名.bz2    或者     bunzip2     文件名.bz2:解压.bz2结尾的文件名

 

3.判断bzip2、gzip压缩命令用法:

可以压缩目录吗?不能

可以压缩.rar的吗?不行(需要下载第三方可以压缩.rar的工具)

可以一次压缩多个文件吗?可以

可以一次解压缩多个文件吗?可以

可以压缩在一个文件里吗?不行

只能在同一个文件夹(路径)进行压缩或解压缩?对

压缩和解压缩以后,原来文件存在吗?  不存在

 

(B)、  zip的压缩与解压缩:

zip   选项  文件名.zip     原文件名:制作zip格式的压缩包

unzip   选项  文件名.zip:zip包解压缩(不可以使用-d)

 

  zip压缩与gzip、bzip2的相同点:都不能压缩目录,都不能压缩.rar格式的文件,都可以一次作用多个文件,都不可以压缩到同一个文件,都必须在当前路径下压缩,

  zip压缩与gzip、bzip2的唯一区别是:gzip、bzip2压缩后只存在压缩或解压后的文件,不存在原文件;而zip压缩或解压后仍然存在原文件

 

对同一个文件可以轮流用gzip、bzip2、zip进行压缩;如  文件*.gz.bz2.zip 就是经过多次不同压缩方式压缩后的文件,对其解压要由外及内一层一层解压。

 【二】Linux系统文件和目录管理等常用命令

 

(C)、 .tar:制作归档文件或释放已归档的文件。

  跟zip压缩一样,在归档后会存在原文件和压缩文件。

    tar对文件和目录都可以进行归档,而不进行压缩,但是在实际中,在归档的同时也会用-z调用gzip,-j调用bzip,来将包文件进行压缩

 

A.制作归档及压缩(备份)文件:-c   (create)

tar  -zcvf     文件名.tar.gz        需要压缩的文件名

tar  -jcvf      文件名.tar.bz2      需要压缩的文件名

  .tar和.gz、.bz2的位置可以互换,

  .tar.gz可简写为.tgz;.tar.bz2可简写为.tbz2

tar命令可以将多个文件压缩到一个tar包里

    例如:tarjcvf myhome.tar.bz2  /home /etc/passwd /etc/shadow   (将/home目录及/etc/passwd和/etc/shadow文件一起备份为myhome.tar.bz2包。)

B.解压并释放(恢复)压缩包文件:-x  (explode)

tar  -zxvf    归档及压缩文件名.tar.gz      [-C 目标路径]

tar  -jxvf     归档及压缩文件名.tar.bz2    [-C 目标路径]

    例如: tar    –jxvf     /88/8.tar.bz2    –C  /a 

    不接[-C 目标路径]表示当前路径解压

 

选项含义:

-v:以进度条的方式显示详细信息(verbose)

-f:表示使用归档文件的形式

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

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

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

 

12·vi文本编辑器

  作用:创建或修改文本文件;维护Linux系统中的各种配置文件

  vi:类Unix系统中默认的文本编辑器

  vim:vi编辑器的增强版本,习惯上也称为vi(vim字体多颜色,vi是黑白)

 

单独vi命令可以查看vi版本信息,which vi或者which vim可以查看路径

vi  文件名 进入该文件的vi模式(若该文件不存在,则创建并进入新的空文件)

 

对系统以前的配置文件进行修改时最好对原始部分进行注释 (行首加符号 #)

 

 

 

vi界面中的三种模式:

      进入vi编辑器时默认是命令模式,

    有“—INSERT--”是输入模式,“--REPLACE--”是替换模式(需要多按一次insert键),

    有“:”的是末行模式

【二】Linux系统文件和目录管理等常用命令

 

(一)、命令模式中的按键操作

(A)、 命令模式中的光标移动

【二】Linux系统文件和目录管理等常用命令

 

(B)、 命令模式中的复制、粘贴、删除。

【二】Linux系统文件和目录管理等常用命令

d^  表示删除当前光标到行首的所有字符;

d$  表示删除当前光标到行尾的所有字符;

#dd (此处#表示行数数字) 表示删除从当前光标开始的#行字符。

#yy  表示复制从光标开始#行内容

 

(C)、命令模式中的撤销编辑及保存退出

u  撤销最近一次的操作,并恢复操作结果,可以多次操作来恢复在当前行的操作。

U  撤销对当前行的所有操作。

ZZ  是保存并退出vi编辑器

 

(D)、查找:

/  关键字(从光标处向后查找)

?  关键字(从光标处向前查找)

N或者n  显示要找的内容

 

 (二)、输入模式(快速进入输入模式a、i、o)

【二】Linux系统文件和目录管理等常用命令

【二】Linux系统文件和目录管理等常用命令

 

(三)、 末行模式

1>.保存退出操作:

 【二】Linux系统文件和目录管理等常用命令

vi d.txt 之后就保存( :wq),这样可以创建一个空白的文本文件 d.txt

:w  /root/       newfile     将当前编辑的文件保存到指定路径 /root 为新的文件 newfile

 

2>.替换文件内容:sub(substitute)可以简写为s

【二】Linux系统文件和目录管理等常用命令

 

 

:n,ms/old/new          n和m表示行号,表示替换从n行到m行符合条件的每行第一个内容

:n,ms/old/new/g       n和m表示行号,表示替换从n行到m行的符合条件的所有内容

  S后面可以没有空格

 

:n,ms /old/new           n和m表示行号,表示替换从n行到m行符合条件的每行第一个内容

:n,ms /old/new/g        n和m表示行号,表示替换从n行到m行符合条件的所有内容

:%  s  /old/new/g         表示替换所有符合条件的内容

 

3>.其他输入:

:e  文件名  打开文件并编辑

:r  文件名  读入文件并复制到当前光标处

:set  nu     显示行号

:set  nonu  取消显示行号

:set  nohls  取消高亮状态(vim模式才有效果)

 

13.比较两个文件的不同

diff 命令用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方,并在命令行中打印每一个行的改动。

diff  [选项]  [文件1或目录1]  [文件2或目录2]

-c  显示全部内容,并标出不同之处。

-a或--text  diff预设只会逐行比较文本文件。

-d或--minimal  使用不同的演算法,以较小的单位来做比较。

-i或--ignore-case  不检查大小写的不同。

-b或--ignore-space-change  不检查空格字符的不同。

-B或--ignore-blank-lines  不检查空白行。

-s或--report-identical-files  若没有发现任何差异,仍然显示信息。

-r或--recursive  比较子目录中的文件。

-q或--brief  仅显示有无差异,不显示详细的信息。

-v或--version  显示版本信息。

-w或--ignore-all-space  忽略全部的空格字符。

--help  显示帮助。