AI智能
改变未来

linux常用文件命令

一、选项和参数的区别

       在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着“选择“(英文名:options)或“参数”(英文名:agruments)。即Linux中的命令格式为:

command [options] [arguments]  //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个选项或参数。

options(选项):选项是调整命令执行行为的开关,即,选项不同决定了命令的显示结果不同。

选项分为长选项和短选项。

短选项:例如-h,-l,-s等。(- 后面接单个字母)

              1、短选项都是使用 ‘-’  引导,当有多个短选项时,各选项之间使用空格隔开

              2、有些命令的短选项可以组合,例如 -l -h 可以组合为-lh

              3、有些命令的短选项可以不带 – ,这通常叫做BSD风格的选项。例如ps aux

              4、有些短选项需要带选项本身的参数,例如 -L 512M

长选项:例如 –help,–list 等。(– 后面接单词)

              1、长选项都是完整的单词

              2、长选项通常不能组合

              3、如果需要加参数,长选项的参数通常需要 \”=\”,例如 –size=1G

agruments(参数):

              参数是指命令的作用对象。

              例如 ls 命令,不加参数的时候显示是当前目录,也可以加参数,例如 ls /dev,则输出的结果是 /dev 目录。

小结一下:

              选项是限定结果的显示结果

              短选项( – ):只能修饰一个字符的选项,例如:ls -a,当然多个短选项可以合并,例如tar -cvf

              长选项( — ):既可以修饰单个字符,也可以修饰一个单词,例如:chkconfig –list,chkconfig –add xxx,service –status-all

              参数是指命令的作用对象

 我这里简单说明了选项和参数的区别,但具体Linux中哪条命令有哪些选项和参数,需要我们靠经验积累或者查看Linux的帮助了(man帮助命令)。

二、权限管理:UNIX权限:U(rwx)g(rwx)0(rwx)

r   –可读权限

w  –可写权限

x  –可执行权限

 

也可以用数字来表示 :

r=4 w=2 x=1 

例:rwx = 7(4+2+1)  ;  rw = 6   (4+2)   ;   r-w = 5   (4+0+1)   ;   r– = 4   (4+0+0)   ;   –x = 1   (0+0+1);

示例:

(1)# chmod 777 test1  –赋予test1可读可写可执行权限(所有权限)

(2)# chmod 755 test1 –赋予test1用户所有权限,组可读可执行权限,其他用户可读可执行权限

 

三、Linux入门基础命令–文件和目录常用操作命令

       在学习之前我们得先了解一下绝对路径和相对路径这两个概念

绝对路径:

              在Linux中,绝对路径是从/(即根目录)开始的,例如 /usr、/etc/X11。如果一个路径是从 / 开始的,它一定是绝对路径。举几个示例

[root@srv1 ~]# pwd   –判断当前用户所在的位置,也就是说他现在到底位于哪里
/root                           –用户当前位于/root

[root@srv1 doc]# cd /usr/share/doc/    –以绝对路径方式进入/usr/share/doc目录下
[root@srv1 doc]# pwd                          –判断用户当前所在的位置

/usr/share/doc                                      –用户位于/usr/share/doc,看来已经达到目的了

相对路径:

              是以 . 或 .. 开始的,  .户当前操作所在的位置,而 .. 表示上级目录,在路径中, .  表示用户当前所在的目录,而 .. 上级目录,要把 . 和 .. 当做目录来看,这里也举几个例子

 

[root@srv1 ~]# pwd  –通过pwd来判断当前用户所在的位置
/root                          –得出目录处于/root目录中;
[root@srv1 ~]# cd .    –我们进入 .
[root@srv1 ~]# pwd   –判断当前用户所在的位置

/root                          –得出在root目录中
[root@srv1 ~]# cd ..   –我们切入/root的上级目录
[root@srv1 /]# pwd    –判断当前用户所在的位置
/                                  –用户当前处于 /(根目录)中              

       下面来讲讲Linux中文件和目录中常用命令的【命令作用】,【命令语法】,【常用选项】,【参数说明】和【命令示例】

