Linux 文件与管理

文件属性

drwxr-xr-x. 3   root root    17   May 6 00:14 .config
[ 1 ]      [ 2 ][ 3 ][ 4 ]  [ 5 ]    [ 6 ]     [ 7 ]
[ 权限 ][连结][拥有者][群组][文件容量][ 修改日期 ] [ 文件名 ]

权限
[-][rwx][r-x][r--]
1   234  567  890
1 为:文件(-);目录(d);存储设备(b);键盘,鼠标等(c)
234 为:拥有者的权限,本例中为可读、可写、可执行(rwx)567 为:同群组用户权力,本例中为可读可执行(rx)890 为:其他用户权力,本例中为可读(r),就是只读之意

连结
表示有多少档名连结到此节点(i-node)

指令

cd:变换目录
pwd:显示当前目录
mkdir:建立一个新的目录
rmdir:删除一个空的目录

#PATH搜索的路径
echo $PATH #查看
PAHT="${PATH}:/root" #加入root

#更改拥有者
chown [-R] 拥有者:组名 文件或目录 #-R : 进行递归(recursive)

#更改权限
chmod u(user)/g(group)/o(others)/a +(加入)/-(除去)/=(设定) r/w/x  文件或目录

#更改群组 
chgrp [-R] dirname/filename ...#-R : 递归

#复制
cp ~/.bashrc /tmp/bashrc #源地址  目标地址
cp -i ~/.bashrc /tmp/bashrc  #i表示覆盖前的询问
cp /var/log/wtmp . #想要复制到当前目录,最后的 . 不要忘
cp -r /etc/ /tmp #  -r 是可以复制目录,

#删除
rm -i bashrc #i表示询问
rm -r /tmp/etc #递归删除啊,很危险
rm -f bashrc #忽略不存在的文件,不会出现警告讯息;

#移动
mv bashrc mvtest #源地址,目标地址 
mv mvtest mvtest2 # 这样就更名了!

#提取
basename /etc/sysconfig/network  #目录的名称,network
dirname /etc/sysconfig/network #路径的名称/etc/sysconfig

#新建文件
touch testtouch #新建一个空的文件并观察时间
touch -d "2 days ago" bashrc # 调整为两天前
touch -t 201406150202 bashrc #日期改为 2014/06/15 2:02

#修改默认权限
umask 指定『目前用户在建立文件或目录时候的权限默认值』
umask -S #查看

#查阅
cat /etc/issue #由第一行开始显示文件内容
cat -n /etc/issue #加印行号
cat -A /etc/man_db.conf #完全显示

tac /etc/issue  #从第最后一行开始显示文件内容

nl /etc/issue #列出 /etc/issue 的内容
nl -b a /etc/issue #所有行都加行号
nl -b a -n rz /etc/issue #行号前面自动补上 0 呢
nl -b a -n rz -w 3 /etc/issue #补3个0

more /etc/man_db.conf #一页一页翻动
	空格键 (space):代表向下翻一页;
	Enter :代表向下翻『一行』;
	/字符串 :向下搜寻『字符串』
	f :立刻显示出文件名以及目前显示的行数;
	q :代表立刻离开。
	b 或 [ctrl]-b :代表往回翻页

less /etc/man_db.conf #一页一页翻动 比more更有弹性
	空格键 :向下翻动一页;
	[pagedown]:向下翻动一页;
	[pageup] :向上翻动一页;
	/字符串 :向下搜寻『字符串』的功能;
	?字符串 :向上搜寻『字符串』的功能;
	n :重复前一个搜寻 (与 / 或 ? 有关!)
	N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
	g :前进到这个资料的第一行去;
	G :前进到这个数据的最后一行去 (注意大小写);
	q :离开 less 这个程序;

#文档提取
head /etc/man_db.conf  # 默认的情况中,显示前面十行
head -n 20 /etc/man_db.conf #若要显示前 20 行
head -n 20 /etc/man_db.conf | tail -n 10 #第 11 到第 20 行

tail /etc/man_db.conf # 默认的情况中,显示最后的十行
tail -n 20 /etc/man_db.conf #显示最后的 20 行
tail -n +100 /etc/man_db.conf #加100行数据

od -t c /usr/bin/passwd #内容使用ASCII 方式来展现
od -t oCc /etc/issue #以8 进位列出储存值与ASCII 的对照表

#文件的隐藏属性
chattr +i attrtest #给予 i 的属性,root权限也无法删除
chattr -i attrtest #请将该文件的 i 属性取消!
lsattr attrtest #查看隐藏文件

#文件搜索
whereis  #一些特定的目录中寻找文件文件名
	-l :可以列出 whereis 会去查询的几个主要目录而已
	-b :只找 binary 格式的文件
	-m :只找在说明文件 manual 路径下的文件
	-s :只找 source 来源文件
	-u :搜寻不在上述三个项目当中的其他特殊文件
