一切皆为文件。
linux文件种类:
文件拓展名:
拓展名只是让我们了解文件可能的用途而已。一个linux文件能被执行,与第一栏的十个属性有关,与文件名无关。
当权限中具有x,代表这个文件具有可以被执行的能力(不代表可以被成功执行)
常用拓展名:
linux的文件系统结构:
Linux目录配置依据FHS标准,规范每个特定的目录下应该放置什么样的数据。
好处:在目录架构不变的前提下发展出开发者想要的独特风格
FHS针对目录树架构仅定义出三层目录:/(根目录), /usr(unix software resource) ,/var(variable),
所有文件都被一个超级大的文件夹(目录direcory)包裹,这个目录叫根目录/根目录下目录介绍
/usr:存放安装的软件
/usr/bin(/bin):用户命令
/usr/sbin(/sbin):系统管理命令
/usr/local(/opt):自定义软件的安装位置
/etc:系统和软件的配置文件
/var:存放可变数据(日志文件)
/run:存放进程数据,关机后销毁
/home:普通用户的个人数据和配置的存放目录
/root:root用户的个人数据和配置的存放目录
/boot:系统启动所需要的文件
/tmp:(缓存)临时文件目录,默认自动删除10天内tmp未使用的文件
/dev:硬件设备的映射目录,用于对硬件设备的操作
详细参考《鸟哥的linux私房菜》P166~P169
目录树:
目录树的起始点为根目录 (/,root)
每一个目录不止能使用本地分区的文件系统,也可以使用网络上的文件系统。
每一个文件在此目录树中的文件名(完整路径)都是独一无二的。
绝对路径和相对路径:
绝对路径从根目录开始的路径
查看绝对路径
pwd
●相对路径中的特殊符号:
. pwd显示当前工作目录
.. 当前目录上一级目录
~ 用户家目录
●隐藏文件通过在文件名加上.实现
cd :切换目录
change directory的缩写
cd [相对路径或绝对路径]
最重要的就是目录的绝对路径与相对路径,还有一些特殊目录的符号。
假设当前用户是root用户:
cd ~redhat
#进入redhat用户的家目录 即/home/redhat
cd ~
#回到自己的家目录
cd
#没有加上任何路径,表示回到自己的家目录
cd ..
#表示回到目前的上层目录
cd -
#表示回到之前的目录
cd /var/spool/mail
#绝对路径的写法
cd ../postfix
#相对路径的写法
pwd:显示当前目录
pwd [-p]
-P:单纯显示出真正的路径,而非使用链接(link)路径
mkdir:建立一个目录
mkdir
-p:创建多级目录
mkdir -p dir/dir1/dir2
rmdir:删除一个空目录
touch:创建文件:
touch
创建文件file和隐藏文件.shadowfile
-a:显示隐藏文件
删除文件:
rm
也可以输入y或n。如果不输入,文件不会被删除。(删除操作默认不删除)
-f:对于询问默认使用y回答(跳过询问)
rm -f
删除目录
rm -d (删除目录,不询问)
递归删除目录
rm -r
ll:查看目录下所有文件
-a:包括隐藏文件
cp:复制和移动文件或者目录
复制文件
cp 原路径 目的地
复制目录
cp -r 源目录 目的地
移动文件或者目录
mv 原路径 目的地
cp命令默认不保留原始文件的状态信息,mv命令默认保留原始文件的状态信息
shell终端拓展匹配文件名:
shell支持可拓展编程,可以通过一些字符快速批量操作一些文件
*:0个或者是任意多个字符
?:任意一个字符
??:任意两个字符
?a?:三个字符,第二个字符一定是a
[abc]:一个字符,只能是a,b,c中的任意一个
[^abc]:一个字符,不能是abc任意一个
大括号扩展
{m..p}生成mnop序列
大括号拓展常用于文件创建, 其他多用于查询操作或对已存在的文件进行操作
shell变量:
filename=myfile
echo file
echo ${filename} ${}获取变量的值
调用其他命令的输出:
转移字符:
\\:输出字符
\空格:输出字符空格
\n:换行
\t:制表符