第四节 mount /who / mkdir /rmdir /rm /cp /mv /touch /cat /tac/head /tail /more /less / chmod /chown /umask /chattr /lsattr /history /echo
***Linux下的文件类型如下:
9 8 7 6 5 4 3 2 1 0
- r w x r - x r - x
第9位表示文件类型,可以为p、d、l、s、c、b和-:
p表示命名管道文件 -pipe
d表示目录文件 -directory
l表示符号连接文件 -link
-表示普通文件 -
s表示socket文件 -socket
c表示字符设备文件 -Character device
b表示块设备文件 -block
第8-6位、5-3位、2-0位分别表示文件所有者的权限,同组用户的权限,其他用户的权限,其形式为rwx:
(以上的其他用户,不包括root这个super user。)
r表示可读,可以读出文件的内容 --数字4表示
w表示可写,可以修改文件的内容 --数字2表示
x表示可执行,可运行这个程序 --数字1表示
没有权限的位置用-表示
*命令:mount noatime disk/(relatime特性只有当mtime比atime更新的时候才会更新atime,通过mount -o relatime /dir来挂装目录)
原理:禁用atime的修改来节省CPU和内存资源
名称 : mount 命令参考:http://www.jb51.net/linux/mount.htm
使用权限 : 系统管理者或/etc/fstab中允许的使用者 http://blog.chinaunix.net/uid-25749806-id-304267.html
使用方式 :
mount [-hV]
mount -a [-fFnrsvw] [-t vfstype]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
优点:将某个档案的内容解读成档案系统,然后将其挂在目录的某个位置之上。当这个命令执行成功后,直到我们使用 umnount 将这个档案系统移除为止,这个命令之下的所有档案将暂时无法被调用。
这个命令可以被用来挂上任何的档案系统,你甚至可以用 -o loop 选项将某个一般的档案当成硬盘机分割挂上系统。这个 功能对于 ramdisk,romdisk 或是 ISO 9660 的影像档之解读非常实用。
**umask who operator permissions
who
表示下列字符中的一个、两个或全部:
u(表示用户权限)
g(表示组用户权限)
o(表示其他用户权限)
a (ugo 的缩写形式)
如果忽略了字符 who,operator 和 permissions 将适用于所有类(等同于 a 或 ugo)。
operator
字符 +、- 或 = 之一:
+ 表示清除掩码中由 who 和 permissions 值代表的文件模式位,这样就可以在新建文件中启用相应的权限。
- 表示设置掩码中由指定的 who 和 permissions 值所代表文件模式位,这样就可以在新建文件中禁用相应的权限。
= 表示清除由相应的 who 和 permissions 值指定的文件模式位,并设置其他所有的值。
permissions
字符或字符组合 r、w、x、rx、wx、rw 或 rwx 之一,用于为相应的 who 和 operator 指定读、写和(或)执行(搜索)权限。
如果未指定 permissions,则相应的 who 中的现有文件创建模式掩码不会发生更改。
例如,要设置 umask 值,在新建文件中为文件所有者生成读、写和执行权限,并为其他所有用户生成只读权限 (-rwxr--r--),请输入以下内容:
$ umask u=rwx,g=r,o=r
要设置 umask 值,使文件所有者具有读写权限,同组的其他用户具有只读权限,除此之外的其他用户没有访问权限 (-rw-r-------),请输入以下内容:
$ umask a-rwx,u+rw,g+r
要确定当前的 umask 设置,请键入:
$ umask -S
(*****chmod是设哪个位,哪么哪个位就有权限,而umask是设哪个位,则哪个位上就没权限)
(一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,
所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。
如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中)
1、和目录相关的命令
mkdir
作用:创建目录
语法:mkdir filename
参数:-p 级联创建目录,确保目录名称存在,如果目录不存在的就新建
PS:同一目录下mkdir与touch的文件不可重名,因为在linux下的目录文件和普通文件都视为文件。
rmdir
作用:删除目录
语法:rmdir filename
参数:-p 级联删除目录
rm
作用:删除文件
语法:rm filename
参数: -r 删除目录
参数:-f 强制删除,不显示删除询问
PS:rm -rf a/b/c 与 rmdir -p a/b/c 效果上相同。
cp
作用:复制文件
语法:cp sourcefile destination
参数:-r 递归复制(用于复制文件夹,拷贝非空目录时把目录里的文件一起拷贝)
参数:-p 保留源文件或目录的属性,包括所有者、所属组、权限与时间
PS:cp命令可以覆盖与newfilename相同的文件。
mv
作用:移动文件
语法:mv sourcefile destination
参数:-f 强制移动,不显示覆盖询问
参数:-i 若目标文件(destination) 已经存在时,就会询问覆盖!
mv 源目录 目标目录(目标非空存在时不可以覆盖) mv 文件 文件 可以覆盖
2、文档命令
touch
作用:可以修改文件的三个时间参数(atime mtime ctime),多用于创建普通文件。
语法:touch filename
PS:atime:accesstime访问时间;mtime:modifytime修改内容时间;
ctime:changetime改变文件权限时间;relatime:解决atime的性能问题
时间问题参考:http://blog.chinaunix.net/uid-24500107-id-2602881.html
cat
作用:查看文档内容并在终端界面输出
语法:cat filename
PS:可以使用管道来改变cat的输出内容
tac
作用:与cat输出的内容顺序上下颠倒
语法:tac filename
more
作用:分屏输出文档内容,可向下翻页查看。
语法:more filename
操作方式:按下空格键,向下翻屏
less
作用:分屏输出文档内容,可上下翻页或上下翻行查看。
语法:less filename
操作方式:按下空格键,向下翻屏;按上下箭头翻行; 按j键,向下移动一行,按k键,向上移动一行;按ctrl+f,向
下翻页;按ctrl+b,向上翻页;按shift+G,前往文档最下面;按shift+g,前往文档最上面。
head
作用:显示文档头部N行,并输出
语法:head filename
参数:-n 输出文档头部n行(例如head -n 行数 filename / head -行数 filename)
PS:没有-n参数的话,默认输出前十行。
tail
作用:显示文档尾部N行,并输出
语法:tail filename
参数:-n 输出文档头部n行(例如tail -n 行数 filename / tail -行数 filename)
参数:-f 动态显示(查看文档时,如果文档内容发生改变,tail的输出会动态改变)
参数:-F 在-f的基础上增加一个 -retry,不常用。
PS:没有-n参数的话,默认输出后十行。
2、inode连接数
允许inode连接多个文件,一个目录和它之下的‘.’和此目录子目录下的‘..’共享同一个inode号。
复习硬连接和软连接
3、属主
4、属组
5、容量大小
6、mtime:modify time 修改内容时间
7、文件名称
4、权限相关命令
chmod
作用:修改文件权限
语法1:chmod u=rwx,g=r--,o=r-- filename
语法2:chmod 744 filename
语法3:chmod u+x filename
文件权限
文件权限共9位,3位为一个单位,3个单位分别对应与属主、属组及其他,每一个单位里分别有r(read)、w(write)、x(excute)。
chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
chmod -R 777 /home/user 注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx
要使用参数-R表示启动递归处理
chown
作用:修改文件属主、属组
语法:chown user:group filename
PS:还可以单独修改属主或属组,命令语法为chown user filename和chown :group filename
umask 参考:http://blog.itpub.net/7318139/viewspace-920215/
作用:通过设置umask值,来控制新建目录文件及普通文件的初始权限(指定在建立文件时预设的权限掩码)
语法:umask=022(可自定义)
原理:
目录文件的默认完整权限是777(rwxrwxrwx),减掉umask的022(----w--w-),所以新建目录文件权限为(rwxr-xr-x)755;
普通文件的默认完整权限是666(rw-rw-rw-),减掉umask的022(----w--w-),所以新建目录文件权限为(rw-r--r--)644。
(对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来 说,umask中各个数字最大可以到7)
date -s '2014-11-07 14:00:00'
一个文件是否可以被删除取决于上级目录权限
chattr
作用:设置文件的隐藏权限
语法:chattr +隐藏权限 filename
参数:+a 這個档案将只能增加资料,而不能刪除也不能修改资料,只有root才能设定这个属性
参数:+i 这个档案将不能做内容、名称、权限、设定连接文件等等任何的修改
lsattr
作用:查看文件的隐藏权限
语法:lsattr destination(类似于ls)
参数:-R 连同子目录的资料也一同显示出来
参数:-d 如果接的是目录,列出目录本身的属性,而非目录内的文件属性
history / !
作用:查看和调用历史命令
语法:history
语法1:!!(执行上一条命令)
语法2: !n(执行~/.bash_history里的第n条命令)
语法3: !-n(执行~/.bash_history里的倒数第n条命令)
语法4: !命令关键字(执行命令关键字匹配的倒数第一条命令,例如!cp就是执行最后一次执行cp的那条命令)
echo $? 查看上一条命令是否成功0成功,1失败
ls !$上一条命令的最后一个参数,以tab或空格间隔参数。“ls -l /etc/ -d”
tree 命令