1.ls

【命令作用】

 列出文件和目录的内容

 

【命令语法】

ls    [选项]    [参数]

【常用选项】

-l    –以长格式显示,列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等

-L    –列出文件的链接名,Link(链接)

-A   –列出除了 \”.\” 和 \”..\”以外的文件

-a   –列出文件下所有的文件,包括以 \”.\” 和 \”..\”开头的隐藏文件 (Linux下文件隐藏文件是以 . 开头的,如果存在 .. 代表存在着父目录)

-d   –列出目录本身而非目录内的文件,通常要与-l一起使用

-i    –显示每个文件的inode号

-R   –同时列出所有子目录层,与-l相似,只是不显示出文件的所有者,相当于编程中的“递归”实现

-t    –按照时间进行文件的排序,Time(时间)

-F   –在每一个文件的末尾加上一个字符说明该文件的类型。\”@\” 表示符号链接、\”l\” 表示FIFOS、\”/\” 表示目录、\”=\” 表示套接字。

-s    –在每个文件的后面打印出文件的大小,size(大小)

-S    –以文件的大小进行排序

【参数说明】

目录或文件  (需要注意绝对路径和相对路径,详解请看第二部分开头)

【命令示例】

# ls  -l    –以长格式列出当前目录中的文件及目录

 

2.pwd

【命令作用】

  查看”当前工作目录“的完整路径 

【命令语法】

pwd    [选项]

【常用选项】

【参数说明】

一般情况下不带任何参数

【命令示例】

# pwd   –查看默认工作目录的完整路径 

 

3.cd

【命令作用】

显示当前目录的名称,或更改当前的目录(打开特定目录)

【命令语法】

cd    [选项]    [参数]

【常用选项】

【参数说明】

切换用户当前目录,例如 . 表示当前目录 .. 表示上一级目录 ,~ 表示家目录 / 表示根目录

【命令示例】

[root@srv1 ~]# cd     –切换到前期用户家目录
[root@srv1 ~]# cd .   –切换到当前目录
[root@srv1 ~]# cd ..  –切换到当前目录上一级目录
[root@srv1 /]# cd ~   –切换到用户家目录
[root@srv1 ~]# cd /   –切换到根目录下

 

 4.touch

【命令作用】

创建空文件或文件时间戳修改

【命令语法】

touch    [选项]    [参数]

【常用选项】

-a  –修改文件的存取时间

-m  –修改文件的变动时间

-t    –使用指定的日期时间,而非现在的时间

-c   –如果要修改的文件不存在,此选项使touch不去创建它 

-d   –使用时间值 time代替指定文件的戳记值.可以包含月份名,时区名以及`am\’和 `pm\’等等

-f  –此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题

-r    –把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同

-t  使用指定的日期时间,而非现在的时间

【参数说明】

创建文件的文件名

【命令示例】

# touch /home123   –在home目录下创建文件123 (这是一个绝对路径)

 

5.echo

【命令作用】

 在显示器上显示一段文字,一般起到一个提示的作用

 补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

【命令语法】

 echo    [选项]    [参数]

【常用选项】

 -e  –允许下面列出的加反斜线转义的字符进行解释

         \\n   –换行符

         \\f    –换页符

         \\t    –水平制表符

         \\v   –纵向制表符

【参数说明】

 需要打印的内容或变量

【命令示例】

(1)文本的直接输入:

# echo \’Welcome To WCZY\’    

(2) 输出变量的值:假设定义一个变量:

# bl=\”Welcome To WCZY\”

# echo $bl

解释:bl是定义的变量名,=号后面是赋值,字符串需要用“”括起来。$后面直接跟上变量名即可

(3)echo 后跟单双引号的区别:

 

解释:echo后的单引号表示强引用,单引号里面是什么就输出什么,而双引号是弱引用,变量的值会代替变量名输出。

(4)选项中加入 -e ,转义字符可用:

          \\t:插入制表符,即跳格显示

          echo -e “Hello Linux\\tHello World” 

          不加 -e 的对比,如下:

          echo \”Hello Linux\\tHello World\”

 

