1.目录与路径

目录配置的依据是FHS标准。
目录的四个类型:
1.可分享:可分享给其他系统挂载使用的目录。
2.不可分享:自己机器上运行的设备文件。
3.不变:部分不会经常变动的数据。
4.可变动:经常修改的数据,日志文件等。
FHS要求必要存在的目录:
/bin单人维护模式下还可以使用的指令
/lib启动时需要使用的函数库
/boot启动时需要用到的文件
/dev设备与接口设备都以文件形式存于这个目录当中,读写这个目录的文件等于读写某个设备
/etc系统的主要配置几乎都放在这个目录内
/opt给第三方辅助软件放置的目录
/media光盘等暂时需要挂在的设备放置于此
/usr不是user是UNIX Software Resource的缩写
相对路径与绝对路径
绝对路径:由根目录开始写起的文件名或目录名称。
相对路径:相对于目前路径的写法
./代表当前的目录
…/代表上层目录
几个常见的目录处理指令
cd:切换目录

cd ~//回答用户目录
cd ..//回到上层目录
cd -//回到刚刚的目录

pwd:显示当前目录
mkdir:建立一个新的目录
rmkdir:删除一个空目录

2.文件与目录管理

1.文件与目录的查看:ls

2.复制、删除与移动:cp、rm、mv

cp复制

cp//常用的cp指令
-a//使被复制的对象的特性与原文件一样
-i//若目标文件已存在,则询问
-p//连同文件创建的时间等属性一起复制
-r//递归复制文件夹

rm删除

rm -rf/ //核按钮
-i//交互模式 询问是否删除

mv移动文件与目录,或重命名

-f//强制移动,若存在直接覆盖
-i//若已存在,则会询问是否覆盖
-u//若已存在,且文件较新才会更新
mv tmp tmp2//为重命名语法 mv 文件夹名 新文件夹名
//可以使用ls -al看被移动文件的权限

获取文件的相对路径和绝对路径

basename//取文件名,但是似乎路径一般最后就是文件名啊
dirname//取文件路径名这个应该有些用

3.文件内容查看

直接查看文件内容有几种方式:
cat/tac/nl
cat的相关指令

cat [-AbEnTv]//不太适用于40行以上的文件内容,太长来不及看系列。
-A//可列出特殊字符
-b//列出行号,针对非空白行
-E//将结尾的换行符打印$ 但是似乎会覆盖掉每行第一个字符?
-n//打印行号,空白的也打印,区别于-b
-T//显示TAB键
-v//列出看不见的特殊字符

tac指令,即反向操作——逆序输出

tac text.txt//tac等于反向cat 没毛病
//文档会从最后一行开始输出

nl为添加行号打印和cat -b几乎一样。

可翻页查看

more//当文件内容大于一页可以显示的最大值时用这个
//空格键翻页 enter下一行 没办法向前翻页
less//可以向前翻页 相比于more更灵活

数据截取

head -n number text.txt//表示取出text.txt,文件的前n行
tail -n number text.txt//表示取出text.txt,文件的后n行

非纯文本文件:od
部分非文本文件执行的时候都是乱码,只能用od来读取
修改文件时间或创建新文件:touch
修改时间mtime:文件内容变更时变动的时间。
状态时间ctime:文件的权限和属性变动的时间。
读取时间atime:该文件的内容被读取的时候变动的时间。
文件默认权限:umask
去掉部分权限,在创建新文件夹的时候,拿掉部分权限。

4.命令与文件的查找

4.1命令的查找

命令行模式下双击tab可以知道有多少命令可以执行,which命令可以告诉你这些命令放在哪里

which -a command//列出所有PATH中可以找到的命令

4.2文件的查找

whereis从特定目录中查找文件

whereis [-bmsu] 文件名或目录名
-l//列出查询的主要目录
-b//只找二进制格式的文件
-m//只招在说明文件manual路径下的文件
-s//只招源文件
-u//查找不到的其他特殊文件

locate/updatedb
locate从已建立的数据库中查找数据,数据库定期自动更新,所以刚建立的文件有可能查找不到,但可以手动更新数据库。

locate [-ir] keyword
-i//忽略大小写的差异
-c//不输出文件名,仅计算找到的文件数量
-l//仅输出几行
-s//输出数据库信息
-r//可接正则表达式的显示方法
updatedb//需要root权限 su

find速度相对慢,直接硬盘搜索这种

find [PATH] [option] [action]
//1.与时间有关的选项
//-mtime n:n为数字,意义为n天之前的那天之内被修改过的内容
//-mtime +n:列出n天之前被修改过的文件内容
//-mtime -n:列出在n天之内被修改过的文件的内容
//-newer file:file为一个存在的文件,列出比它都新的文件