文件属性
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 与一般账号所使用。 |
/boot | Linux 核心文件以及开机选单与开机所需配置文件等等。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/ | 这个目录通常放置一些队列数据,所谓的『队列』就是排队等待其他程序使用的数据啦!。 |