6.mkdir

【命令作用】

创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

【命令语法】

mkdir    [选项]    [参数]

【常用选项】

-p  –可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录(递归)

-v  –每次创建新目录都显示信息

-m  –设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask

【参数说明】

需要创建的目录

【命令示例】

(1)创建一个空目录

# mkdir test1

(2)递归创建多个目录

# mkdir -p test2/test22

(3)创建权限为777的目录

 # mkdir -m 777 test3

test3 的权限为rwxrwxrwx

(4)创建新目录都显示信息

# mkdir -v test4

 

7.cp

【命令作用】

复制文件或者目录

【命令语法】

cp [选项]    源    目标

【常用选项】

-f   –如果目标文件无法打开则将其移除并重试(当 -n 选项存在时则不需再选此项)

-n  –不要覆盖已存在的文件(使前面的 -i 选项失效)

-i   –覆盖前询问(使前面的 -n 选项失效)

-p  –保持指定的属性(默认:模式,所有权,时间戳),如果可能保持附加属性:环境、链接、xattr 等

-P  –不跟随源文件中的符号链接

-R,-r  –复制目录及目录内的所有项目

-v  –显示过程 (通常与-r一起使用)

-s  –对源文件建立符号连接,而非复制文件

【参数说明】

源文件

目标文件

【命令示例】

(1)将home目录中的abc文件复制到根目录下

# cp /home/abc /

(2)目标文件存在时,会询问是否覆盖

# cp /home/abc /

解释:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。

(3)复制整个目录

 

当目标目录不存在时

 

解释:注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面

(4)复制的abc文件建立一个连结档abc.log

# cp -s abc abc.log

 

 

 

8.mv

【命令作用】

移动文件或者将文件改名(move (rename) files),经常用来备份文件或者目录。

【命令语法】

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

【常用选项】

-b  –若需覆盖文件,则覆盖前先行备份

【参数说明】

源文件

目标文件

【命令示例】

(1)文件改名

# mv abc qwe 

解释:将文件abc重命名为qwe

(2)移动文件

# mv test3 test4

 

9.rmdir

【命令作用】

删除空目录

【命令语法】

rmdir    [选项]    目录

【常用选项】

-p  –递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。

-v  –显示指令执行过程

【参数说明】

需要删除的目录

【命令示例】

(1)不能删除非空目录

# rmdir bus

(2)递归删除当前目录下的1/2/3/4/5/6目录

# rmdir -pv 1/2/3/4/5/6

 

10.rm

【命令作用】

