Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。
1. Linux的目录结构
etc (etcetera)存放系统配置文件
bin (binaries)存放二进制可执行文件
sbin (super user binaries)存放二进制可执行文件,只有root才能访问
dev (devices)用于存放设备文件
lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
usr (unix software resources)用于存放共享的系统资源
home 存放用户文件的根目录
root 超级用户目录
mnt (mount)系统管理员安装临时文件系统的安装点
boot 存放用于系统引导时使用的各种文件
tmp (temporary)用于存放各种临时文件
var (variable)用于存放运行时需要改变数据的文件
2. 目录操作
2.1 常见操作
# 跳转到自己的主文件夹
cd ~
- 前一个工作目录
~ 当前user所在主文件夹
~kk kk的主文件夹
2.2 查找操作
# 在指定目录下查找指定文件
find / -name 1.txt
# 在指定文件中查找指定内容的行
grep aaa 1.txt
2.3 链接文件
2.3.1 硬链接/实际链接
文件名只与目录有关,而文件内容则与inode有关(必须经过目录记录的文件名来指向到正确的inode号码,才能读取该文件);
hard link是通过文件系统的inode连接来产生新文件名,而不产生新文件(即多个文件名对应同一个inode号码)。
# 建立链接文件
ln t_source.py t_hard.py
红框内为同一inode,说明硬连接产生的t_hard.py与源文件t_source.py 共同指向记录文件内容的inode。
特点:
1. 不能跨文件系统;
2. 不能连接到目录;
2.3.2 符号链接/快捷方式
symbolic link 类似window的快捷方式功能的文件(使用比较广泛),可以快速连接到目标文件。它会创建一个独立的文件,让数据的读取指向它连接的那个文件的文件名。
ln -s t_source.py t_symbolic.py
软连接产生的t_symbolic.py指向源文件t_source.py,而t_source.py则指向数据内容的inode。
t_symbolic.py其内容仅有t_source.py的文件名,所以是11bytes,即11个字符。
删除 t_source.py后,t_symbolic.py 也相应失效。
2.4 案例实践
1. 判断目标文件夹是否为空
if [ `ls /data/z z/test|wc -l` -gt 0 ];then
echo "目录非空"
else
echo "目录为空"
fi
2.指定文件夹下所有文件增加后缀(.orc)
for i in `ls /data/zz/test`
do
mv /data/zz/test/$i /data/zz/test/$i".orc"
done
3. 检测目录是否存在,不存在则创建
function check_create_local_dir {
local path=${1}
if [ ! -d ${path} ]; then
mkdir -p ${path}
fi
}
3. 文件权限操作
3.1 linux文件权限的描述格式
一共10个字符
第1个字符代表这个文件是“目录、文件、链接文件等”
d 目录
- 文件
l 链接文件
b 设备文件中可供存储的接口设备,(硬盘、软盘等)
c 设备文件中的串行端口设备,(键盘、鼠标等)
第2-4个字符代表这个文件的所有者权限
r 4
w 2
x 1
- 0
3.2 ll -al 显示的文件信息
1. 文件的类型与权限
2. 有多少文件名连接到此节点(inode)
3. 文件所有者
4. 文件所属用户组
5. 文件大小(B)
6. 最近修改日期
7. 文件名
3.3 修改文件权限与属性
# 改变文件所属用户组
chgrp group_name aa.txt
# 改变文件所有者
chown -r own_name aa
# 改变文件权限(数字方式 r:4,w:2,x:1,-:0)
chmod 754 aa.txt
-rwxr-xr--
# 改变文件权限(符号方式 u:owner,g:group,o:others,a:all)
chmod u=rwx,go=rx aa.txt
-rwxr-xr-x