Linux 系统中文件/目录的基本常用命令备忘录

1,622次阅读

共计 4447 个字符,预计需要花费 12 分钟才能阅读完成。

Linux 的各种系统基本常用命令几乎是一致的,虽然之前从没用过 CentOS,不过因为经常使用 Mac OS X 下的终端进行各种操作,所以第一次接触 CentOS 命令行界面的时候也没有怎么发怵。

查看和新建

列出目录里的东西 ls

ls 命令应该是 list 的简称,列出的意思,这个命令可以配合一些参数,例如:

ls -la

这样会使用更详细的形式列出文件与目录,并且会包含目录里面隐藏的文件,l表示 long,a表示 all。在命令的后面你可以指定具体要列出的目录,例如:

ls -la /usr/local

这会列出在系统根目录下面的 usr 目录下面的 local 这个目录里的所有的东西。如果想查看命令详细的使用说明,可以加上 –help参数:

ls --help

在当前目录新建名为 xxx 的目录

mkdir xxx

删除目录或文件

在命令的后面,加上你想要删除的东西,可能是一个目录的名称,或者一个文件的名称。如果要删除目录,你需要添加两个参数:-r -f,可以将两个参数系在一起,如-rf

这里,r参数可以让 rm 命令递归删除目录及其内容,f参数是force,表示强制删除。合起来这行命令的意思是,递归强制删除 xxx 目录,以及这个目录里面所有的东西。

rm -rf xxx

移动或重命名目录或者文件

使用的是同一个命令,比如把 /xxx 目录下的 x.php 文件移动到 /yyy 目录下并重命名为y.php

mv /www/x.php /yyy/y.php

上面这条命令先指定想要移动的目录和文件的位置,一个空格,后面再加上移动后的目录和文件位置。这里我们可以再理解以下几个路径意思:

/ 表示系统的根目录。~ 表示当前所登录的用户的主目录。. 一个点表示当前的目录。../ 两个点加一个斜线,表示上一级目录。../../ 表示上两级目录。知道了这些,我们就可以去移动目录或文件了。

例如,把当前目录里面的 xxx 这个目录重命名为 xxx_a:

mv xxx xxx_a

再把 xxx_a 这个目录移动到当前目录的上一级目录里

mv xxx_a ../

*星号表示所有的文件或目录,如果想把某个目录下面的所有的目录和文件移动到另一个目录里,可以这样:

