Linux档案与目录管理
一、常用命令
目录操作:
改变目录:cd(change directory)
显示当前目录:pwd(print working directory),
pwd -P 显示确实路径,而非连接路径
建立空目录:mkdir [-mp]
mkdir -m 711 test ,配置权限
mkdir -p d1/d2/d3,d1/d2/d3创建目录
删除空目录:rmdir
rmdir -p d1/d2/d3,递归删除,只能删除空目录
删除:rm -r d1
文件操作:
查看:ls -al
复制:cp t1 t2,cp -r t1/t2 t3,递归复制
建立链接档:cp -l t1 t1_hlink,硬连接
cp -s t1 t3_slink
删除档案:rm [-fir] 档案
f(force):强制
i:互动模式
r:递归删除
移动,改名:mv [-fiu] 档案
取得档案路径和档案名:
basename /etc/sysconfig/network
dirname /etc/sysconfig/network
查看档案内容:
cat(concatenate):第一行开始显示
cat -n test
cat -b test:空白行不显示行号
tac:最后一行开始
nl:显示的时候输出行号
more:一页一页显示
Space:向下翻页
Enter:下一行
/字符 向下搜索
:f 显示文件名以及当前显示的行数
q 离开more
b或[ctrl]+b 往回翻页,只对档案有效,对管线无效
less:与more相似,但可以向前翻页
Space:向下翻页
[pagedown]:向下翻页
[pageup]:向上翻页
/字串:向下搜索
?子串:向上搜索
n:重复向下搜索
N:重复向前
q:离开
head:只显示头几行
head test:默认显示10行
head -n 20 test:20行
head -n -100 test:不显示后100行
tail:只显示尾几行
tail -n 20 test:20行
tail -n +100 test:100行以后数据
tail -f test:持续侦测该文件
例如:head -n 20 /etc/man.config | tail -n 10 :显示该文件11行至20行
od:二进制方式读取文档
touch:修改档案时间或创建档案
文件的三个时间:
(1)mtime(modification time):该档案的内容改变事
(2)ctime(status time)文件状态改变事,权限,属性
(3)atime(access time)内容被读取时,比如用cat
默认情况下。ls显示的是mtime
实例:
touch -ad '2 days ago' tt :将tt文件atime修改到两天前
touch -at '200012121212' tt:将tt文件atime修改为2000-12-12 12:12
cp -a tt tt1 :复制一个文件所有,也不能复制ctime
二、PATH(执行程序路径)
查看:echo $PATH
注意:
1、不同用户身份的PATH不同
2、PATH是可以修改的,所以执行程序一般用绝对路径
3、当前目录(.)不要放到PATH中
三、linux档案默认权限和隐藏权限,可参考/etc/bashrc文件
1、档案预设权限umask
umask,umask -S,查看
umask 002:更改默认权限
新建文件默认权限:644
新建文件夹默认权限:755
2、设定隐藏属性
chattr [+-=] [ASacdistu] 档案
A:存取档案时,actime不会变
S:异步写入磁盘与sync差不多
a:只能增加数据,只有root可以使用该属性
c:将档案自动压缩后存储,反之
d:不会被dump程序备份
i:不能删除,改名,连结,root
s:完全删除这个硬盘
u:与s相反,可以救援该档案
实例:
chattr +i tt : 添加i属性
3、查看隐藏属性
lsattr [-adR] 档案
a:显示隐藏文件
d:如果是目录,列出目录本身而非目录内文件名
R:连同子目录数据
四、特殊权限(SUID,SGID,SBIT)
例如:/usr/bin/passwd,/tmp
1、Set uid
当s出现在档案拥有者x权限上如:/usr/bin/passwd,就称该文件设定了SUID
SUID作用:
(1)仅对二进制程序(binary program)有效
(2)执行者对该程序需要x权限
(3)执行者将具有该称寻拥有者(owner)权限,执行过程中(run-time)有效
2、set gid
当s在档案群组x上,称该文件设定了SGID
SGID对程序作用:
(1)可以是目录也可以是档案
(2)对该程序来说需具备x权限
(3)执行者在执行过程中获得该程序群组支持
如:/usr/bin/locate,/var/lib/mlocate/mlocate.db
SGID对目录作用:
(1)有效群组(effective group)变成目录群组
(2)如果有w权限,新建档案群组是该目录群组
3、set bit
当t在其他人x上
SIT作用:
(1)当用户对目录w,x权限,创建的文件,自己能删除自己的,root可以删除所有
4、设定特殊权限
SUID:4,SGID:2,SBIT:1
-rwsr-xr-x : 4755 —》chmod 4755 filename
chmod u=rwxs,go=x filename
注意:如果对该档案没有x权限,则相应的权限用大些字母表示
五、查看文件类型
file:查看该文件是ASCII还是data或binary,有没有用到动态函数库(share library)
如:file ~/.bashrc
file /usr/bin/passwd
file /var/lib/mlocate/mlocate.db
六、文件搜索
1、which [-a] ifconfig(查找命令)(根据PATH查找)
a:将所有在PATH中找到的指令列出,而不是第一次找到的
which which
which cd:找不到,因为cd是内建命令
2、档案查找whereis和locate
whereis [-bmsu] 档案
b:binary
m:在说明文件manual路径下
s:source来源
u:不在上述三项内
如:whereis -m passwd:找出与passwd有关的说明文件
locate [-ir] 关键字(查找/var/lib/mlocate/mlocate.db)
i:忽略大小写
r:后面跟正则表达式
如:locate passwd:找出系统中所有与passwd相关档案
手动更新数据库updatedb,他读取/etc/updatedb.conf
3、超级查找命令find(选项前省略-)
find [PATH] [option] [action]
(1)与时间有关选项
atime,mtime,ctime
(2)时间
+2 : 大于等于2天前
2 : 刚好2天(2-3)
-2 : 小于等于2天
如:find /var -mtime 0 :24小时内修改的文件
(3)与使用者或组相关
uid n: 用户帐号uid
gid n: 组名gid
user name: 用户name
group group:组名
nouser :档案拥有者不在/etc/passwd
nogroup :档案拥有群组不在/etc/group
如:find /home -user ren :查找/home下属于用户ren的档案
(4)与档案权限和名称有关参数
name filename : 文件名为filename的文件
size [+-]SIZE : 单位,c:byte,k:kb,M:MB,G:GB
type TYPE : 正规档案:f,装置文件:b,c,目录:d,连结档:l,socket:s,FIFO:p
perm mode:权限等于mode,-rwsr-xr-x等于4755
-perm 4755,-perm 0744
+7000,表示有其中一个,-7000表示拥有所有
如:find /bin /sbin -perm +6000
(5)特殊动作
exec command : command 为其他指令。不支持命名别名
print : 结果打印到屏幕。默认
如:将找到的文件用ls -l显示
find / -perm +700 -exec ls -l {} \;
综合查找:
找出/etc下,档案大小介于50k到60k之间并以完整权限列出
find /etc -size +50k -a -size -60 -exec ls -l {} \;
-a 表示and
找出/etc下,档案大于50且所有者不是root的文件并以完整权限列出
find /etc size +50 -a ! -user root -exec ls -l {} \;