Linux 系统中文件/目录的基本常用命令备忘录
本文最后更新于 2476 天前,其中的信息可能已经有所发展或是发生改变。

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,表示是一个目录。

举例说明:

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)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。
本作品采用 “知识共享署名-非商业性使用 4.0 国际许可协议” 进行许可。
免责声明:本站文章除特殊说明为原创禁转外,您可以自由的转载和修改,但请务必注明文章来源并不可用于商业目的。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