mv /xxx/* /yyy/zzz

意思就是把 /xxx 目录里面的东西全部移动到 /yyy/zzz 这个目录里面。

复制目录或文件

只要学会了如何移动目录或文件,再理解复制就非常容易了,区别就是移动后,原目录或文件会消失掉,而复制则不会:

cp 要复制的文件名 要复制到哪个目录

需要注意的是,从一个目录复制到另一个目录,首先需要存在“另一个目录”

如果把整个目录都复制过去,需要加上 -R,比如把/xxx 目录内容全都复制到 /yyy 目录

cp -R /xxx /yyy

压缩文件

/home/xxx/ 这个目录下所有文件和文件夹打包为当前目录下的files.zip

zip –q –r files.zip /home/xxx

比如已经在 /home/ 这个目录下, 执行以下操作可以达到以上同样的效果:

zip –q –r files.zip xxx

又比如已经在 /home/xxx/ 目录下, 可以操作的 zip 压缩命令是:

zip –q –r files.zip *

以上 3 种压缩方式都是在安静模式下进行的,而且包含系统文件和隐含文件。

zip 命令参数列表:

-a 将文件转成 ASCII 模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S 是大写)-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为 mmddyyyy

解压缩文件

/home/xxx/files.zip 解压到当前目录

unzip files.zip

语法:

unzip [-cflptuvz][-agCjLMnoqsVX][-P < 密码 >][.zip 文件][文件][-d < 目 录 >][-x < 文件 >]

相关参数:

-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。-f 更新现有的文件。-l 显示压缩文件内所包含的文件。-p 与 - c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。-t 检查压缩文件是否正确。-u 与 - f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。-v 执行是时显示详细的信息。-z 仅显示压缩文件的备注文字。-a 对文本文件进行必要的字符转换。-b 不要对文本文件进行字符转换。-C 压缩文件中的文件名称区分大小写。-j 不处理压缩文件中原有的目录路径。-L 将压缩文件中的全部文件名改为小写。-M 将输出结果送到 more 程序处理。-n 解压缩时不要覆盖原有的文件。-o 不必先询问用户,unzip 执行后覆盖原有文件。-P< 密码 > 使用 zip 的密码选项。-q 执行时不显示任何信息。-s 将文件名中的空白字符转换为底线字符。-V 保留 VMS 的文件版本信息。-X 解压缩时同时回存文件原来的 UID/GID。[.zip 文件] 指定.zip 压缩文件。[文件] 指定要处理.zip 压缩文件中的哪些文件。-d< 目录 > 指定文件解压缩后所要存储的目录。-x< 文件 > 指定不要处理.zip 压缩文件中的哪些文件。-Z unzip - Z 等于执行 zipinfo 指令

如果出现这个提示:

-bash: zip: command not found
不能执行 ZIP 压缩,是因为没有安装 ZIP

运行下这条安装命令即可:

yum install zip

设置目录或文件的访问权限

所有者权限:就是文件或者目录的创建者。一般来说所有者的权限与 root 用户权限相当。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。

同组权限:就是所有者所在的用户组的其他成员的权限。

其他用户权限:除去所有者以及其所在组之外,其他用户和组登录这个系统后,对该文件或者目录的权限。

访问权限分为三种:

r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。w(Write, 写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。x(eXecute,执行):对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限。

当用 ls -l 命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限展示。例如:

ls -l test.zip
-rw-r--r-- 1 root root 483997 Ju1 l5 17:3l test.zip

r代表只读,w代表写,x代表可执行,-代表空许可。

注意这里共有 10 个位置。第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。

Linux 系统中文件 / 目录的基本常用命令备忘录

举例说明:

1. 对文件有 w 权限不能删除文件,需要对文件所在的目录有 w 权限;2. 对目录有 w 权限不能 cd 进入目录,需要对目录有 x 权限;3. 对目录有 x 权限,只有在知道文件名并且有 r 权限的时候才能访问目录下的文件;4. 对目录必须有 x 权限才能 cd 进入到目录,必须有 rx 权限才能使用 ls 列出目录清单;5. 对目录有 w 权限,可以对目录中的任何文件或子目录进行创建、删除或修改操作,即使该文件或目录的所有者是其它用户也是如此;

chmod 命令语法:

chmod [选项] [操作对象] [操作符] [权限] 文件名

选项:

-c 若该档案权限确实已经更改,才显示其更改动作
-f 若该档案权限无法被更改也不要显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

操作对象,可是下述字母中的任一个或者它们的组合:

u 表示“用户(user)”,即文件或目录的所有者。g 表示“同组(group)用户”,即与文件属主有相同组 ID 的所有用户。o 表示“其他(others)用户”。a 表示“所有(all)用户”。它是系统默认值。

操作符号:

+ 添加某个权限。- 取消某个权限。= 赋予给定权限并取消其他所有权限(如果有的话)。

权限。可用下述字母的任意组合:

r 可读。w 可写。x 可执行。X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加 x 属性。s 在文件执行时把进程的属主或组 ID 置为该文件的文件属主。方式“u+s”设置文件的用户 ID 位,“g+s”设置组 ID 位。t 保存程序的文本到交换设备上。u 与文件属主拥有一样的权限。g 与和文件属主同组的用户拥有一样的权限。o 与其他用户拥有一样的权限。

举例:

将档案 file1.txt 设为所有人皆可读取:

chmod ugo+r file1.txt chmod a+r file1.txt

将档案 file1.txtfile2.txt设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

ex1.py 设定为只有该档案拥有者可以执行:

chmod u+x ex1.py

将目前目录下的所有档案与子目录皆设为任何人可读取:

chmod -R a+r *

也可以用数字设定法

chmod abc 文件名

其中 a,b,c 各为一个数字,分别表示 UserGroup、及Other 的权限。

 r 为 4,w 为 2,x 为 1,- 为 0
若要 rwx 属性则 4 +2+1=7;若要 rw- 属性则 4 +2=6;若要 r - x 属性则 4 +1=7。

举例:

将文件「mm.txt」的属性设置为:

【6】-rw-r--r-- 文件属主 (u) 拥有读、写权限【4】与文件属主同组人用户 (g) 拥有读权限【4】其他人 (o) 拥有读权限
chmod 644 mm.txt

设定「test.txt」这个文件的属性为:

【7】-rwxr-x--- 文件主本人 (u) 可读 / 可写 / 可执行权【5】与文件主同组人 (g) 可读 / 可执行权【0】其他人 (o) 没有任何权限 
chmod 750 test.txt

修改文件可读写属性的方法。例如:把 index.html 文件修改为可写可读可执行:

chmod 777 index.html

要修改目录下所有文件属性可写可读可执行:

chmod 777 *.*

把文件夹名称与后缀名用 * 来代替就可以了。比如:修改所有 .php 文件的属性:

chmod 777 *.php

修改文件夹属性的方法,把目录 /img/test 修改为可写可读可执行:

chmod 777 /img/test

修改目录下所有的文件夹属性:

chmod 777 *
# 把文件夹名称用 * 来代替就可以了

要修改 /test 文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行:

chmod -R 777 /test

总结:

目录和文件的权限区别

1)有只读权限的用户不能用 cd 进入该目录:还必须有执行权限才能进入。2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。3)必须有读和执行权限才可以 ls 列出目录清单,或使用 cd 命令进入目录。4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。
全文完
 
西西
📝创作说明:本文由 西西 于2015-09-19发表,共计4447字。
🉑转载说明:本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。除特殊说明外,您可以自由的转载和修改,但请务必注明来源且不可用于商业目的。