File
文件
文件查找
find,grep
文件大小
du -h --max-depth=1查看当前目录下各文件和文件夹的大小
文件管理
-
rsync高效复制Bash 1 2
rsync -avhP /source/dir /destination/dir rsync -avhP /source/dir user@remote:/destination/dir-a归档模式,保留文件属性-v详细输出-h以人类可读的格式显示文件大小-P显示进度条,并支持断点续传
-
ls查看-
ls -a列出全部文件(含隐藏) -
ls -l文件类型[所属人权限][所属组权限][其他人权限] 硬连接数量 所属人 所属组 文件大小 修改 日期和时间 文件名文件类型:-普通文件d目录l软链接b块设备c字符设备s套接字p管道
-
-
cd切换目录 -
pwd输出当前目录 -
mkdir创建目录mkdir -m 711 dir创建目录,权限为711mkdir -p dir/dir/dir创建多层目录
-
cp复制文件cp -r dir/ dir.bak/递归复制cp -p file file.bak同时复制文件属性
-
mv移动文件- 如果移动目录,建议使用
cp,确认后再删除 mv dirOld/ dirNew/,从旧的目录移动到新的目录
- 如果移动目录,建议使用
-
rm删除文件rm -r dir/递归删除rm -f dir/忽略不存在的文件
文件权限
每个文件有三种粒度
| 所属人 | 所属组 | 其他人 |
|---|---|---|
u |
g |
o |
各自有三种权限
| 读 | 写 | 行 |
|---|---|---|
r 4 |
w 2 |
x 1 |
修改
-
chown修改所属人uchmod jiao:jiao file修改所属人和所属组
-
chgrp修改所属组g -
chmod修改权限-
chmod +x,给 全部人a添加执行权限,等价于chmod a+x -
chmod +r,给 全部人a添加读权限,等价于chmod a+r -
chmod +w,给 所属人u添加写权限,若想给全部人,chmod a+w
-
chmod u+x,给 所属人 添加执行权限 -
chmod g+r,给 所属组 添加读权限 -
chmod o+w,给 其他人 添加写权限
-
chmod 777,给 全部人 添加全部权限 -
chmod 755,给 所属人 添加全部权限,给 所属组 和 其他人 添加读和执行权限 -
chmod -R,递归修改
-
文件解压缩
tar,zip
-
tar -zxvf *.tar.gz-z解压缩(gz)(有时可以省略)-x解包(tar)-v显示详细的解压过程信息-f指定名称-C指定路径
-
tar -zcvf *.tar.gz *-c打包(tar)
文件备份
dump,rsync
SMB 服务端
samba 是 SMB 的 linux 实现
-
下载
sudo apt install samba -
配置共享目录
chmod 777 /home/user/Public/ -R -
添加samba用户
sudo smbpasswd -a 用户名 -
提示输入密码 x2
-
配置samba
sudo vim /etc/samba/smb.confBash 1 2 3
[share name] # 共享名 path = /home/user/Public/# 共享路径 writable = yes # 可写 -
重启samba
sudo samba restart- 可能还需要重启一下电脑
-
开启端口
sudo ufw allow 445
SMB 客户端
-
下载
sudo apt install cifs-utils -
添加共享条目
sudo vim /etc/fstabText Only 1//ip/public /mnt/public cifs credentials=/root/smb.cred,uid=1000,gid=1000,iocharset=utf8 0 0//ip/public网络路径/mnt/public本地挂载路径cifs文件系统类型credentials=/root/smb.cred指定了一个包含登录凭据(用户名和密码)的文件uid=1000,gid=1000用户和组 ID,确保挂载后的文件权限正确iocharset=utf8设置字符集为 UTF-8,以支持中文等非 ASCII 字符0 0不要进行 dump 备份,启动时不需要检查
-
创建登陆凭据
sudo vim /root/smb.credText Only 1 2
username=admin password=admin -
修改凭据权限
sudo chmod 600 /root/smb.cred -
重启验证
NFS 服务端
-
下载
sudo apt install nfs-kernel-server -
添加共享目录
-
sudo mkdir -p /mnt/nfs -
sudo vim /etc/exportsText Only 1/mnt/nfs *(rw,async,no_subtree_check,all_squash,insecure)服务端不要自己添加文件,客户端无法访问
此配置下,所有用户(nobody)都可以访问共享目录
rw读写权限async异步写入no_subtree_check禁止子目录检查all_squash所有用户都映射为 nobody 用户insecure允许非特权端口访问 -
sudo chown nobody:nogroup /mnt/nfs -R -
sudo chmod 700 /mnt/nfs -R
-
-
重启nfs
sudo systemctl restart nfs-kernel-server
NFS 客户端
-
下载
sudo apt install nfs-commonText Only 1 2
service rpcbind start service nfs-common start -
挂载
sudo mount 10.0.0.15:/mnt/nfs /mnt/nfs -
持久化
Bash 110.0.0.15:/mnt/nfs /mnt/nfs nfs nfsvers=4.1,noresvport 0 0 -
强行卸载
Bash 1sudo umount -f -l /mnt/nfs -
测试
Bash 1 2 3 4 5 6
sudo docker run --rm -it --privileged ubuntu:latest bash -c " export DEBIAN_FRONTEND=noninteractive && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && apt update && apt install -y nfs-common && mkdir -p /mnt/nfs && mount -t nfs 10.0.0.15:/mnt/nfs /mnt/nfs && ls -la /mnt/nfs"