本文涉及:Linux中文件及目录的相关操作、文件查找、文件权限、统计、过滤、解压缩等相关内容
◆
文件及目录
◆
查看当前所在目录
切换目录
常用参数:
- cd进入用户主目录
- cd .. 进入当前目录的上级目录
- cd /app/logs 进入具体目录
列出当前目录的文件和子目录
- -a 列出所有目录、子目录、文件和隐藏文件
- -R 列出从当前目录开始的所有的子目录、文件并且一层层往下显示
- -t 以修改时间为时间倒序来列出文件、子目录
- -l 以长列表格式显示文件、目录的详细信息(简写方式:ll)
创建目录
删除文件
常用参数:
- -f 强制删除(不询问)
- -r 删除目录
- -rf 强制删除目录(不询问)
创建文件
移动文件目录或重命名文件目录
mv file1 file2 //将file1重命名为file2mv file1 /usr //将file1移动到/usr目录下
拷贝文件
cp file /directory 将file复制到directory目录中
常用参数:
- -r 复制目录
- -i 当目标文件存在,会询问是否覆盖,没有则不询问直接覆盖
跨主机复制
scp 本地文件 远程机器用户@远程机器ip:远程机器文件夹
常用参数:
- -1 强制scp命令使用协议ssh1
- -2 强制scp命令使用协议ssh2
- -4 强制scp命令只使用IPv4寻址
- -6 强制scp命令只使用IPv6寻址
- -B 使用批处理模式(传输过程中不询问传输口令或短语)
- -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
- -p 保留原文件的修改时间,访问时间和访问权限
- -q 不显示传输进度条
- -r 递归复制整个目录
- -v 详细方式显示输出
- -c 以cipher将数据传输进行加密,这个选项将直接传递给ssh
- -F 指定一个替代的ssh配置文件,此参数直接传递给ssh
- -i 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh
- -l 限定用户所能使用的带宽,以Kbit/s为单位
- -o 如果习惯于使用ssh_config(5)中的参数传递方式
- -P 指定数据传输用到的端口号
- -S 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
◆
文件查看
◆
cat
cat fileName //在屏幕上显示文件fileName的所有内容cat > filename //创建文件cat file1 file2 > file //将file1、file2的内容合并到file中
常用参数:
- -n 由 1 开始对所有输出的行数编号
- -b 和 -n 相似,只不过对于空白行不编号
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
浏览文件
常用参数:
- -num 一次显示的行数
- -f 计算行数时,以实际上的行数,而非自动换行过后的行数
- -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
- -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
- -u 不显示下引号
- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
- +num 从第 num 行开始显示
常用操作:
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
浏览文件
常用参数:
- -b <缓冲区大小> 设置缓冲区的大小
- -e 当文件显示结束后,自动离开
- -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
- -g 只标志最后搜索的关键词
- -i 忽略搜索时的大小写
- -m 显示类似more命令的百分比
- -N 显示每行的行号
- -o <文件名> 将less 输出的内容在指定文件中保存起来
- -Q 不使用警告音
- -s 显示连续空行为一行
- -S 行过长时间将超出部分舍弃
- -x <数字> 将"tab"键显示为规定的数字空格
常用操作:
- /字符串:向下搜索"字符串"的功能
- ?字符串:向上搜索"字符串"的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- b 向后翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
查看文件开头
常用参数:
- 默认显示文件前10行
- -c num 显示每个文件的前num 字节内容;如果附加"-"参数(-c -n),则除了每个文件的最后num字节数据外 显示剩余全部内容
- -n num 显示每个文件的前num 行内容;如果附加"-"参数,则除了每个文件的最后num 行外 显示剩余全部内容
查看文件末尾
常用参数:
- 默认显示文件最后10行
- -n num 显示最后num行
- -f 随着文件的更新而刷新,常用于查看不断写入的日志
◆
文件目录权限
◆
Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。
权限的分类:
r 读权限:可以打开文件、目录读取查看;
w 写权限:对文件、目录可以编写更改;
x 执行权限:对文件可执行
先看个实例:
[root@master1 ~]# ll-rw-r--r--. 1 root root 2234 Mar 22 17:30 apollo.yaml-rw-r--r--. 1 root root 360 Aug 31 2018 dashboard-admin.yaml-rw-r--r--. 1 root root 298393600 Dec 21 09:48 data_bak.tar-rwxr-xr-x. 1 root root 207 Nov 23 16:56 docker-secret-rw-r--r--. 1 root root 165 Nov 27 21:35 k8s-join-rw-r--r--. 1 root root 242 Nov 13 20:23 k8s-node-reset-rw-r--r--. 1 root root 2801 Aug 29 2018 kube-flannel.yml-rw-r--r--. 1 root root 4632 Nov 14 16:17 kubernetes-dashboard.yaml-rw-r--r--. 1 root root 199 Dec 28 16:52 ns-pod.yamldrwxrwxr-x. 14 root root 4096 Dec 21 14:59 prometheus-operator-0.26.0
上方每个文件最左侧的10个字符就是此文件的权限相关数据:
- 第一个字符表示文件类型,d为目录 -为普通文件 l为连接 b为可存储的接口设备 c为键盘鼠标等输入设备
- 2、3、4个字符表示所有者权限,5、6、7个字符表示所有者同组用户权限,8、9、10为其他用户权限
- 第二个字符表示所有者读权限,如果有权限则为r,没有权限则为-
- 第三个字符表示所有者写权限,如果有权限则为w,没有权限则为-
- 第四个字符表示所有者执行权限,如果有权限则为x,没有权限则为-
- 第五个字符表示所有者同组用户读权限,如果有权限则为r,没有权限则为-
- 第六个字符表示所有者同组用户写权限,如果有权限则为w,没有权限则为-
- 第七个字符表示所有者同组用户执行权限,如果有权限则为x,没有权限则为-
- 第八个字符表示其他非同组读权限,如果有权限则为r,没有权限则为-
- 第九个字符表示其他非同组写权限,如果有权限则为w,没有权限则为-
- 第十个字符表示其他非同组执行权限,如果有权限则为x,没有权限则为-
修改权限
其中a,b,c各为一个数字,分别表示所有者、所有者同组、及其他用户的权限其中r=4,w=2,x=1
- rwx权限=7
- rw权限=6
- rx权限=5
- r权限=4
- 例如设置file所有人可读可写可执行则使用 chmod 777 file
- 。。。
更改文件的所有者和所有组
chown user:group fileName
常用参数:
◆
查找文件
◆
find
find [查找目录] [查找规则] [查找完后的操作]
查找目录:
查找规则:
- -name 按文件名 (可以使用通配符)
- -iname 按文件名,不区分大小写(可以使用通配符)
- -user 按用户(文件属主)
- -size 按大小
- -mtime 按最后一次修改时间
- -atime 按最后一次访问时间
- -type 按文件类型 f:file d:directory
- -perm 按权限
Locate
常用参数:
- -e 将排除在寻找的范围之外
- -1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案
- -f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。
- -q 安静模式,不会显示任何错误讯息。
- -n 至多显示 n个输出。
- -r 使用正规运算式 做寻找的条件。
- -o 指定资料库存的名称。
- -d 指定资料库的路径
查找二进制文件
常用参数:
- -b 只查找二进制文件。
- -B<目录> 只在设置的目录下查找二进制文件。
- -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -M<目录> 只在设置的目录下查找说明文件。
- -s 只查找原始代码文件。
- -S<目录> 只在设置的目录下查找原始代码文件。
- -u 查找不包含指定类型的文件。
◆
统计过滤
◆
过滤
常用参数:
- -E 开启扩展的正则表达式。
- -i 忽略大小写
- -v 只打印没有匹配的,而匹配的反而不打印。
- -n 显示行号
- -w 被匹配的文本只能是单词,而不能是单词中的某一部分
- -c 显示总共有多少行被匹配到了,如果同时使用-cv选项是显示有多少行没有被匹配到。
- -o 只显示被模式匹配到的字符串。
- --color 将匹配到的内容以颜色高亮显示。
- -A n显示匹配到的字符串所在的行及其后n行
- -B n显示匹配到的字符串所在的行及其前n行
- -C n显示匹配到的字符串所在的行及其前后各n行
统计
常用参数:
- -l 统计多少行
- -w 统计多少个单词
- -c 统计多少个字符
◆解压缩
◆
tar包
- 解压:tar zxvf FileName.tar
- 压缩:tar czvf FileName.tar DirName
gz包
- 解压:gunzip FileName.gz
- 压缩:gzip FileName
tar.gz包
- 解压:tar zxvf FileName.tar.gz
- 压缩:tar zcvf FileName.tar.gz DirName
Z包
- 解压:uncompress FileName.Z
- 压缩:compress FileName
tar.Z包
- 解压:tar Zxvf FileName.tar.Z
- 压缩:tar Zcvf FileName.tar.Z DirName
zip包
- 解压:unzip FileName.zip
- 压缩:zip FileName.zip DirName