常用入门级 Linux 命令学习笔记

136 阅读4分钟

操作文件/目录

  • pwd 显示当前目录

  • ls 列出当前目录的文件或子目录

    • -a 显示所有文件,包括隐藏文件或子目录
    • -l 列出文件的详细信息
    ls -al
    # 执行结果:
    total 9952
    drwxr-xr-x  8 yukun  staff      256 Mar 19 23:42 .
    drwx------@ 6 yukun  staff      192 Mar 19 19:51 ..
    -rw-r--r--@ 1 yukun  staff     6148 Mar 19 23:44 .DS_Store
    -rw-r--r--@ 1 yukun  staff  2366653 Mar 18 17:08 a.png
    -rw-r--r--@ 1 yukun  staff  2366653 Mar 19 23:35 b.png
    -rw-r--r--@ 1 yukun  staff   351678 Mar 18 17:09 c.png
    drwxr-xr-x  5 yukun  staff      160 Mar 20 14:18 old
    drwxr-xr-x  5 yukun  staff      160 Mar 19 23:40 test
    
  • cd 更改工作目录

    • . 当前工作目录
    • .. 上一级目录
    • ~ home目录,相当于/Users/(你的username)
    # 切换到abc目录
    cd abc
    # 如果不存在abc, 提示cd: no such file or directory: abc
    
    # 切换到home目录
    cd ~
    
    # 返回上一级目录
    cd ..
    
  • mkdir 在当前位置创建一个新的空目录

    # 在当前目录创建一个新的空目录
    mkdir folder
    
    # 在当前目录创建多个新目录
    mkdir folder1 folder2
    
    # 可以相对于当前目录创建新目录
    mkdir -p ./folder1/new
    
  • rmdir 删除一个空目录

    rmdir folder
    # 如果删除的目录非空会提示: rmdir: folder: Directory not empty
    
  • touch 现在多用于创建新文件,也可用于修改文件或者目录的时间属性

    # 创建一个空白的config file
    touch config_file.json
    
  • cat 现在多用于在控制台输出文件内容,也可用于拼接或覆写文件

    # 在控制台输出index.html的内容(纯文本)
    cat index.html
    
    # 用a的内容覆盖b
    cat a.png > b.png
    
    # 清空b的内容
    cat /dev/null > b.png
    
    # 将config.txt追加到index.html的尾部
    cat config.txt >> index.html
    
  • echo 打印输出字符串,现在多用于先文件末尾追加字符串配置

    # 将一行配置字符串追加到home目录下.zshrc文件的末尾
    echo 'export ANDROID_HOME=/Users/$USER/Library/Android/sdk' >> ~/.zshrc
    
  • cp 复制文件或目录

    # 复制a到b,会覆盖b的内容
    # 相当于 cat a.png > b.png
    cp a.png b.png
    
    # 复制目录时需要用-r,目标目录不存在会创建
    cp -r folder dirctor
    
  • mv 用于移动文件或目录,也常用于给文件或目录改名

    # 改名
    mv old new
    
    # 加.隐藏
    mv old .new
    
  • rm 删除一个目录或文件

    # 可以直接使用删除文件
    rm text.txt
    
    # 如果要删除目录需要用-r
    rm -r folder
    
    # 强行删除当前目录下的所有文件及目录
    rm -rf *
    

用户与权限操作

Linux 文件基本属性

Linux 中访问文件的身份有四种:

  1. 文件所有者 (Owner)
  2. 群组 (Group)
  3. 其他 (Others)
  4. 超级用户 (Root)

Linux 中一个文件的权限有三种:

权限类型字母表示数字表示
读取 (read)r4
写入 (write)w2
执行 (execute)x1

我们用 ls -l 命令执行结果的第一列代表了文件类型和权限信息:

d rwx r-x r-x
- --- --- ---
|  |   |   |      
|  |   |    ------ others权限 = 读取 + 执行 = 5
|  |    ---------- group权限 = 读取 + 执行 = 5
|   -------------- owner权限 = 读取 + 写入 + 执行 = 7     
 ----------------- d -> 目录 | - -> 文件
                
用数字表示该文件的权限就是:755

命令

  • sudo 以系统管理者 (Root) 的身份执行指令,第一次执行会要求输入 user 密码。

    # 以root的身份执行ls
    sudo ls
    
  • chown 更改文件属主

    # -R:递归更改文件属组
    chown [–R] 属主名 文件名
    chown [-R] 属主名:属组名 文件名
    
  • chmod 更改文件权限

    # 更改index.html文件的权限为rwxr-x---
    chomd 750 index.html
    
  • su 切换用户

  • whoami 查看当前用户

其他

  • 端口

    # 查看监听3000端口的进程
    lsof -i :3000
    
    # 终止PID为123的进程
    kill -9 123
    

Vim 文件编辑

vi/vim 是 Linux 内建的文本编辑工具,其特点在于拥有多种各具特点的编辑模式,但对于新手来说很多操作都比较反直觉。

目前来看,我仅在解决 git conflicts 的时候会用到内建vim,但是还是在这里简单介绍一下它的常见使用方法。

# 打开一个文本文件,如果不存在则会创建
vim index.html

normal.png

vim 默认用普通命令模式打开新文件。该模式下输入字符会被当作命令:

  • i(insert) / a(append) / o → 进入插入模式
  • dd → 删除当前行
  • x → 删除光标处字符
  • u → 撤销
  • : → 进入底线命令模式

insert.png

进入插入模式之后,左下角会有—— INSERT ——标志。这个模式就是我们最常见的文本编辑模式,可以直接进行字符修改。修改完成后按 esc 键返回普通命令模式

base_line.png

普通命令模式中键入:进入底线命令模式,这个模式常用于指定文件的保存方式:

  • q → 如果没有对文件改动,可以直接退出
  • wq → 写入修改然后退出
  • q! → 放弃修改然后退出

参考资料

  1. 一份前端够用的 Linux 命令
  2. Linux / Mac 常用命令,看这一篇就够了!
  3. Linux 命令大全
  4. Linux 文件基本属性
  5. Linux vi/vim