locate #已建立的数据库/var/lib/mlocate/里面的数据,每天更新一次。updatedb更新
	-i :忽略大小写的差异;
	-c :不输出档名,仅计算找到的文件数量
	-l :仅输出几行的意思,例如输出五行则是 -l 5
	-S :输出 locate 所使用的数据库文件的相关信息,
	-r :后面可接正规表示法的显示方式

find #目录中查找
find / -mtime 0 # 24 小时内有更动过内容
find /etc -newer /etc/passwd #寻找 /etc 底下的文件,如果文件日期比 /etc/passwd 新就列出
find /home -user dmtsai #搜寻 /home 底下属于 dmtsai 的文件
find / -name "*passwd*" #找出文件名包含了 passwd 这个关键词的文件
find / -size +1M #找出系统中,大于 1MB 的文件

#压缩解压
zip -r dir1.zip dir1 #zip目录压缩
unzip dir1.zip #解压
 
zcat 檔名.gz #读取压缩文件
gzip -d services.gz #将范例一的文件解压缩

bzcat services.bz2 #范例一的文件内容读出来!
bzip2 -d services.bz2 #将范例一的文件解压缩

time tar -zpcv -f /root/etc.tar.gz /etc#打包+压缩
time tar -jpcv -f /root/etc.tar.bz2 /etc
time tar -Jpcv -f /root/etc.tar.xz /etc

tar -jxv -f 打包檔.tar.bz2 待解开档名 #解压

文件目录

传统上的常规做法是:
系统的组件放在/bin、/lib;
root访问/sbin;
仓库提供的应用程序放在/usr/bin、/usr/lib;
用户自己编译的放在/usr/local/XXX。
后来,把/bin、/lib、/sbin等连接到/usr/bin、/usr/lib、 /usr/sbin,为了方便调用吧。

目录第一部分 FHS 要求必须要存在的目录
/bin多放置执行文件, 被root 与一般账号所使用。
/bootLinux 核心文件以及开机选单与开机所需配置文件等等。vmlinuz,grub2
/dev 任何装置与接口设备都是以文件的型态存在于这个目录当中的。
/etc主要的配置文件几乎都放置在这个目录内,只有root 有权力修改。
/lib 系统的函式库。/lib/modules/:驱动程序
/media/media 底下放置的就是可移除的装置啦! 包括软盘、光盘、DVD 等等。
/mnt 暂时挂载某些额外的装置。
/opt 第三方协力软件放置的目录。更习惯放置在/usr/local 目录下。
/run开机后所产生的各项信息
/sbin 用来设定系统环境的执行文件,只有root才能使用。
/srv一些网络服务启动之后,这些服务所需要取用的数据目录。预设还是建议放置到 /var/lib 底下即可。
/tmp暂时放置文件的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。
/usr第二层 FHS 设定,后续介绍
/var第二曾 FHS 设定,主要为放置变动性的数据,后续介绍
目录应放置文件内容
/lost+found标准的ext2/ext3/ext4 文件系统格式。当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。
/proc『虚拟文件系统(virtual filesystem)』,他放置的数据都是在内存当中
/sys 与/proc 非常类似,主要也是记录核心与系统硬件信息较相关的信息。
目录USR(Unix Software Resource)
/usr/bin/ 所有一般用户能够使用的指令都放在这里!/usr/bin 与 /bin 是一模一样了!
/usr/lib/基本上,与 /lib 功能相同,所以 /lib 就是链接到此目录中的!
/usr/local/本机自行安装的软件
/usr/sbin/root指令。目前 /sbin 就是链接到此目录中的。
/usr/share/主要放置只读架构的数据文件,当然也包括共享文件
/usr/share/man:联机帮助文件
/usr/share/doc:软件杂项的文件说明
/usr/share/zoneinfo:与时区有关的时区文件
/usr/games/与游戏比较相关的数据放置处
/usr/include/c/c++等程序语言的档头(header)与包含档(include)放置处
/usr/libexec/某些不被一般使用者惯用的执行档或脚本(script)等等,都会放置在此目录中。
/usr/lib<qual>//lib<qual>/功能相同,因此目前 /lib<qual> 就是链接到此目录中
/usr/src/ 一般原始码建议放置到这里,src 有source 的意思。至于核心原始码则建议放置到/usr/src/linux/目录下。
目录VAR
/var/cache/应用程序本身运作过程中会产生的一些暂存档;
/var/lib/ 程序本身执行的过程中,需要使用到的数据文件放置的目录。
/var/lock/某些装置或者是文件资源一次只能被一个应用程序所使用,因此就得要将该装置上锁(lock)。
/var/log/ 重要到不行!这是登录文件放置的目录!里面比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。
/var/mail/放置个人电子邮件信箱的目录
/var/run/ 某些程序或者是服务启动后,会将他们的PID 放置在这个目录下喔! 目录链接到 /run !
/var/spool/这个目录通常放置一些队列数据,所谓的『队列』就是排队等待其他程序使用的数据啦!。
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值