Linux本质上是一个 文件系统,是操作系统组织、存取、保存数据的手段。整体采用层级式的倒树状目录结构。
一、目录
/ :根目录;
/boot :主要存放系统的引导程序;
/dev :存放硬件设备对应的文件;(操作硬件设备应找存放在dev下对应的映射文件)
/etc :存放系统和应用程序的配置文件;
/home :家目录,存放当前系统下所有用户对应的目录;
/lib :存放系统和应用程序依赖的库文件,有系统库,也有第三方库;
/proc :存放系统运行时的运行信息;
/usr :存放缓存,备份文件;
/cdrom :光驱;
/var :存放缓存,备份文件;
/mnt :用于文件系统的挂载目录;
/sbin :用于存放特权指令;
二、路径
-
绝对路径:以根目录(/)为参考点描述的路径;
cd /home/shenyuanli 绝对路径
-
相对路径:以当前目录(./)为参考点描述的路径;
cd /home 绝对路径
cd ./shenyuanli 相对路径,不能任意切换,必须是当前路径才能切换
cd shenyuanli 相对的另一种写法
三、 系统文件类型
说明:
- d :目录(文件夹);
- - :文件;
- l :快捷方式;
- c :字符设备文件;
- b :块设备文件(大容量磁盘-存储设备);
- s :表示套接字文件;
- p :表示管道文件;
四、通配符
-
* :匹配任意一个或多个字符(不限字符数量);
-
? :匹配任意单个字符
-
[..] :匹配[..]范围中的任意一个字符
五、目录操作
1、指令
语法:
指令 [选项] 操作的文件或目录
编辑main.c文件完成后,先按Esc退出编辑模式,然后在命令行模式中输入 :wq! 后按下回车键即可退出。
-
pwd :查看当前目录的路径(绝对路径)
cd ~(家目录下的根路径) = cd /home/shenyuanli
-
ls :显示指定路径(默认当前路径)下的文件或者目录
ls中的特殊写法:
-a :显示所有(包含隐藏文件)文件或目录;
-l :显示所有的文件或目录的详细信息列表;
-r :将文件以相反次序显示(原定依照英文字母次序);
-t :将文件以创建时间的先后次序显示;
说明:多个参数是可以共同出现的,如:
ls -t -l -r = ls -tlr
-
cd :切换目录
格式:
cd 目录
注意 :cd后不跟文件路径,应该跟文件夹路径。
cd中的特殊写法:
cd ~ :切换到当前家目录下的用户目录下;
cd - :返回上一次的工作目录(连续偶数次相当于保持原本状态);
cd / :切换到根目录;
cd ./ :切换到当前目录;
cd ../ :回退到上一级目录;
cd ../.. :回退到上上级目录;
-
mkdir :创建空文件夹(目录)
语法:
mkdir 文件夹路径
举例:
参数:
-p :可以创建多层文件夹
语法:
mkdir -p 文件夹多层级路径
举例:
-
touch :创建文件
语法:
touch 文件路径
举例:
-
rmdir :删除空目录,仅限于删除空目录
语法:
rmdir 空目录路径
举例:
-
rm :删除文件(递归删除时可以删除文件夹)
语法:
rm [选项] 目录/文件路径
选项:
-i :给出交互提示,可以输入yes或者no;
-r :递归删除;
-f :强制删除,不提示;
举例:
-
cp :复制文件或文件夹(也就是复制+粘贴的结合)
语法:
cp 选项 被复制的目录/文件路径 目的地的路径
选项:
-i :如果目的地址路径下已经存在同名目录/文件,会交互提示;
-r :递归复制:复制文件夹中的所有;
举例:
day02中的目录结构:
拷贝文件:
-
mv :移动文件(重命名文件)
语法:
mv 被移动的文件路径 目的地的文件路径/目录
说明:
被移动的文件名与目的地的文件名不一致,相当于重命名了
举例:
mv aa.txt ../b 移动
mv aa.txt bb.txt 当前目录重命名
mv aa.txt ../b/bb.txt 移动并重命名
mv aa.txt ../b/cc.txt 移动+重命名
cp -ri aa.txt ../b/cc.txt 复制+重命名
b: cp -ri /home/shenyuanli/a/b.txt ../b | ~/b | /home/shenyuanli/b | ./
六、文件操作
1、指令
-
cat :查看文件内容
语法:
cat 文件路径
cat 【选项】 文件路径
选项:
-n :显示行号(识别换行符)
-
more :分页查看文件内容
语法:
more 文件路径
操作:
空格键 :向下翻一页;
回车键 :向下翻一行(识别换行符);
Q键 :退出;
-
less :分页查看文件内容
语法:
less 文件路径
less [选项] 文件路径
选项:
-M :显示当前行的范围(识别换行符)
操作:
空格键:向下翻一页;
B键:向上翻一页;
Q键:退出;
方向键上/下:向上/向下翻一行(识别换行符);
-
head :从文件头开始看指定行的内容(默认10行)(识别换行符)
语法:
head 文件路径
head [选项] 文件路径
选项:
-n :从头开始显示n行内容(识别换行符);
-
tail :查看文件末尾内容(默认10行)(识别换行符)
语法:
tail 文件路径
tail [选项] 文件路径
选项:
-n :从尾开始显示n行内容(识别换行符);
-
grep:搜索文件内容,在文件中查找指定的字符序列(字符串)
语法:
grep [选项] 要查找的字符串 文件路径
选项:
-n :显示行号
-c :统计搜索到多少行
-i :忽略大小写搜索
举例:
find /dev -type c | grep "2$" 查找dev中以2为结尾
find /dev -type c | grep "^2$" 查找dev中以2为开头
-
find :查找文件或目录(递归查找),从硬盘查找,准确性高,性能低
语法:
find 检索路径 [选项] 要查找的文件名称
选项:
-name :按照文件名查找(全匹配),举例:find ./ -name main.c
-iname :按文件名查找,忽略大小写,举例:find ./ -iname MAIN.C
-size :按文件大小查找,举例:find ./ -size +3M 查询当前路径下,所有大于3M的文件,大于3M(+3M),小于3M(-3M),这里1代表512个字节(B),通过“+”和“-”控制大于和小于
-type :按文件类型查找
-
locate :快速查找文件或目录,从数据库查找,准确性低,性能高
该指令是从文件系统的数据库中查找,缺点是新创建的文件没有在数据库中建立索引,用该指令找不到。
语法:
locate [选项] 文件名/目录名
选项:
-c :统计
-i :忽略大小写
注意 :默认情况下updatedb每天更新一次,我们可以手动更新。指令:updatedb
-
which :快速查找指令cp、mv...
格式:
which 指令名称
-
echo :将指定字符串输出到设备上
语法:
echo "输出的字符串"
举例:
echo "yueqian is good" > yueqian.txt 将"yueqian is good"输出到名字对应的文件中
echo "yueqian is good" >> yueqian.txt 将 "yueqian is good"追加到名字对应的文件中
-
|(管道):将前一个指令执行的结果作为后一个指令执行的条件
案例:
对查找指令的结果进一步过滤