这里只是列出实际中使用频率较高的,可以通过 man 命令或者 命令 –help 来查看更为详细的内容
文件有关的
1:【ls命令】 ls [option] …[file]…
- -a all 列出所有的文件 包括隐藏文件 [eg ls -a /home]
- -l 列出详细的文件信息 可以简写为ll filename [eg: ls -l /home or ll /home ]
- -h –human-readable 将文件的大小通过字节的方式列出来
- -R 递归显示出该目录所有的文件
- -d 只显示本文件下面
可以通过 man ls 查看更为详细的命令
2:【cd命令】 cd [option] ..[dir]
eg cd /home
3:[mkdir 命令] mkdir [OPTION]… DIRECTORY…
- -p 在创建文件时,当目标目录的上层目录不存在时创建,,如果这些目录已存在也不会当做错误处理;eg:mkdir -p /a/b/c
- -v –verbose 打印创建目录是的详情
- -m 设置权限 eg mkdir -m 700 -p -v /a/b/c 在创建目录的同时也设置目录的权限为700
4:【rmdir】 删除空目录
- -p rmdir -p /a/b/c 相当于rmdir a/b/c a/b a 假如某一级目录不空,则命令执行会失败,注意隐藏文件߄ 这个命令会先从最深的一层目录删起
5:【tree】 查看目录树
这个命令不是系统自带的需要安装 yum install tree
可以通过 tree /home 以树的形式列出 /home目录下的所有文件
6:【 touch】文件的创建和删除
*touch filename eg touch a.txt*
7:【stat】查看文件的信息
8:【rm】 删除文件
- -i:删除文件之前确认
- -f 删除文件之前不确认
- -r 递归删除
eg:rm -rf a.txt
注意:在实际的工作中一定要注意,文件的删除,尽量少的使用这个命令,一般删除前,重要文件先备份
9:【cp】 copy 复制
- -i 如果文件存在,再覆盖之前会进行确认
- -a 归档复制,常用语备份,保持文件的原有属性
可以同时复制多个文件 到一个目录下面
eg:cp file1 file2 file /tmp
eg2 cp /etc/{passwd,inittab} /tmp 把etc文件夹下面的passwd文件和initable文件复制到 /tmp目录下面
10【mv】 move 移动文件 mv 源文件 目标路径
eg mv /etc/passwd /tmp 把/etc/passwd 文件移动到/tmp目录下
eg2:mv/etc/passed /tmp/pd 把/etc/passwd 文件移动到/tmp目录下,并改名为pd
11【cat】 连接显示文件
*eg cat/etc/passwd*
12 【more | less】 翻屏
例如 *cat /etc/passwd | more*
13 【tail | head 】 显示文件的尾部或者头部
*head -n 5 /etc/passwd* 显示passwd文件的前五行
*tail -5 /etc/passwd* 显示passwd文件的后五行
*tail -f xx.log* 一般用来查看log文件,显示的是文件尾部,不退出命令,只要有新的日志内容,就会显示出来
14 【文件重定向命令】
首先要理解三个概念
标准输入 stdin 键盘鼠标的输入等被称为标准输入
标准输出 stdout
标准错误输出 stderr
管道 :是把前一个命令的标准输出作为下一个命令的标准输入
- > 输出重定向,把标准输入重定向
- >> 追加重定向
- cat < 输出重定向
eg cat a.txt > b.txt 把a.txt中的内容重定向【写入】到b.txt中,如果b.txt中原来就有内容,则会被覆盖
eg2:cat a.txt >> b.txt 追加到b.txt原本内容的末尾
eg3: cat > a.txt < b.txt 先从b.txt中读取内容,再重定向到a.txt中
文本处理
15【cut】 分割字符串
- -d :指定字段分割符,默认是空格
- -f : 指定要显示的字段
- -f 1,3 显示分割后的1和3字段
- -f 1-3 显示分割后的1 到3 字段
eg cut -d: -f 1,7 /etc/passwd
<code class="hljs r has-numbering">[root@node01 test]<span class="hljs-comment"># cut -d: -f 1,3 /etc/passwd</span> root:<span class="hljs-number">0</span> bin:<span class="hljs-number">1</span> daemon:<span class="hljs-number">2</span> <span class="hljs-keyword">...</span> <span class="hljs-keyword">...</span></code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>
16【sort】 排序
- -n 按数字排序 默认是按照ascii码排序的
- -t 字段分割符
- -r 降序排
- -u 去重
-
- k 以哪个关键字排序
eg : sort -t “:” -k4 -n -r /etc/passwd 以:为分隔符,第四个作为排序的关键字,按数字倒序
<code class="hljs ruby has-numbering">[root<span class="hljs-variable">@node01</span> test]<span class="hljs-comment"># sort -t: -k4 -nr /etc/passwd</span> <span class="hljs-symbol">ttuser5:</span><span class="hljs-symbol">x:</span><span class="hljs-number">520</span><span class="hljs-symbol">:</span><span class="hljs-number">520</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/home/ttuser5</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">ttuser4:</span><span class="hljs-symbol">x:</span><span class="hljs-number">519</span><span class="hljs-symbol">:</span><span class="hljs-number">519</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/home/ttuser4</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">ttuser3:</span><span class="hljs-symbol">x:</span><span class="hljs-number">518</span><span class="hljs-symbol">:</span><span class="hljs-number">518</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/home/ttuser3</span><span class="hljs-symbol">:/bin/bash</span> <span class="hljs-symbol">ttuser2:</span><span class="hljs-symbol">x:</span><span class="hljs-number">517</span><span class="hljs-symbol">:</span><span class="hljs-number">517</span><span class="hljs-symbol">:</span><span class="hljs-symbol">:/home/ttuser2</span><span class="hljs-symbol">:/bin/bash</span> ... ...</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li></ul>
eg2: cut -d: -f7 /etc/passwd | sort -u
<code class="hljs r has-numbering">[root@node01 test]<span class="hljs-comment"># cut -d: -f7 /etc/passwd | sort -u</span> /bin/bash /bin/nologin /bin/sync <span class="hljs-keyword">...</span> <span class="hljs-keyword">...</span></code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>
17【wc】 文本统计
- -l :统计行数
- -w:统计单词数
- -c :统计字节数
- -L:打印最长行长度
eg1:wc -l /etc/passwd
<code class="hljs ruby has-numbering">[root<span class="hljs-variable">@node01</span> test]<span class="hljs-comment"># wc -l /etc/passwd</span> <span class="hljs-number">44</span> /etc/passwd</code><ul style="" class="pre-numbering"><li>1</li><li>2</li></ul>
eg2:cut -d: -f7 passwd | sort -u | wc -l
<code class="hljs ruby has-numbering">[root<span class="hljs-variable">@node01</span> test]<span class="hljs-comment"># cut -d: -f7 /etc/passwd | sort -u | wc -l</span> <span class="hljs-number">6</span></code><ul style="" class="pre-numbering"><li>1</li><li>2</li></ul>
18【sed】行编辑器,默认不编辑源文件
- -n 不显示到屏幕上,也不改变源文件 ,基本没啥用
- -e 同时执行多个文本
- -p 显示符合条件的行
- -i 修改源文件
- s/pattern/string/修饰符:查找并替换,默认只替换每行中的第一次被模式匹配到的字符串,加修饰符g:全局替换,i:忽略字符大小写
- -r 使用扩展的正则表达式
这里使用了正则表达式,如果对正则表达式不熟,自学一下正则表达式
eg:删除/etc/inittab文件中行首的空白符
sed -r ‘s@^[[:space:]]+@@g’ /etc/inittab: -r 表示使用扩展的正则表达式 引号中的s 表示查找并替换;@符可以自定义,表示@后面跟的是正则表达式:^[[:space:]]+ 则表示以一个或多个空格开头 使用@@之间的字符替换,这里@@之间什么也没有 就等同于删除行首空白符;最后一个g表示全局替换
eg2:替换/etc/inittab 文件中的 ” id:3:initdefault:” 中的数字改为5,为了看清楚这里使用了 tail -1 把最后一行展示出来
<code class="hljs markdown has-numbering">[<span class="hljs-link_label">root@node01 test</span>]# sed -r 's@(id:)[<span class="hljs-link_label">0-9</span>](<span class="hljs-link_url">:initdefault:</span>)@\15\2@g' /etc/inittab | tail -1 id:5:initdefault:</code><ul style="" class="pre-numbering"><li>1</li><li>2</li></ul>
eg3:删除c.txt中的空行
<code class="hljs avrasm has-numbering">[root@node01 test]<span class="hljs-preprocessor"># cat c.txt</span> <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. //上面文件中有两个空行 空行和空白行不一行 空白行是指有空格 组成的行,而空行是直接按回车生成的行 //上面的文件<span class="hljs-number">3</span>行驶空白行,由空格组成的行,而<span class="hljs-number">4</span>,<span class="hljs-number">7</span>行才是空行 [root@node01 test]<span class="hljs-preprocessor"># sed -r '/^$/d' c.txt </span> <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified.</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li></ul>
eg4:删除c.txt中的空白行【注意不是空行】
<code class="hljs avrasm has-numbering">[root@node01 test]<span class="hljs-preprocessor"># cat c.txt</span> <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. [root@node01 test]<span class="hljs-preprocessor"># sed -r '/^[[:space:]]+$/d' c.txt</span> <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. 执行结果是删除了第三行的红白行 而<span class="hljs-number">5</span>,<span class="hljs-number">7</span>行为空行,不会删除</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li></ul>
eg5:删除c.txt中的空行,和空白行
<code class="hljs avrasm has-numbering">[root@node01 test]<span class="hljs-preprocessor"># cat c.txt </span> <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. [root@node01 test]<span class="hljs-preprocessor"># sed -r '/^[[:space:]]*$/d' c.txt</span> <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified. <span class="hljs-label">passwd:</span> Only one user name may be specified.</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li></ul>
19【awk】是一个庞大的文本处理工具,自成体系,可以编程
- -F 格式分割符
- 内置变量
- -NF 当前记录中字段的个数
- NR 已读的记录数
- OFS 输出域分隔符
awk -F”格式分割符” ‘{执行的具体操作}’
eg:统计/etc/passwd 中的账户人数
<code class="hljs sql has-numbering">awk -F: '{count++;print $7} <span class="hljs-operator"><span class="hljs-keyword">END</span> {pring <span class="hljs-string">"user count is "</span>, <span class="hljs-aggregate">count</span>}<span class="hljs-string">' /etc/passwd</span></span></code><ul style="" class="pre-numbering"><li>1</li></ul>
eg2:显示/etc/passwd的账户
<code class="hljs r has-numbering">[root@node01 test]<span class="hljs-comment"># awk -F: 'BEGIN {count=0;OFS="XXX"}{name[count]= $1;count++};END {for (i=0;i< NR;i++)print i,name[i]}' /etc/passwd;i++)print i,name[i]}' /etc/passwd</span> 0XXXroot 1XXXbin 2XXXdaemon <span class="hljs-keyword">...</span> <span class="hljs-keyword">...</span></code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>
eg3:使用if else
<code class="hljs fsharp has-numbering"># awk 'BEGIN {count=<span class="hljs-number">0</span>;FS=<span class="hljs-string">":"</span>} {<span class="hljs-keyword">if</span>(NR==<span class="hljs-number">6</span>) OFS=OFS<span class="hljs-string">"|"</span>; <span class="hljs-keyword">else</span> OFS=OFS<span class="hljs-string">"^"</span>; name[count] = $<span class="hljs-number">1</span>;print count,name[count++]}' /etc/passwd # awk 'BEGIN {count=<span class="hljs-number">0</span>;FS=<span class="hljs-string">":"</span>} {<span class="hljs-keyword">if</span>(NR%<span class="hljs-number">2</span>==<span class="hljs-number">0</span>) OFS=OFS<span class="hljs-string">"|"</span>; <span class="hljs-keyword">else</span> OFS=OFS<span class="hljs-string">"^"</span>; name[count] = $<span class="hljs-number">1</span>;print count,name[count++]}' /etc/passwd # awk 'BEGIN {count=<span class="hljs-number">0</span>;FS=<span class="hljs-string">":"</span>} {<span class="hljs-keyword">if</span>(NR%<span class="hljs-number">2</span>) OFS=OFS<span class="hljs-string">"|"</span>; <span class="hljs-keyword">else</span> OFS=OFS<span class="hljs-string">"^"</span>; name[count] = $<span class="hljs-number">1</span>;print count,name[count++]}' /etc/passwd</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul>
linux中的其他命令
查看进程命令
ps -aux
netstat -ntpl
ss -tanlp
yum install lrzsz 一个支持快速windons和linux主机间进行文件上传和下载的命令
CnetOS 之档案权限
1.使用者与群组以及其他人的概念
假设有一家人,家裡只有三兄弟,分别是王大毛、王二毛与王三毛三个人, 而这个家庭是登记在王大毛的名下的!所以,『王大毛家有三个人,分别是王大毛、王二毛与王三毛』, 而且这三个人都有自己的房间,并且共同拥有一个客厅!
使用者的意义:由于王家三人各自拥有自己的房间,所以, 王二毛虽然可以进入王三毛的房间,但是二毛不能翻三毛的抽屉! 因为抽屉里面面可能有三毛自己私人的东西,例如日记等等的,这是『私人的空间』,所以当然不能让二毛拿!
群组的概念:由于共同拥有客厅,所以王家三兄弟可以在客厅打开电视机、坐在沙发上面发呆等等的!反正,只要是在客厅的东西,三兄弟都可以使用!
今天又有个人,叫做小花,他是小花家的人,与王家没有关系! 这个时候,除非王家认识小花,然后开门让小花进来王家,否则小花永远没有办法进入王家, 更不要说进到王三毛的房间!小花就是所谓的『其他人,Others』
2.Linux 使用者身份与群组记录的档案
在Linux系统当中,预设的情况下,所有的系统上的帐号与一般身份使用者,还有root的相关资讯, 都是记录在/etc/passwd这个档案内的。至于个人的密码则是记录在/etc/shadow这个档案下。 此外,Linux所有的群组名称都纪录在/etc/group内!这三个档案可以说是Linux系统里面帐号、密码、群组资讯的集中地! 不要随便删除这三个档案!
3. Linux档案属性
『ls 』这一个察看档案的指令!首先以普通用户的身份登入系统,然后使用 su - 切换身份成为root后, 下达『 ls -al 』命令
- [xiaohui@localhost ~]$ su - # 先来切换一下身份看看
- Password:
- [root@localhost ~]# ls -al
- total 48
- dr-xr-x---. 5 root root 4096 May 29 16:08 .
- dr-xr-xr-x. 17 root root 4096 May 4 17:56 ..
- -rw-------. 1 root root 1816 May 4 17:57 anaconda-ks.cfg
- -rw-------. 1 root root 927 Jun 2 11:27 .bash_history
- -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
- -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
- -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc
- drwxr-xr-x. 3 root root 17 May 6 00:14 .config <=范例说明处
- drwx------. 3 root root 24 May 4 17:59 .dbus
- -rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg <=范例说明处
- [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ] [ 7 ]
- [ 权限 ][连结][拥有者][群组][档案容量][ 修改日期 ] [ 档名 ]
- </pre><pre name="code" class="plain">-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg <=范例说明处
- [ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ] [ 7 ]
- [ 权限 ][连结][拥有者][群组][档案容量][ 修改日期 ] [ 档名 ]
1. -rw-r--r-- :代表这个档案的类型与权限
- 第一个字元代表这个档案是『目录、档案或连结档等等』:
- 当为[ d ]则是目录,例如上表档名为『.config』的那一行;
- 当为[ - ]则是档案,例如上表档名为『initial-setup-ks.cfg』那一行;
- 若是[ l ]则表示为连结档(link file);
- 若是[ b ]则表示为装置档里面的可供储存的周边设备(可随机存取装置);
- 若是[ c ]则表示为装置档裡面的序列埠设备,例如键盘、滑鼠(一次性读取装置)。
- 接下来的字元中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
- 第一组为『档案拥有者可具备的权限』,以『initial-setup-ks.cfg』那个档案为例, 该档案的拥有者可以读写,但不可执行;
- 第二组为『加入此群组之帐号的权限』;
- 第三组为『非本人且没有加入本群组之其他帐号的权限』。
- 第一个字元代表这个档案是『目录、档案或连结档等等』:
2. 1 :表示有多少档名连结到此节点(i-node)
每个档案都会将他的权限与属性记录到档案系统的i-node中,不过,我们使用的目录树却是使用档名来记录, 因此每个档名就会连结到一个i-node!这个属性记录的,就是有多少不同的档名连结到相同的一个i-node号码
3. root :表示这个档案(或目录)的『拥有者帐号』
4. root :表示这个档案的所属群组
5. 1864 :这个档案的容量大小,预设单位为bytes
6. May 4 18:01 :这个档案的建档日期或者是最近的修改日期
如果想要显示完整的时间格式,可以利用ls的选项,亦即:『ls -l --full-time』就能够显示出完整的时间格式了!包括年、月、日、时间喔。 另外,如果是以繁体中文安装你的Linux系统,那麽日期栏位将会以中文来显示。 可惜的是,中文并没有办法在纯文字的终端机模式中正确的显示,所以此栏会变成乱码。 那得要使用『export LC_ALL=en_US.utf8』来修改语系喔!
如果想要让系统预设的语系变成英文的话,那麽你可以修改系统设定档『/etc/locale.conf』
7. initial-setup-ks.cfg :为这个档案的档名,如果档名之前多一个『 . 』,则代表这个档案为『隐藏档』
4.改变档案属性与权限
- chgrp :改变档案所属群组
- chown :改变档案拥有者
- chmod :改变档案的权限, SUID, SGID, SBIT等等的特性
- [root@localhost ~]# chgrp [-R] dirname/filename ...
- [root@localhost ~]# chown [-R] 帐号名称 档案或目录
- [root@localhost ~]# chown [-R] 帐号名称:群组名称 档案或目录
档案权限的改变使用的是chmod这个指令,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更
- 数字类型改变档案权限
Linux档案的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 档案的权限字元为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,可以使用数字来代表各个权限,各权限的分数对照表如下:r:4w:2x:1每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
所以设定权限的变更时,该档案的权限数字就是770啦!变更权限的指令chmod的语法是这样的:
在实际的系统运作中最常发生的一个问题就是,以vim编辑一个shell的文字批次档后,文档的权限通常是 -rw-rw-r-- 也就是664, 如果要将该档案变成可执行档,并且不要让其他人修改此一档案的话, 那么就需要-rwxr-xr-x这样的权限,此时就得要下达:『 chmod 755 test.sh 』的指令
- [root@localhost ~]# chmod [-R] xyz 档案或目录
- 选项与参数:
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有档案都会变更
- 符号类型改变档案权限
chmod | u g o a | +(加入) -(除去) =(设定) | r w x | 档案或者目录 |
- [root@localhost ~]# chmod u=rwx,go=rx .bashrc
- # 注意!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空白字元!
档案是实际含有资料的地方,包括一般文字档、资料库内容档、二进位可执行档(binary program)等等。 因此,权限对于档案来说,他的意义是这样的:
- r (read):可读取此一档案的实际内容,如读取文字档的文字内容等;
- w (write):可以编辑、新增或者是修改该档案的内容(但不含删除该档案);
- x (eXecute):该档案具有可以被系统执行的权限。
表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示可以查询该目录下的档名资料。 所以可以利用 ls 这个指令将该目录的内容列表显示出来!
w (modify contents of directory):
这个可写入的权限对目录来说,是很了不起的! 因为他表示具有异动该目录结构清单的权限,也就是底下这些权限:
- 建立新的档案与目录;
- 删除已经存在的档案与目录(不论该档案的权限为何!)
- 将已存在的档案或目录进行更名;
- 搬移该目录内的档案、目录位置。
目录的x代表的是使用者能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录!举例来说,当登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是『cd』(change directory)!
- 要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给w 則具有相當重要的權限,因為他可以讓使用者刪除、更新、新建檔案或目錄
- 如果该目录属于使用者本身,即使目录下的文档对使用者没有wx权限,但是使用者在这个目录底下还是能够删除档案的。这就相当于有个莫名其妙的人,拿著一个完全密封的资料夹放到你的办公室抽屉中,因为完全密封你也打不开、看不到这个资料夹的内部资料(对档案来说,你没有权限)。 但是因为这个资料夹是放在你的抽屉中,你当然可以拿出/放入任何资料在这个抽屉中(对目录来说,你具有所有权限)。 所以,情况就是:你打开抽屉、拿出这个没办法看到的资料夹、将他丢到走廊上的垃圾桶,顺利删除!
- /dir1/file1
- /dir2
操作动作 | /dir | /dir1/file1 | dir2 | 重点 |
读取 file1 内容 | x | r | - | 要能够进入 /dir1 才能读到里面的文件资料! |
修改file内容 | x | wx | - | 能够进入 /dir1 且修改 file1 才行! |
执行 file1 内容 | x | rx | - | 能够进入 /dir1 且 file1 能运作才行! |
删除 file1档案 | wx | - | - | 能够进入 /dir1 具有目录修改的权限即可! |
将 file1 複製到 /dir2 | x | r | wx | 能够读 file1 且能够修改 /dir2 内的资料 |