7.1.2目录相关操作
1.
. 当前目录
.. 上一目录
- 前一目录
~用户主文件夹
/ 的. 和.. 都是自己
csl@ubuntu:/$ cd ..
csl@ubuntu:/$ ls
bin etc initrd.img lost+found opt run srv usr
boot home lib media proc sbin sys var
dev host lib64 mnt root selinux tmp vmlinuz
2.简单命令
pwd显示当前工作目录(print working directory)
-p显示当前路径,非连接路径m
mkdir
-m 设置权限,默认权限与umask 相关
csl@ubuntu:~/code$ mkdir -m 777 t4
csl@ubuntu:~/code$ ls -al
total 8
drwxrwxrwx 2 csl csl 1024 7月 11 11:08 t4
-p递归创建目录 ,一般情况下 mkdir t1/t2/t3 是不允许的, 若加-p则可以
csl@ubuntu:~/code$ mkdir t1/t2/t3
mkdir: cannot create directory `t1/t2/t3': No such file or directory
csl@ubuntu:~/code$ mkdir -p t1/t2/t3
csl@ubuntu:~/code$
rmdir
-r强制删除目录下所有文件,即使目录非空
-p递归删除上层目录,只有空目录可以删除
7.1.3$PATH(大写)
1.文件路径环境变量,在任意出输入命令如ls时,系统根据用户的PATH变量配置的目录,到每一个目录下寻找对应命令名字的可执行文件,执行。
csl@ubuntu:~/code$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
ls可执行文件位于/bin之下
2.命令执行可以直接到可执行文件所在文件夹地下,一文件名的形式执行,也可以配置PATH,将可执行文件所在文件夹加入PATH。
csl@ubuntu:~/code$ /bin/ls
ACM t1 t4 twst
7.2.2
rm
mv移动目录&文件
cp
复制,文件属性为默认属性,所有者为复制操作执行人
-a 连文件属性一起复制,若cp者用户无权限,不能完成复制
csl@ubuntu:/$ ls -al initrd.img
lrwxrwxrwx 1 root root 33 8月 23 2013 initrd.img -> /boot/initrd.img-3.8.0-29-generic
csl@ubuntu:/$ cp -a initrd.img i.img
cp: cannot create symbolic link `i.img': Permission denied
-s 符号连接
-l 硬连接
-u目标文件比原文文件旧时,才更新目标文件
-r 递归复制
-i
-f
basename 取得最后的文件名或者目录名
csl@ubuntu:/$ basename /initrd.img
initrd.img
dirname 取得目录名
csl@ubuntu:/$ dirname /initrd.img
/
7.3.5修文件时间/创建文件:touch
文件有三种文件时间
mtime ----modification time 内容修改时间
ctime -----state time 文件属性等的修改时间
atime -----access time 最近访问时间
csl@ubuntu:~/test$ ls -l t
-rw-rw-r-- 1 csl csl 0 7月 9 19:10 t
csl@ubuntu:~/test$ ls -l --time=atime t
-rw-rw-r-- 1 csl csl 0 7月 11 16:12 t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0 7月 9 19:10 t
touch 创建文件,修改文件创建日期
-t 后可直接跟日期 0708141402 日期为2014/07/08 14:02,可跟在 -a -m后,无-t参数则默认为当前时间
-a 修改atime
-c 修改ctime 后面接-t参数无效
-d同时修改 atime和ctime 后可接欲修改的时间
-m修改mtime
csl@ubuntu:~/test$ ls -l t
-rw-rw-r-- 1 csl csl 0 7月 16 01:00 t
csl@ubuntu:~/test$ touch -a -t 0708091403 t
csl@ubuntu:~/test$ ls -l --time=atime t
-rw-rw-r-- 1 csl csl 0 8月 9 2007 t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0 7月 16 12:18 t
csl@ubuntu:~/test$ touch -c t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0 7月 16 12:35 t
csl@ubuntu:~/test$
-c 修改ctime 后面接-t参数无效
csl@ubuntu:~/test$ touch -c -t 0708091403 t
csl@ubuntu:~/test$ ls -l --time=ctime t
-rw-rw-r-- 1 csl csl 0 7月 16 12:36 t
csl@ubuntu:~/test$ touch -d 2013-05-02 t
csl@ubuntu:~/test$ ls -l --time=atime t;ls -l t
-rw-rw-r-- 1 csl csl 0 5月 2 2013 t
-rw-rw-r-- 1 csl csl 0 5月 2 2013 t
7.4文件与目录的默认权限&应藏权限
7.4.1文件默认权限umask
umask 用户建立文件时的默认权限,umask的值代表要取出的权限,4位,每一位的二进制分别代表隐藏权限、u、g、o要去除的权限,1位代表要去除的权限
如0002建立的文件为u drwxrwxr-x,文件以rw-rw-rw- 为基础去除umask,目录以-rwxrwxrwx为基础
可以设置umask的值 umask value
csl@ubuntu:~/test$ umask
0002
csl@ubuntu:~/test$ umask 0022
csl@ubuntu:~/test$ touch tufile
csl@ubuntu:~/test$ mkdir tufiled
csl@ubuntu:~/test$ ls -l tufile tufiled
csl@ubuntu:~/test$ ls -al
total 5
。。。
-rw-r--r-- 1 csl csl 0 7月 16 14:22 tufile
drwxr-xr-x 2 csl csl 1024 7月 16 14:23 tufiled
7.4.3 隐藏属性
SUID SGID SBIT
SUID 只对二进制文件有效,如果文件拥有SUID则当用乎在执行该文件是,执行用户拥有文件所有者的权限
SGID 对二进制文件,用户若拥有x权限,则在执行的过程中,获取文件所在用户组的权限
对目录而言,若用户能进入该目录,则用户在此目录现获取,该目录的用户组的权限,如果目录所属用户组拥有w权限则,用户可创建文件,用户组属于此目录的所属 用户组
SBIT 对目录而言的,在此目录下的拥有SBIT属性,若用户能访问并能创建文件,则用户创建的文件只有自己与root能删除、重命名、移动!
修改权限的方法
SUID SGID SBIT 权限的数字分别为 4 2 1,修改权限是最高第四位的数字代表隐藏属性
csl@ubuntu:~/test$ chmod 4777 tufile
-rwsrwxrwx 1 csl csl 0 7月 16 14:22 tufile
csl@ubuntu:~/test$ chmod 2777 tufile
-rwxrwsrwx 1 csl csl 0 7月 16 14:22 tufile
csl@ubuntu:~/test$ chmod 7777 tufile
-rwsrwsrwt 1 csl csl 0 7月 16 14:22 tufile
7.4.4 file
查看文件基本信息,如文件类型二进制文件,binary文件。是否使用动态链接等!
7.5命令&文件查询
which 用户的$PATH变量所包的目录,查找命令的路径
-a 输出所有找到的,而不是第一个
whereis 从数据库中查找文件的路径,find是在硬盘上查找,慢!,但数据库更新问题,可能找不到刚新建的目录,或者找到已删除的目录。
-b只查找二进制文件
-m 只查找munal下的文件
-s 只查找源文件
-u 查找不再上述三个文件选项中的文件
csl@ubuntu:~/test$ whereis firefox
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/bin/X11/firefox /usr/share/man/man1/firefox.1.gz
csl@ubuntu:~/test$ whereis -b firefox
firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/bin/X11/firefox
locate 也是从数据库中查找,只文件或者路径中包含查找的名字,就输出
-r 可接正则表达式
-i忽略大小写
linux文件数据库一天一更新
updatedb 能手动更新数据库,花时可能几分钟!