删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在 /(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

【命令语法】

rm    [选项]    文件

【常用选项】

-f  –忽略不存在的文件,从不给出提示

-r –指示rm将参数中列出的全部目录和子目录均递归地删除。

【参数说明】

需要删除的文件或目录

【命令示例】

(1)删除某个文件时,系统会先询问是否删除

# rm 文件名

解释:输入rm qwe命令后,系统会询问是否删除,输入y后就会删除文件,不想删除文件则输入n。

(2)强制删除某个文件

# rm-rf abc.log

解释:强制删除文件abc.log

11.nano

【命令作用】

文本编辑器

【命令语法】

 nano    [选项]    [+行,列]    [参数]

【常用选项】

【参数说明】

文件名

【命令示例】

# nano abc  编辑名为abc的文本

12.vi/vim

【命令作用】

文本编辑器,若文件存在则是编辑,若不存在则是创建并编辑

【命令语法】

vim    [选项]    [参数]

【常用选项】

 

【参数说明】

文件名

【命令示例】

# vim abc 编辑名为abc的文本

13.shred

【命令作用】

用随机值重写覆盖文件,让文件无法恢复

【命令语法】

shred    [选项]    文件    [参数]

【常用选项】

-n  –自行指定重写覆盖的次数,默认为三次

-s  –覆盖指定的字节数(可接受K、M、G等等的单位)

-u  –在重写覆盖后截断和删除文件

-v  –显示过程

-z  –添加一个带有0的最终覆盖,以隐藏分解

【参数说明】

指定要覆盖的文件名

【命令示例】

# shred -n 3 -u app  覆盖app文件三次,并删除

 

14.cat

【命令作用】

连接文件并在标准输出上输出。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

【命令语法】

cat    [选项]    [参数]

【常用选项】

-E  –在每行结束显示 $

-n  –给所有输出行编号

-v  –使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

【参数说明】

文件名

【命令示例】

(1)将123和456的内容输入到789里

# cat 123 456 > 789

(2)显示123文件内容和换行符

# cat -E 123

(3)显示123文件内容

# cat 123

(4)显示123文件内容和行号

# cat -n 123

 

15.nl

【命令作用】

计算文件中行号。nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 。 等等的功能。  

【命令语法】

nl    [选项]   [参数]

【常用选项】

-b a  –表示不论是否为空行,也同样列出行号(类似 cat -n)

-b t   –如果有空行,空的那一行不要列出行号(默认值)

【参数说明】

文件名

【命令示例】

(1)用nl列出/(根目录)123文件里的内容

# nl /123

(2)用 nl 列出/123文件的内容,空本行也加上行号

# nl -b a /123

 

16.tac

【命令作用】

倒序查看指定文件内容

【命令语法】

tac    [选项]    [参数]

【常用选项】

【参数说明】

文件名

【命令示例】

# tac /123  –倒叙查看/123文件内容

 

17.more

【命令作用】

类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

【命令语法】

more    [选项]    [参数]

【常用选项】

【参数说明】

文件名

【命令示例】

(1)# more [文件名]  –分屏查看指定文件内容

(2)显示文件中从第3行起的内容

 

# more +3 /123

(3)从文件中查找第一个出现\”1a\”字符串的行,并从该处前两行开始显示输出 

# more +/1a /123

(4)列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来 

# ls -l | more -7

解释:每页显示7个文件信息,按 Ctrl+F 或者 空格键 将会显示下5条文件信息。

18.less

【命令作用】

工具也是对文件或其它输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

【命令语法】

less    [选项]    [参数]

【常用选项】

【参数说明】

文件名

【命令示例】

 (1)# less 123  –查看文件123内容

(2)ps查看进程信息并通过less分页显示

# ps -ef |less

(3)浏览多个文件

# less 123 456

输入  :n 后,切换到 456;输入 :p 后,切换到123

*附加备注*

1.全屏导航

ctrl + F  –向前移动一屏

ctrl + B  –向后移动一屏

ctrl + D  — 向前移动半屏

ctrl + U  — 向后移动半屏

 

2.单行导航

j  — 向前移动一行

k  — 向后移动一行

 

3.其它导航

G  — 移动到最后一行

g   — 移动到第一行

q / ZZ  — 退出 less 命令

 

4.其它有用的命令

v  — 使用配置的编辑器编辑当前文件

h  — 显示 less 的帮助文档

&pattern  — 仅显示匹配模式的行,而不是整个文件

 

5.标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

ma  — 使用 a 标记文本的当前位置

\’a    — 导航到标记 a 处

19.head

【命令作用】

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

【命令语法】

head    [选项]    [参数]

【常用选项】

-q  –隐藏文件名

-v  –显示文件名

-c  –<字节> 显示字节数

-n  –<行数> 显示的行数

-#  –显示文件开头#行内容

【参数说明】

文件名

【命令示例】

(1)#head 123  –显示文件123前十行内容

(2)#head -12 123  –显示文件123前十二行内容

(3)# head -n -5 123   –显示文件123除了最后5行的全部内容

(4)# head -c -7 123  –显示文件123的除了最后7个字节以外的内容

 

20.tail

【命令作用】

从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. 

【命令语法】

tail    [必要参数]    [选择参数]    [文件]

【常用选项】

-f  — 跟踪显示文件新追加的内容

-#  –显示末尾到#号的内容

-n  –显示行数

【参数说明】

文件名

【命令示例】

(1)循环查看文件内容

# tail -f 888  –ping 192.168.0.1 > 888 & //在后台ping远程主机。并输出文件到888;这种做法也使用于一个以上的档案监视。用Ctrl+c来终止

(2)从第5行开始显示文件

# tail -n +5 123  –从第五行开始显示文件123的内容

(3)显示文件末尾内容

# tail -n 5 123  –从后五行开始显示文件123的内容

 

21.grep

【命令作用】

文本过滤,模糊查找

【命令语法】

grep    [选项]    [需要查找的内容]    [参数]

【常用选项】

–color=auto  –对匹配到的文本着色显示

-v  –显示不能够被pattern匹配到的行

-i   –忽略字符大小写

-n  –显示行号

-q  –静默模式,不输出任何信息;

-A #  –after, 后#行

-B #  –before, 前#行

-C #  –context, 前后各#行

【参数说明】

文件名

【命令示例】

(1)# grep a  /123  –在根目录下的文件123中查找含字母a的行

(2)# grep -i a /123 –在根目录下的文件123中查找含a或者A的行

(3)# grep -n a /123  –在根目录下的文件123中查找含a的行,并显示行号

 

(4)# grep -v a /123  –在根目录下的文件123中查找不含a的行

 

 

22.cut

【命令作用】

剪切

【命令语法】

cut    [选项]    [文件]

【常用选项】

-d  –指明分隔符 (通常与-f一起使用)

-f  –指定区域

【参数说明】

文件名

【命令示例】

# cut -d : -f 1,4,7 /etc/passwd  –显示etc目录下passwd文件的第1,4,7行

 

23.sort

【命令作用】

对文件进行排序

【命令语法】

sort    [选项]    [参数]

【常用选项】

-f  –忽略字符大小写

-r  –逆序

-t DELIMITER  –字段分隔符

-k #  –以指定字段为标准排序

-n  –以数值大小进行排序

-u  –uniq,排序后去重

【参数说明】

文件名

【命令示例】

(1)# sort -r /123  以倒序的方式显示根目录下123文件内容

(2)# sort -k 3 -t : -n /etc/passwd  以etc目录中的passwd文件中的第三列为主,按数值方式排序

 

24.tr

【命令作用】

字符替换和删除(通常接在管道符后面使用)

【命令语法】

tr    [选项]    [参数]

【常用选项】

-d  –删除文件中的指定字符

【参数说明】

源字符串

【命令示例】

(1)# echo \”HELLO\” | tr \’A-Z\’ \’a-z\’  –将大写字母转成小写字母

(2)# echo \”HELLO\” | tr -d \’L,H\’  –删除L和H这两个字符

 

25.wc

【命令作用】

统计指定文件中的字节数、字数、行数,并将统计结果显示输出。 

【命令语法】

 wc    [选项]    文件 

【常用选项】

-c  –统计字节数

-w  –统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串

-l   –统计行数

-m  –统计字符数。这个标志不能与 -c 标志一起使用

【参数说明】

 文件名

【命令示例】

(1)# wc -l /123  –查看123有多少行

(2)# wc -w /123  –查看123中有多少个字数

(3)# wc -c /123  –查看文件123的大小是多少

(4)# ls -l | wc -l  –统计当前目录下的文件数

 

26.uniq

【命令作用】

 删除排序文件中的重复行,通常与sort一起使用

【命令语法】

 uniq    [选项]    [参数]

【常用选项】

-c  –显示每行重复出现的次数

-d  –仅显示重复过的行

-u  –仅显示不曾重复的行

【参数说明】

 文件名

【命令示例】

(1)查找文件123中的重复行

# sort 123 |uniq -d

(2)统计所有字符出现的次数

# sort 123 |uniq -c

(3)查找123中仅出现过一次的行

# sort 123 |uniq -u

 

27.tee

【命令作用】

 既输出到文件又输出到屏幕

【命令语法】

 tee    [选项]    [参数]

【常用选项】

 无

【参数说明】

 文件名

【命令示例】

# ls | tee 123  –将ls看到的内容输出到屏幕并写入到555.log文件里

 

28.diff

【命令作用】

 比较文件之间的差异

【命令语法】

 diff    [参数]    [文件1或目录1]    [文件2或目录2]

【常用选项】

 无

【参数说明】

文件1或目录1

文件2或目录2

【命令示例】

# diff a1 a2    –对比a1和a2的不同

 

29.du

【命令作用】

查看使用空间,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的.

【命令语法】

du    [选项]    [参数]

【常用选项】

-s  –仅显示总计,只列出最后加总的值

-h  –以K,M,G为单位,提高信息的可读性

-a  –显示目录中个别文件的大小

【参数说明】

目录名

【命令示例】

(1)# du -s /home  –显示home目录的大小

(2)# du -h /home –显示home目录大小。以K,M,G为单位

(3)# du -a /mnt  –显示mnt目录下的文件大小详细情况

 

30.ln

【命令作用】

创建软硬链接,不带选项为硬链接。

为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

【命令语法】

 ln    [选项]    [参数]

【常用选项】

-b  –删除,覆盖以前建立的链接

-s  –软链接(符号链接)

【参数说明】

 源文件

被链接的文件

【科普】:

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统

软链接:

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

2.软链接可以 跨文件系统 ,硬链接不可以

3.软链接可以对一个不存在的文件名进行链接

4.软链接可以对目录进行链接

硬链接:

1.硬链接,以文件副本的形式存在。但不占用实际空间

2.不允许给目录创建硬链接

3.硬链接只有在同一个文件系统中才能创建(不能跨分区进行)

 

区别:

a.硬链接不会产生新的inode,软链接则会产生新的inode

b.删除源文件之后,硬链接仍然可用,但软链接就不可用

c.硬链接只能用于文件,而软链接可以用于文件和目录

d.硬链接不能跨分区,而软链接可以

这里有两点要注意:

第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化

第二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

ln指令用在链接文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则会把前面指定的所有文件或目录复制到该目录中。若同时指定多个文件或目录,且最后的目的地并非是一个已存在的目录,则会出现错误信息

【命令示例】

 (1)# ln -s 123 link123  –为123文件创建软链接link123,如果123丢失,link123将失效

 

(2)# ln 123 ln123  –为123创建硬链接ln123,123与ln123的各项属性相同

 

(3)结合前两步示例,链接完毕后删除和重建链接原文件

解释:

1.源文件123被删除后,并没有影响硬链接文件;软链接文件在Linux系统下不断的闪烁,提示源文件123已经不存在

2.重建源文件123后,软链接不在闪烁提示,说明已经链接成功,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效

 

31.type

【命令作用】

 查看命令的类型

例:

alias:别名

keyword:关键字,Shell保留字

function:函数,Shell函数

builtin:内建命令,Shell内建命令

file:文件,磁盘文件,外部命令

unfound:没有找到

【命令语法】

 type    [选项]    [参数]

【常用选项】

-t   –简单显示命令属于外部命令,内部命令还是别名命令

-p  –若命令为外部命令,则显示其绝对路径

【参数说明】

 命令名

【命令示例】

(1)type cat  –查看cat属于什么命令

(2)type -t cat  –简单显示cat属于什么命令

(3)type -p cat  –显示外部命令cat的绝对路径

 

32.file

【命令作用】

 确定文件类型

如果文件系统确定成功,则输出文件类型,输出的文件类型如下:  

text :文件中只有ASCII码字符,可以将字符终端显示文件内容  

executable:文件可以运行  

data:其他类型文件,此类文件一般是二进制文件或不能再字符终端上直接显示的文件

【命令语法】

 file    [选项]    [参数]

【常用选项】

 无

【参数说明】

 文件名,或者目录名

【命令示例】

# file 123  –查看文件123的类型

 

33.stat

【命令作用】

 查看文件属性

【命令语法】

 stat    [选项]    [参数]

【常用选项】

 -f  –显示文件系统状态

【参数说明】

 文件名,或者目录名

【命令示例】

# stat 123  –显示文件123的属性

 

34.which

【命令作用】 

我们经常在Linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: 

which  –查看可执行文件的位置

whereis  –查看文件的位置
locate   –配合数据库查看文件位置
find   –实际搜寻硬盘查询文件名称

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

【命令语法】

 which    [可执行的文件名称]

【常用选项】

 无

【参数说明】

命令名

【命令示例】

(1) # which which  –用which去找出which

解释:竟然会有两个which,其中一个是alias(别名命令),意思是输入which会等于后面的那串命令

(2)# which cd  –查找cd的绝对路径

解释:发现并没有找到cd的位置(绝对路径),因为 cd 是 bash 内建的命令,但是 which 默认是找 PATH 内所规范的目录,所以找不到

 

35.whatis

【命令作用】

查看帮助文件的位置。

使用makewhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库

【命令语法】

 whatis    [选项]    [参数]

【常用选项】

 无

【参数说明】

 命令名

【命令示例】

# whatis cat  –查看命令cat的作用

 

36.whereis

【命令作用】

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息

和find相比,whereis查找的速度非常快,这是因为Linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率自然会很高。

但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

【命令语法】

 whereis    [选项]    [参数]

【常用选项】

-b   –仅查找二进制程序和命令

-m  –仅查找man帮助手册文件

-s   –仅查找源代码文件

【参数说明】

 命令名

【命令示例】

(1)查看cp文件及相关文件路径

# whereis cp

(2)# where -b cp  –只将cp的二进制文件查找出来

         # where -m cp  –查找cp的man帮助

         # where -s cp   –查找cp源代码文件

 

37.locate

【命令作用】

 快速定位文件的路径。

依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新数据库(updatedb);索引构建过程需要遍历整个根文件系统,极消耗资源;

工作特点是:查找速度快,模糊查找,非实时查找

【命令语法】

 locate    [选项]    [参数]

【常用选项】

 无

【参数说明】

 文件名

【命令示例】

(1)# locate pwd  –和pwd相关的所有文件

 

(2)# locate /etc/sh  –搜索在etc目录下所有以sh开头的文件

38.find

【命令作用】

 用于在文件树种查找文件,并作出相应的处理 

【命令语法】

 find    [选项]    [参数]

【常用选项】

-name  –按照文件名查找文件

-iname  –按照文件名查找文件,不区分字母大小写

-user  –查找属于指定用户的所有文件

-group  –按照文件所属的组来查找文件

-uid  — 查找属主为指定的 UID 号的文件

-gid  –查找属组为指定的 GID 号的文件

-size  –根据文件大小来查找文件

-type  –根据文件类型查找

     f (普通文件)

     d (目录文件)

     b (块设备)

     c (字符设备)

     s (套接字文件)

     p (管道文件)

     l (符号链接文件)

 

-exec COMMAND {} \\  –对查找到的每个文件执行由COMMAND指定的命令;{}: 用于引用查找到的文件名称自身

       注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令;有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题:

【参数说明】

 要查的起始目录,查找的名称是什么

【命令示例】

(1)根据关键字查找

# find . -name \”*.1\”

解释:在当前目录中查找,以1结尾的文件, \”.\” 代表当前目录

 

(2)根据权限进行查找

# find . -perm 777

解释:在当前目录中查找权限为777的文件

 

(3)按类型查找

# find -type f -name \”*6\”

解释:在当前目录中,查找以6结尾的普通文件

 

(4)按大小查找文件

# find . -size +1000c -print

解释:在当前目录下,查找大于1K的文件

 

39.help

【命令作用】

 查看内部命令的帮助信息

【命令语法】

 help    [选项]    [参数]

【常用选项】

 无

【参数说明】

 指定命令名显示帮助信息

【命令示例】

# help pwd  –查看内部命令pwd的帮助信息

 

40.man

【命令作用】

 命令帮助手册

【命令语法】

 man    [选项]    [参数]

【常用选项】

 无

【参数说明】

 所要搜索帮助信息的命令

【命令示例】

# man cd 查看cd的帮助信息

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » linux常用文件命令