Linux常用命令

Linux常用命令

1. 文件相关

  • 查看文件属性

    ls -l 或 ll

    示例

    -rw-------. 1 root root 0 Oct 10 10:27 test.sh
    
  • 文件权限
    r 读(read) w 写(write) x执行(execute)
    rwx 对应421,可缩写为 7
    示例

    r--:4 -w-:2 --x:1 rw-:6 r-x:5 -wx:3 rwx:7
    
  • 顺序属性
    0 d 代表目录 - 代表文件
    1-9 1-3 文件所有者(user) 4-6 同组用户(group) 7-8 其他用户(others)

    示例

    test为目录,所属用户root权限为rwx,用户组、其他用户没有权限。
    d rwx --- ---. 2 root root 4096 Oct 10 12:08 test
    0 123 456 789
    
  • 创建文件

    touch file

    示例

    host-192-168-7-123: # touch a.sh
    host-192-168-7-123: # ll
    total 0
    -rw-------. 1 root root 0 Oct 10 07:19 a.sh
    
  • 创建文件夹
    m 配置权限 p 创建文件夹路径

    mkdir [-mp] dir

    示例

    host-192-168-7-123: # mkdir -m 111 -p d1/d2
    host-192-168-7-123: # cd d1/
    host-192-168-7-123:/d1 # ll
    d--x--x--x. 2 root root 4096 Oct 11 03:09 d2
    
  • 删除文件
    r 递归删除 f 忽略不存在的文件,不会出现告警

    rm [-rf] file

    示例

    host-192-168-7-123: # rm -rf test.sh
    
  • 复制文件
    i 若文件已存在,则先询问 r 递归复制文件目录

    cp [-ir]

    示例

    host-192-168-7-123: # cp test.sh d1/d2/
    host-192-168-7-123: # cd d1/d2/
    host-192-168-7-123:/d1/d2 # ll
    -rwx------. 1 root root 837 Oct 11 03:16 test.sh
    
  • 移动文件
    i 若文件存在,先询问 f 直接覆盖移动

    mv [-fi] source tagetdir

    示例

    host-192-168-7-123: # mv -f test.sh d1/d2/
    host-192-168-7-123: # cd d1/d2/
    host-192-168-7-123:/d1/d2 # ll
    -rwx------. 1 root root 837 Oct 11 03:16 test.sh
    
  • 改变文件属主(user) change owner
    -R 改变文件夹下所有文件的属主

    chown [-R] 属主名 文件名

    示例

    host-192-168-7-123: # ll
    -rw-------. 1 root root 0 Oct 10 13:05 test.sh
    host-192-168-7-123: # chown yc test.sh
    host-192-168-7-123: # ll
    -rw-------. 1 yc root 0 Oct 10 13:05 test.sh
    
  • 改变文件属组(group) change group
    -R 改变文件夹下所有文件的属组

    chgrp [-R] 属组名 文件名

    示例

    host-192-168-7-123: # ll
    -rw-------. 1 root root 0 Oct 10 13:05 test.sh
    host-192-168-7-123: # chgrp ycg test.sh
    host-192-168-7-123: # ll
    -rw-------. 1 root ycg 0 Oct 10 13:05 test.sh
    
  • 改变文件权限 change mode
    -R 改变文件夹下所有文件的权限

    chmod [-R] 属主名 文件名

    示例

    1. 指定属名(较麻烦) chmod u=rwx,g=r,o=x, file
    host-192-168-7-123: # ll
    -rw-------. 1 root root 0 Oct 10 13:15 test.sh
    host-192-168-7-123: # chmod u=rwx,g=r,o=x test.sh
    host-192-168-7-123: # ll
    -rwxr----x. 1 root root 0 Oct 10 13:15 test.sh
    
    2. 使用数字(较简单)
    添加权限 + chmod +666 file
    host-192-168-7-123: # ll
    ---x--x--x. 1 root root 0 Oct 10 13:18 test.sh
    host-192-168-7-123: # chmod +666 test.sh
    host-192-168-7-123: # ll
    -rwxrwxrwx. 1 root root 0 Oct 10 13:18 test.sh
    
    移除权限 - chmod -333 file
    host-192-168-7-123: # ll
    -rwxrwxrwx. 1 root root 0 Oct 10 13:18 test.sh
    host-192-168-7-123: # chmod -333 test.sh
    host-192-168-7-123: # ll
    -r--r--r--. 1 root root 0 Oct 10 13:18 test.sh
    
    指定权限 = chmod =111 file
    host-192-168-7-123: # ll
    -r--r--r--. 1 root root 0 Oct 10 13:18 test.sh
    host-192-168-7-123: # chmod =111 test.sh
    host-192-168-7-123: # ll
    ---x--x--x. 1 root root 0 Oct 10 13:18 test.sh
    
  • 查看文件内容
    cat 由第一行开始显示文件内容
    -a: 列出一些特殊字符 -n: 列出行号,包括空白行

    cat [-an] resource
    用来查看内容不多的文件

    less 一页一页的显示文件内容

    less resource
    用来查看文件内容较多,但不会变化的文件

    head 只看头几行
    -n: 显示几行

    head [-n] resource

    tail 只看尾巴几行
    -n: 显示几行 -f: 持续更新显示内容,按Ctrl + c结束

    tail [-nf] resource
    tail -f xx.log

    更多文件相关知识看这里

2. vim的使用

  • vim与vi的关系
    vim是vi的加强版,优势主要有语法高亮,多级撤销,兼容vi等。有些地方用不了vim,如docker容器

  • vim

    vim resource

    i 切换到 输入模式

    • Home/End 移动光标到行首/行尾
    • PgUp/PgDn 上/下翻页

    ESC 退出输入模式,切换到 命令模式

    • gg 移动到文档第一行
    • G/nG 移动到文档最后一行/移动到第n行
    • u 撤销修改,支持多级撤销

    : 切换到 底线命令模式

    • q 退出呈现,假如修改了文件,则提示
      E37: No write since last change (add ! to override)*
    • q! 强制退出,修改不生效
    • wq 保存并退出
    • set number 显示行号

    搜索替换

    • /word 向光标之下搜索word的字符串
    • ?word 向光标之上搜索word的字符串
    • n 跳转到下一个匹配word的位置
    • N 跳转到上一个匹配word的位置
    • :n1,n2s/word1/word2/g 将n1-n2行之间的word1替换成word2

    更多vim/vi知识看这里

3. 文件查找

  • find | grep xxx
    将当前目录下(包含子目录)文件名包含xxx的文件过滤出来
  • find | xargs grep xxx
    将当前目录下(包括子目录)的文件内容中含有xxx的行过滤出来
  • ll | grep xxx
    将当前目录下文件名包含xxx的文件过滤出来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值