Linux常用命令速查-文件管理

本文涉及: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重命名为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 当遇到有连续两行以上的空白行,就代换为一行的空白行

浏览文件

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 读权限:可以打开文件、目录读取查看; 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,没有权限则为-

修改权限

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  查找不包含指定类型的文件。

统计过滤

过滤

grep 

常用参数:

  • -E 开启扩展的正则表达式。
  • -i 忽略大小写
  • -v 只打印没有匹配的,而匹配的反而不打印。
  • -n 显示行号
  • -w 被匹配的文本只能是单词,而不能是单词中的某一部分
  • -c 显示总共有多少行被匹配到了,如果同时使用-cv选项是显示有多少行没有被匹配到。
  • -o 只显示被模式匹配到的字符串。
  • --color 将匹配到的内容以颜色高亮显示。
  • -A n显示匹配到的字符串所在的行及其后n行
  • -B n显示匹配到的字符串所在的行及其前n行
  • -C n显示匹配到的字符串所在的行及其前后各n行

统计

wc 

常用参数:

  • -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

原文发布于微信公众号 - Java学习录(Javaxuexilu)

原文发表时间:2019-04-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券