本文涉及:Linux中文件及目录的相关操作、文件查找、文件权限、统计、过滤、解压缩等相关内容
◆
文件及目录
◆
查看当前所在目录
pwd
切换目录
cd
常用参数:
cd进入用户主目录
cd .. 进入当前目录的上级目录
cd /app/logs 进入具体目录
列出当前目录的文件和子目录
ls
-a 列出所有目录、子目录、文件和隐藏文件
-R 列出从当前目录开始的所有的子目录、文件并且一层层往下显示
-t 以修改时间为时间倒序来列出文件、子目录
-l 以长列表格式显示文件、目录的详细信息(简写方式:ll)
创建目录
mkdir directoryName
删除文件
rm fileName
常用参数:
-f 强制删除(不询问)
-r 删除目录
-rf 强制删除目录(不询问)
创建文件
touch fileName
移动文件目录或重命名文件目录
mv file1 file2 //将file1重命名为file2
mv 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 当遇到有连续两行以上的空白行,就代换为一行的空白行
浏览文件
more fileName
常用参数:
-num 一次显示的行数
-f 计算行数时,以实际上的行数,而非自动换行过后的行数
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
常用操作:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
浏览文件
less fileName
常用参数:
-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]: 向上翻动一页
查看文件开头
head fileName
常用参数:
默认显示文件前10行
-c num 显示每个文件的前num 字节内容;如果附加"-"参数(-c -n),则除了每个文件的最后num字节数据外 显示剩余全部内容
-n num 显示每个文件的前num 行内容;如果附加"-"参数,则除了每个文件的最后num 行外 显示剩余全部内容
查看文件末尾
tail
常用参数:
默认显示文件最后10行
-n num 显示最后num行
-f 随着文件的更新而刷新,常用于查看不断写入的日志
◆
文件目录权限
◆
Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。
权限的分类:
r 读权限:可以打开文件、目录读取查看;
先看个实例:
[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.yaml
drwxrwxr-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,没有权限则为-
修改权限
chmod abc file
其中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
常用参数:
-R : 指定目录以及其子目录下的所有文件
◆
查找文件
◆
find
find [查找目录] [查找规则] [查找完后的操作]
查找目录:
.表示当前目录
/usr 路径
查找规则:
-name 按文件名 (可以使用通配符)
-iname 按文件名,不区分大小写(可以使用通配符)
-user 按用户(文件属主)
-size 按大小
-mtime 按最后一次修改时间
-atime 按最后一次访问时间
-type 按文件类型 f:file d:directory
-perm 按权限
Locate
Locate
常用参数:
-e 将排除在寻找的范围之外
-1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案
-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 n个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定资料库存的名称。
-d 指定资料库的路径
查找二进制文件
whereis
常用参数:
-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