. 代表当前目录
.. 代表上层目录
/ 根目录
- 代表前一个工作目录
~ 代表当前使用者家目录
~account 代表account用户的家目录
cd 变换目录(changedirectory)
pwd 显示当前目录(printworkingdirectory)
mkdir 建立新目录(makedirectory)
rmdir 删除目录(removedirectory)
ls 查看文件和目录(list)
- -a 全部文件
- -h humanreadable
- -R 递归
- -l 长列表
cp 复制文件和目录(copy)
- -f force
- -p 复制属性
- -r 递归
rm 删除文件和目录(remove)
- -f force
- -i 询问
- -r 递归
-
mv 移动文件和目录(move)
- -f force
- -i 询问
查看文件内容
cat
- -n 显示行号
tac 反向显示
more 可翻页显示,仅下翻
less 可翻页显示,可上下翻
- / 搜索字符串
- n 向下搜索
- N 向上搜索
- q 退出
head 显示头几行
- -n
tail 显示最后几行
- -n
od 显示非文本文件
- -t a 预设字符
c ascii输出
d 十进制输出
f 浮点输出
o 八进制输出
x 十六进制输出
文件时间
mtime (modification time)文件内容改变时,会更新这个时间
ctime (status time)文件属性改变时,会更新这个时间
atime (access time)文件被读取时,会更新这个时间
touch
-a 修改atime
-c 仅修改时间,不建立文件
-d 接日期
-m 修改mtime
-t 接时间
文件预设权限 umask
表示去掉某个权限
文件隐藏属性
chattr (change attribute)
+ 增加属性
- 去掉属性
= 设定等于属性
a 文件只能增加数据,不能删除
i 文件不能删除、改名、写入
lsattr (listattribute)
-a 包括隐藏文件
-R 递归
每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。 利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为 准。第一个字段由10个字符组成,如下:
-rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位表示文件所有者的权限,u权限
5-7位表示文件所有者所属组成员的权限,g权限
8-10位表示所有者所属组之外的用户的权限,o权限
2-10位的权限总和有时称为a权限以上例子中,表示这是一个文件(非目录),文件所有者具有读、写和执行的权限,所有者所属组成员和所属组之外的用户具有读和执行的权限而没有写的权限。
1. 用数字表示法修改权限
所谓数字表示法,是指将r、w和x分别用4、2、1来代表,没有授予权限的则为0,
然后把权限相加,如下
原始权限 转换为数字 数字表示法 rwxrwxr-x (421)(421)(401) 775 rwxr-xr-x (421)(401)(401) 755
修改权限的例子:将文件test的权限修改为所有者和组成员具有读写的权限,其他 人只有读权限
chmod 664 test
2. 用文本表示法修改权限
文本表示法用4个字母表示不同的用户:
u:所有者
g:组成员
o:其他成员
a:所有人
权限仍用r、w和x表示
和数字表示法不同,文本表示法不仅可以重新指定权限,也可以在原来权限的基础上 增加或减少权限,如下:
=:重新制定权限
-:对目前的设置减少权限
+:对目前的设置增加权限
例子:讲上述例子中,所有者加上执行权限,组成员减少执行权限,其他成员设置为 执行权限,执行以下命令
chmod u+x,g-x,o=x test注意:逗号前后不能有空格
目录权限的修改和文件权限修改不同,只是四种权限代表的含义如下:
r:可列出目录中的内容
w:可在目录中创建、删除和修改文件
x:可以使用cd命令切换到此目录
-:没有任何此目录的访问权限
注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件 的权限设置为任何人都可以读写
chmod 666 /test/*
linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是setuid、setgid和stick bit
1、setuid、setgid
先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限
[root@MyLinux ~]# ls -l /usr/bin/passwd /etc/passwd-rw-r--r-- 1 root root 1549 08-19 13:54 /etc/passwd-rwsr-xr-x 1 root root 22984 2007-01-07 /usr/bin/passwd众所周知,/etc/passwd文件存放的各个用户的账号与密码信息,/usr/bin/passwd是执行修改和查看此文件的程序,但从权限上看,/etc/passwd仅有root权限的写(w)权,可实际上每个用户都可以通过/usr/bin/passwd命令去修改这个文件,于是这里就涉及了linux里的特殊权限setuid,正如-rwsr-xr-x中的s
setuid就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,setgid同理指”组“
作为普通用户是没有权限修改/etc/passwd文件的,但给/usr/bin/passwd以setuid权限后,普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passwd文件了
2、stick bit (粘贴位)
再看个实例,查看你的/tmp目录的权限
[root@MyLinux ~]# ls -dl /tmpdrwxrwxrwt 6 root root 4096 08-22 11:37 /tmptmp目录是所有用户共有的临时文件夹,所有用户都拥有读写权限,这就必然出现一个问题,A用户在/tmp里创建了文件a.file,此时B用户看了不爽,在/tmp里把它给删了(因为拥有读写权限),那肯定是不行的。实际上是不会发生这种情况,因为有特殊权限stick bit(粘贴位)权限,正如drwxrwxrwt中的最后一个t
stick bit (粘贴位)就是:除非目录的属主和root用户有权限删除它,除此之外其它用户不能删除和修改这个目录。
也就是说,在/tmp目录中,只有文件的拥有者和root才能对其进行修改和删除,其他用户则不行,避免了上面所说的问题产生。用途一般是把一个文件夹的的权限都打开,然后来共享文件,象/tmp目录一样。
3、如何设置以上特殊权限
setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx
或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:
suid guid stick bit
1 1 1
所以:suid的二进制串为:100,换算十进制为:4
guid的二进制串为:010,换算:2
stick bit 二进制串:001,换算:1
于是也可以这样设:setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx
最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限.
权限掩码有4个八进制的数字组成,讲现有的权限减掉权限掩码后,即可产生此文件建立 时的默认权限。
一般来说,新建文件的默认值是0666,新建目录的默认值是0777,如果将全线掩码设置 为0002,则每个新建文件的默认权限为0666-0002=0664,而目录的默认权限则为775。
可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默认权限掩码。
用umask的方式指定默认权限掩码,可以避免添加访问权限过大的文件或目录。
正规文件:第一个属性为 “-”
纯文本文件
类似windows中的txt文件,但是linux的文本更广泛
二进制文件
类似windows中的exe可执行文件
数据格式文件
数据文件,用文本方式读取可能是乱码,例如log文件,可以通过last等指令读取
目录,第一属性为“d”
连接文件,第一属性为“l”
类似windows下快捷方式,但又不全相同,具体细节以后讨论
设备文件
通常在/dev目录下,分两类
区块设备文件,第一属性为“b”
一般为存储设备,例如:硬盘之类的
字符设备文件,第一属性为“c”
一般是串口设备,如键盘或者鼠标等
数据接口文件,第一属性为“s”
通常用作socket编程时的,数据传输
命名管道文件,第一属性为“p”
常用于多进程间的读写操作
Linux文件扩展名
严格来说linux里面是没有所谓扩展名的,linux不像windows一样严格以后缀来识别文件类型。但是有些文件为了让使用者了解它的作用所以也会带扩展名。
例子:
*.sh shell 脚本文件
*.z *.tar *.tar.gz *.zip *.tgz 压缩文件
*.html *.php 网页文件
*.pl perl脚本
初学者可以使用ls或ll指令查看各个文件夹,通过查看各个文件夹下文件的颜色来了解文件的含义。
- /boot:系统启动时需要的文件,如vmlinuz和initrd.img
- /dev:接口设备文件目录,如hda表示第一块IDE硬盘
- /etc:有关系统设置与管理的文件,如passwd。保存在/etc目录中的文件一般都不是二进制文件
- /etc/X11:X Window系统的设置目录
- /home:用户的主目录
- /lib:仅包含执行/bin和/sbin目录中的二进制文件时所需要的共享类库
- /mnt:设备文件系统的挂载点,如光盘的默认挂载点是/mnt/cdrom
- /opt:通常提供一个空间,供较大型且固定的应用程序软件保存文件使用,这样可以避免将文件分
- 散到整个文件系统
- /proc:目前系统内核与程序执行的信息,它和ps可以看到的内容相同
- /root:root管理员主目录,其它用户的主目录都位于/home目录中
- /sbin:system binary的缩写,存放的是系统启动时需要执行的程序,如swapon
- /tmp:存放临时文件的目录
- /usr:存放用户使用的系统命令,以及应用程序等信息/usr/bin:存放用户可执行的程序,如mdir/usr/inculde:保存供C语言加载的头文件/usr/include/X11:保存供X Window程序加载的头文件 /usr/lib:类库/usr/lib/X11:X Window类库 /usr/local:提供自行安装的应用程序位置/usr/sbin:存放非经常性使用的程序,如showmount/usr/src:保存程序的源文件/usr/X11R6/bin:存放X Window系统的执行程序
- /var:Variable的缩写,具有可变性质的相关程序目录,如log、spool等
红色为压缩文件;褐色为设备文件。
/etc目录
/usr目录
/var目录
/proc目录
/dev目录