Ubuntu指北针
能够看到这个页面,那么恭喜你,说明你已经正常把Ubuntu系统安装在爱机上
了,下面开始这神奇的Linux之旅吧!不过要熟记下面的指令哦~它们可是你闯
荡Linux江湖的基础装备!
如何学习Ubuntu 不论学习什么系统,“从头学起”是很重要的。在这里建议大家:
新手入门 , 常用指令与基础概念
多重操作系统启动管理器GRUB简介
什么是shell
X-Window与全Shell环境切换
Ubuntu指令格式
关机:shutdown指令
重新启动:reboot指令
root用户与sudo命令
Ubuntu下的隐藏文件
, 文件和目录的日常使用
cd指令
pwd指令
ls指令
cp指令
mv指令
rm指令
mkdir指令 rmdir指令
, 链接文件的介绍
inode基础 ln指令
, 查看文件内容命令
head指令
tail指令
more指令
nl指令
od指令
, Ubuntu文件与目录属性
chattr 属性设置指令
lsattr 属性显示指令
, 文件与目录权限概述
什么是文件权限
, 文件与目录权限设置
chown所有者权限设置
chgrp指令
chmod操作权设置
本新手入门帮助由 制作。
参考文献 《Ubuntu Linux从入门到精通》 科学出版社 北京科海电子出版
社 ISBN 978-7-03-023772-9
多重系统引导管理器GRUB
系统启动引导管理器是在计算机启动后运行的第一个程序,它负责将控
制加载、传输到操作系统的内核,一旦把内核挂载,系统引导管理器的
任务就算完成。系统引导的其他部分,比如系统的初始化及启动过程则
完全由内核来控制完成。
当我们把GRUB的menu.lst写错,或者丢掉了menu.lst的时候,比如在开机的时候,GRUB会出现类似grub>的命令提示符,这时需要我们用
命令行启动系统。
1. 按Ctrl+C组合键进入GRUB的命令行模式,会出现grub> 提示符;
2. 通过cat (hd0, 6) /etc/fstab指令查看分区信息;
3. 通过root (hd[0-n], y) 指令指定/boot所在的分区;
4. 通过kernel指令指定Linux的内核及所在的分区;
5. 通过initrd命令行来指定initrd文件;
6. 通过boot指令引导系统。
什么是Shell
Shell是一种具备特殊功能的程序,它是介于使用者和Unix/Linux操作系统核心程序(kernel)之间的一个接口。Shell在操作系统的最外面
一层,它管理用户与操作系统之间的交互,包括等待输入,向操作系统
解释用户的输入,以及处理各种操作系统输出结果。可以说,Shell提供了用户与操作系统之间的通讯的方式,这种通讯可以以交互方式(从
键盘输入,并且可以立即得到响应),或者以Shell script (非交互)方式执行。
各种操作系统都有它自己的Shell,Unix/Linux将Shell独立于核心程序之外,使它就如同一般的应用程序,可以在不影响操作系统本身的情
况下进行修改,更新版本或是添加新的功能。
X-Window与全shell环境切换 通常,Ubuntu的图形模式与字符模式可以进行自由切换。
1. 在Ubuntu系统中,当选择图形模式启动,屏幕上开始出现鼠标的
时候,就可以按Ctrl+Alt+F1直接进入命令行模式。
2. 以后也可以按Ctrl+Alt+F7
一共可以使用6个控制台,分别用快捷键Ctrl+Alt+F1到Ctrl+Alt+F6进行切换。
指令格式
Linux命令通用格式为:
命令字 [命令选项] [命令参数]
关闭计算机:shutdown指令 shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给
系统上的所有登陆用户提示一条警告信息。该命令还允许用户指定一个
时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。
精确时间格式是hh:mm,
示小时和分钟;时间段由“+”和分钟数表示。
系统执行该命令后,会自动进行数据同步的工作。
使用root权限详见sudo指令。
, 语法
shutdown [-cfFhknr (参数名称) ] [-t 秒数] [时间] [警告信
息]
, 常用参数
-t seco:设定在几秒钟之后运行关机程序。
-k:并不真正关机,只是发出警告信息给所有用户(其实可以当做
信使使用)。
-r:关机后立即重新启动。
-h:关机后不重新启动。
-f<秒数>:快速关机,重新启动时跳过fsck。发出警告信息和关
机信号之间要延迟多少秒。警告信息将提醒用户保存当前进行的
工作。
-c:取消一个已经运行的shutdown。 , 举例
指定现在立即关机:[root@sevenover root] # shutdown -h now
指定5分钟后关机,同时送出警告信息给登陆用户:
[root@sevenover root] # shutdown +5
reboot指令 , 语法
reboot [-dfinw]
, 参数
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具
有“-n”参数的效果。
-f:强制重新开机,不调用shutdown指令的功能。
-i:在重新开机之前,先关闭所有网络界面。
-n:重新开机之前不检查是否有未结束的程序。
-w:仅做测试,并不真的重新开机,只会把重开机的数据写入
/var/log目录下的wtmp记录文件。
root用户与sudo命令 1. 欲使用root终端,请在命令行里输入 “sudo -i”,然后输入自
己的密码即可暂时拥有root权限。
2. Ubuntu里所有图形界面配置工具(启动时)默认以使用sudo,因
此如有必要他们会提示您输入自己的密码。
隐藏文件
隐藏文件又称”点文件“,只有在ls命令后指定附加的选项才能看到他们。Linux下的隐藏文件在文件名前面有一个点“.”。隐藏文件多数
是配置文件。它们给程序、窗口管理器、Shell等设置首选项。它们被隐藏的目的是防止用户对其无意的篡改。当在目录中搜寻某个目录或文
件时,一般不是在寻找这些配置文件,因而当在Shell下查看目录内容时把它们隐藏起来可以避免屏幕上的拥挤。
cd指令 cd指令用来变换指定的工作目录,可以是绝对路径,也可以是相对路径。
若省略目录名称,则变换至用户的主目录。 , 语法
usr@ubuntu:~$ cd [相对路径或绝对路径]
pwd指令 pwd指令用来显示当前所在目录的路径。在目录中上下切换查看,会很
容易迷失方向或者忘记当前目录的路径这个时候可以输入pwd查看当前
的目录全路径。
语法 ,
usr@ubuntu:~$ pwd
, 例子
usr@ubuntu:~$ pwd
/home/usr //显示当前所在的目录
ls指令 ls用于列出文件或目录的信息。ls命令是Linux下最常用的命令之一。它有大量的参数选项,其中有很多参数非常有用。 , 语法
usr@ubuntu:~$ ls [-abcCils]
, 参数说明
-a:列出全部的文件(包括隐藏文件)。
-b:对文件名中的不可显示字符用八进制字符显示。
-B:--ignore-backups,不列出任何一~字符结束的项目。
-c:按文件的修改时间排序。
-C:分成多列显示各项。
-d:--directory,当遇到目录时列出目录本身而非目录内的文件。
-D:--dired,产生适合Emacs的dired模式使用的结果。
-i:打印出inode的值。
-l:长的列出,连同文件大小、权限的数据等等。
-S:以文件大小排序。
--color=never:不显示颜色。
--color=always:均显示颜色。
--color=auto:由系统自行判断是否显示颜色。
cp指令 cp指令用于复制文件到目的文件。这个命令平时会经常用到,因为我们
常常需要复制文件,移动文件。
, 语法
usr@ubuntu:~$ cp [-adfrsu] [原文件] [目标文件]
, 参数说明
-a:在复制目录时使用。它保留链接、文件属性,并递归地复制目
录。
-d:在进行复制的时候,如果是复制到链接文件,若不加任何参数,
则默认情况下会将连接文件指向的源文件复制到目的地地,若加
-d时,则连接文件可原封不动地将链接这个快捷方式复制到目的
地。
-f:删除已经存在的目标文件而不提示。
-r:可以进行目录的递归循环复制。
-s:做成链接文件,而不复制,功能与ln命令相同。
-u,--update:如果来源文件比较新,或者是没有目的文件,那么
才会进行复制的操作,可用于文件备份的策略中。
, 提示
如果系统有大文件的备份需要,而这个文件的更新频率很低,那
么每次备份都需要在复制一份吗?看来是不需要了,你可以使用
“cp -u 来源文件 目的文件”来备份。这样,当文件被修改过后,
才会进行复制的动作。
mv指令 mv指令用于移动或重命名现有的文件或目录。 , 语法
mv [-bfiuv] [--help] [--version] [-S <附加字尾>] [-V <方
法>] [源文件或目录]
, 参数说明
-b或--backup:若需要覆盖文件,则覆盖前先备份。
-f或--force:若目标文件或目录与现有的文件或目录重复,则直
接覆盖现有的文件或目录。
-i或--interactive:覆盖前先询问用户,即采用交互方式。如果
mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否覆
盖,要有用户回答y或n,这样可以避免误覆盖文件。
-S<附加字尾>或--suffix=<附加字尾〉:与-b参数一并使用,可
指定备份文件所要附加的字尾。
-u或--update:在移动或更改文件名时,若目标已存在,且其文
件日期比源文件新,则不覆盖目标文件。
-v或--verbose:执行时显示详细的信息。
-V=<方法>或--version-control=<方法>:与-b参数一并使用,可
指定备份的方法。
--help:显示帮助。
--version:显示版本信息。
,
rm指令 rm指令用来删除档案、目录,以及当前目录有适当权限的用户。
, 语法
rm [options] name...
, 参数说明
-i:删除前逐一询问确认。
-f:即使源文件属性设置为只读,亦直接删除,无需逐一确认。
-r:将目录及以下文件逐一删除。
, 说明
在系统中创建文件很容易,而系统中随时会有文件变得过时且毫
无用处,我们就可以用rm命令将其删除。该命令的功能为删除一
个目录中的一个或多个文件或目录,它也可以将某个目录及其下
的所有文件及子目录均删除。对于链接文件,只是删除了链接,
原有文件保持不变。
mkdir指令 该命令用来创建指定名称的目录,当然前提是创建目录的用户在当前目
录中具有写权限,并且新建目录或文件名称不能是当前目录中已有的目
录或文件名称。在默认的情况下,用户所需要的目录要一层层地建立才
行。
语法 ,
usr@ubuntu:~$ mkdir [-mp] [目录名称]
, 参数说明
-m:对新建目录设定权限,当然也可以使用chmod来修改权限。
-p:可以是一个路径名称。此时若路径中的某些目录尚不存在,加
上此选项后,系统将自动建立那些尚不存在的目录,即一次可以
建立多个目录。
rmdir指令 如果想删除废弃过时的目录时,就使用rmdir指令,该命令从一个目录中删除一个或多个子目录项。需要特别注意的是,一个目录被删除之前
必须是空的。不过,你也可以尝试以-p的参数加入来递归删除上层的目录。删除某目录时用户也必须具有对父目录的写权限。
, 语法
usr@ubuntu:~$ rmdir [-p] [目录名称]
, 参数说明
-p:递归删除目录,当子目录删除后其父目录为空时,也一同被删
除。
inode基础
inode译成中文就是索引节点。每个存储设备或存储设备的分区(存
储设备是硬盘、软盘、U盘等)被格式化为文件系统后,应该有两部分,
一部分是inode,另一部分是Block。Block是用来存储数据用的;而
inoed,就是用来存储这些数据的信息,包括文件大小、属主、归属的
用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统能根据命令通过inode值最快地找到相对应的文件。
比如一本书,存储设备或分区就相当于这本书,Block相当于书中的每一页,inode就相当于这本书前面的目录,一本书有很多内容,如果想查找某部分的内容,可以先查目录,通过目录能最快地找到想要看的内
容。虽然不太恰当,但还是比较形象。
当用ls查看某个目录或文件时,如果加上-i参数,就可以看到inode节点了。
lsfile.sh的inode值是2408949;查看一个文件或目录的inode值,要通过ls命令-i参数。在Ubuntu Linux文件系统中,inode值相同的文件是硬链接文件,也就是说,不同文件名,inode可能是相同的,一
个inode值可以对应多个文件。在Linux中,链接文件是通过ln工具来创建的。
ln指令
, 用ln创建文件硬链接
, 语法
usr@ubuntu:~$ ln [源文件] [目标文件]
, 例子
要为sun.txt创建硬链接sun002.txt,然后看一下sun.txt和
sun002.txt的属性的变化。
, 说明
可以看到,sun.txt在没有创建硬链接文件sun002.txt的时
候,其链接个数是1(也就是-rw-r--r--后的那个数值),创建
了硬链接sun002.txt创建后,这个值就变成了2。也就是说,每
次为sun.txt创建一个新的硬链接文件后,其硬链接个数都会增
加1。
inode值相同的文件,它们的关系是互为硬链接的关系。当
修改其中一个文件的内容时,互为硬链接的文件的内容也会跟着
变化。如果删除互为硬链接关系的某个文件时,其他的文件并不
受影响。比如把sun.txt删除后,还是能看到sun002.txt的内容,
并且sun002.txt仍是存在的。
可以这么理解,互为硬链接关系的文件,它们好像是克隆体,它
们的属性几乎是完全一样。
, 注意
, 创建软链接(也被称为符号链接) , 语法
usr@ubuntu:~$ ln -s [源文件或目录] [目标文件或目录]
软链接也叫符号链接,它和硬链接有所不同,软链接文件只是其源
文件的一个标记。链接文件不能独立存在,当源文件失去时,它也就不
存在了。虽然保留文件名,但却不能查看软链接文件的内容了。软链接
文件只是占用了inode来存储软链接的文件属性等信息,但文件存储是
指向源文件的。软链接可以适用于文件或目录。无论是软链接还是硬链
接,都可以用rm来删除。rm工具是通用的。可以这样理解:软链接与
windows下的快捷方式(.lnk)是同一个概念。软链接与源文件的属性不
一定相同。
head指令 从head的字面意思看,它的作用自然就是显示出一个文件的前几行,
如果没有加上-n这个参数时,默认只显示10行。如果要显示前20行,
那就输入“head -n 20 file”即可。name , 语法
usr@ubuntu:~$ head [-n number] [文件名称]
, 参数说明
-n: number:显示前number行。
Tail指令 Tail指令查看文件的最后几行。
语法 ,
usr@ubuntu:~$ tail [-n number] [文件名称]
, 参数说明
-n number:显示文件最后number行。
-f:实时查看文件更新的内容。
, 说明
与head命令恰恰相反的是tail命令。使用tail命令,默认可以
查看文件结尾的10行,或者通过参数-n number来指定显示结尾
的行数。这有助于查看日至文件的最后几行来阅读重要的系统消
息,还可以使用tail来观察日志文件被更新的过程。使用参数-f
选项,tail会自动实时地把打开文件中的信内容显示到屏幕上。
more指令
more指令用于显示指定文件的文本内容,more使用空格键和PageUp键来向前向后移动。
, 语法
usr@ubuntu:~$ more [文件名称]
, 参数说明
-n:一次显示的行数。
-d:提示用户,在画面下方显示
“Press space to continue, q to quit.”,如果用户按错键,
则会显示“Press h for instructions.”。 -l:
-l:取消遇见特殊字元^L时会暂停的功能。
-f:计算行数时,以实际的行数而非自动换行过后的行数(有些单
行字数太长的会被扩展为两行或两行以上)。 -p:不以滚动的方式显示每一页,而是先清除屏幕后再显示内容。 -c:跟-p相似,不同的是先显示内容在清除其他旧资料。 -s:当遇到连续两行以上的空白行,就替换为一行的空白行。 -u:不显示下引号(根据环境变数TERM指定的terminal而有所不同)。
+/:在每个文件显示前搜寻该字符串(pattern),然后从该字符串之后开始显示。
+num:从第num行开始显示。
, 注意
退出more动作的指令是q键。
, 说明
more还可以用来作为管线的同时执行之用,比如在执行ls这个
命令查看目录内容时,如果由于目录内文件过多致使一些内容无
法显示,则可以使用ls|more命令,这样就可以使结果分页地显
示出来了。
nl指令
nl指令用于按行号显示文本内容,并显示行号。
, 语法
usr@ubuntu:~$ nl [文件名称]
, 参数说明
-b:指定如何进行“行”的计算,可用值包括以下4个。
o a:计算所有行。
o t:不计算空行或包含任何非图形符号(如tab)的行(默认)。
o n:不计算任何行。
o pPattern:只计算那些符合Pattern指定的行。
-d:指定逻辑页的分割符。
-f:选择逻辑页页脚的行来计算。
-h:选择逻辑页头的行来计算。
-i:设定逻辑页行号增加数值,默认值为1。
-n:设定计算行的格式,可用值包括以下3个。
o ln:左对齐,前导零不计。
o rn:右对齐,前导零不计(默认)。
o rz:右对齐,前导零保留。
od指令 使用od命令可以查看特殊格式的文件内容。通过指定该命令的不同选
项可以以十进制、八进制、十六进制和ASCII码来显示文件。默认情况显的显示方式是八进制,这也是该命令的名称由来(Octal Dump)。
, 语法
usr@ubuntu:~$ od [-At] [文件名称]
, 参数说明
-A:指定地址基数,主要的参数有以下4个。
o d:十进制;
o o:八进制(系统默认值);
o x:十六进制;
o n:不输出位移值。
-t:指定数据的显示格式,主要的参数有以下6个。
o c:ASCII字符或转义字符;
o d:有符号十进制数;
o f:浮点数;
o o:八进制数(系统默认值为02);
o u:无符号十进制数;
o x:十六进制数。
chattr属性设置指令 chattr指令,用于改变文件属性,修改文件在Linux第二扩展文件系统(E2fs)上的特有属性,主要用户为超级管理员root用户。 , 语法
chattr [-RV] [-+=AacDdijsSu] [-v version]文或目录
, 参数说明
-R:递归处理,经指定目录下的所有文件及子目录一并处理。
-v:<版本编号>设置文件或目录版本。
-B:显示指令执行过程。
+<属性>:开启文件或目录的该项属性。
-<属性>:关闭文件或目录的该项属性。
=<属性>:指定文件或目录的该项属性。
, 说明
ext2文件系统上的文件或目录属性共有以下8中模式:
o a:让文件或目录仅供附加用途。
o b:不更新文件或目录的最后存取时间。
o c:将文件或目录压缩后存放。
o d:将文件或目录排除在备份操作之外。
o i:不得任意改动文件或目录。
o s:保密性删除文件或目录。
o S:即时更新文件或目录。
o u:预防意外删除。
其中,+i这个属性,因为它可以让一个文件无法被改动,对于需要
安全系数高的文件来说,真是非常的重要!而对于像日志这样的文件,
就更需要+a这个设定:只可以增加不可以删除。
lsattr指令 lsattr指令用于显示文件属性。用chattr执行改变文件或目录的属性时,可先执行lsattr指令查询其属性。 , 语法
usr@ubuntu:~$ lsattr [-adlRvV] [文件或目录...]
, 参数说明
-a:显示所有文件和目录,包括名称以.为开头的额外内建,现行
目录. 与上层目录..。
-d:显示目录名称,而非其内容。
-l:此参数目前不起任何作用。
-R:递归处理,将指定目录下的所有文件及子目录一并处理。
-v:显示文件或目录版本。
-V:显示版本信息。
什么是文件权限
文件或目录的权限是和用户和用户组联系在一起的,所以要理解这部分
内容,首先要了解一下Linux用户管理方面的知识。每个文件或目录都
有一组9个权限位,每三位被分为一组,它们分别是属主权限位(占三
个位置)、用户组权限位(占三个位置)和其他用户权限位(占三个位
置)。比如rwxr-xr-x,数一下就知道是不是9个位置了,正是这9个权限位来控制文件属主、用户组以及其他用户的权限,如图所示。
文件权限位
其中:
属主权限位包括可读r、可写w、可执行x;
属组权限位包括可读r、可写w、可执行x;
其他用户权限位包括可读r、可写w、可执行x;
如果权限位不可读、不可写、不可执行,则用 - 来表示。
比如:
-rwx------:文件所有者对文件具有可读、可写和可执行的权限。
-rwxr--r--:文件所有者具有可读、可写与可执行的权限,其他用
户则具有可读的权限。
-rw-rw-r-x:文件所有者与同组用户对文件具有可读、可写的权限,
而其他用户则具有可读和可执行的权限。
drwx--x--x:目录所有者具有可读写与进入目录的权限,其他用户
只能进入该目录,却无法读写任何数据。
Drwx------:除了目录所有者具有完整的权限之外,其他用户对该
目录没有任何权限。
chown所有者权限设置 当用户要改变一个文件的属主所使用的用户必须是该文件的属主而且
同时是目标属组成员,或超级用户root。如果要连目录下的所有子目录或文件同时更改文件属主的话,直接加上-R的参数。下面来看看语法与范例,假设系统本身有test用户和test群组。 , 语法
usr@ubuntu:~$ chown [-R] [用户名称] [文件或目录]
usr@ubuntu:~$ chown[-R] [用户名称:组名称] [文件或目录]
, 范例1
, 语法
将test3.txt文件的属主改为test用户。
usr@ubuntu:~$ ls -l test3.txt
-rw-r--r-- 1 test root 0 2009-10-23 9:59 test3.txt
usr@ubuntu:~$ chown test:root test3.txt
usr@ubuntu:~$ ls -l test3.txt
-rw-r--r-- 1 test root 0 2009-10-23 9:59 , 范例2
chown所接的新的属主和新的属组之间可以使用:连接,属主和属组之一可以为空。如果属主为空,应该是“:属组”;如果属组为空,“:”
可以不用带上。
usr@ubuntu:~$ ls -l test3.txt
-rw-r--r-- 1 test root 0 2009-10-23 9:59 test3.txt
usr@ubuntu:~$ chown :test test3.txt <==把文件test3.txt的属组改
为test
usr@ubuntu:~$ ls -l test3.txt
-rw-r--r-- 1 test test 0 2009-10-23 9:59 test3.txt
, 范例3
chown也提供了-R参数,这个参数对目录改变属主和属组极为有用,
可以通过加-R参数来改变某个目录下的所有文件到新的属主或属组。
usr@ubuntu:~$ ls -l testdir <==查看testdir目录属性
drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ <==文件属主是
usr用户,属组是root用户
usr@ubuntu:~$ ls -lr testdir <==查看testdir目录下所有文件及其
属性
total 0
-rw-r--r-- 1 usr root 0 2009-10-23 10:38 test1.txt
-rw-r--r-- 1 usr root 0 2009-10-23 10:38 test2.txt
-rw-r--r-- 1 usr root 0 2009-10-23 10:38 test3.txt
usr@ubuntu:~$ chown -R test:test testdir/ <==修改testdir及它的
下级目录和所有文件到新的用户和用户组
usr@ubuntu:~$ ls -l testdir
drwxr-xr-x 2 test test 0 2009-10-23 10:38 testdir/
usr@ubuntu:~$ ls -lr testdir
total 0
-rw-r--r-- 1 test test 0 2009-10-23 10:38 test1.txt
-rw-r--r-- 1 test test 0 2009-10-23 10:38 test2.txt
-rw-r--r-- 1 test test 0 2009-10-23 10:38 test3.txt
chgrp用户组权限设置 chgrp是用来改变一个文件的群组的命令。要改变成为的群组名称必须
是在系统中真实存在的名字才行,否则就会显示错误。 , 语法
usr@ubuntu:~$ chgrp [群组名称] [档案或目录]
它的用户和chown类似,只不过它仅是用来改变文件或目录的数组
的;-R参数用于目录及目录下所有文件改变属组的。这和chown也是一样的。下面举两个简单的例子。
, 范例1
usr@ubuntu:~$ ls -l test3.txt
-rw-r--r-- 1 usr root 0 2009-10-23 11:35
usr@ubuntu:~$ chgrp test test3.txt <==把文件test3.txt的属主改
为test
usr@ubuntu:~$ ls -l test3.txt
-rw-r--r-- test test 0 2009-10-23 22:35 test3.txt , 范例2
usr@ubuntu:~$ ls -l testdir <==查看testdir目录属性
drwxr-xr-x 2 usr root 0 2009-10-23 11:48 testdir/ <==文件属主是
usr用户,属组是root用户
usr@ubuntu:~$ ls -lr testdir <==查看testdir目录下所有文件及其
属性
total 0
-rw-r--r-- 1 usr root 0 2009-10-23 12:00 test1.txt
-rw-r--r-- 1 usr root 0 2009-10-23 12:00 test2.txt
-rw-r--r-- 1 usr root 0 2009-10-23 12:00 test3.txt
usr@ubuntu:~$ chgrp -R test testdir/ <==修改testdir及它的下级
目录和所有文件到test用户组
usr@ubuntu:~$ ls -l testdir
drwxr-xr-x 2 usr test 0 2009-10-23 11:48 testdir/
usr@ubuntu:~$ ls -lr testdir
total 0
-rw-r--r-- 1 usr test 0 2009-10-23 12:00 test1.txt
-rw-r--r-- 1 usr test 0 2009-10-23 12:00 test2.txt
-rw-r--r-- 1 usr test 0 2009-10-23 12:00 test3.txt
chomd操作权设置 chmod是用来改变文件或目录权限的命令,但只有文件的属主和超级权
限用户root才有这种权限。通过chmod来改变文件或目录的权限有两种方法:一种是通过八进制的语法,另一种是通过助记语法。
, 助记语法设置文件权限
chmod的主机语法相对简单,对文件或目录的权限改变时,是通过比较
直观的字符形式来完成。在助记语法中,相关字母的定义如下。
用户或用户组定义
, u:代表属主;
, g:代表属组;
, o:代表其他用户;
, a:代表属主、数组和其他用户,也就是上面三个用户(或组)的
所有。
权限定义
, r:代表读权;
, w:代表写权;
, x:代表执行权。
权限增减字符
, -:代表减去相关权限;
, +:代表增加相关权限。
用助记语法比较灵活,组合起来比较方便,比如: u=r+x 为文件属主添加读、写权限;
ug=rwx, o-r 为属主和属组添加读、写、执行权限,为其他用户设置读
权限;
a+x 为文件的属主、属组和其他用户添加执行权限; g=u 让文件的属组和属主的权限相同。
, 八进制表示法设置权限
八进制语法的数字说明
单个权限 对应八进制数字
R 4
W 2
X 1
- 0
然后再把相应权限的数值相加,得到一个组的权限描述。因为一个
文件包括三个权限组,所以对于一个文件的权限描述来说,八进制描述
包括从0到7的数字,这三个数值分别对应属主、属组和其他用户的权
限描述,比如文件的权限位rwxr-xr-x,对应的八进制描述如下:
, 属主的权限用数字表达:属主的权限是rwx,也就是4+2+1,应该是7;
, 属组的权限用数字表达:属组的权限是r-x,也就是4+0+1,应该是5;
, 其他用户的权限数字表达:其他用户权限是t-x,也就是4+0+1,应该是5。
所以整个文件的权限用八进制描述就是755。
, 语法
usr@ubuntu:~$ chmod [权限八进制数值] [文件或目录名称] 从上面的分析可以看出,每三位的权限代码(分别是属主、属组和其他
用户)组合,有8种可能,如下表所示。
组权限与八进制数值的映射关系
八进制数值 三位组合权限
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx