Linux Commands

Linux Commands

文件操作

Linux 系统中,文件操作是非常重要的一部分,以下是一些常用的文件操作命令及其作用:

目录操作

  • ls 列出目录内容

    • 作用:显示指定目录下的文件和文件夹列表。
    • 查询指定文件夹下的文件个数ls -A <folder_path> wc -l

    -rwxrwxrwx-表示类型为普通文件,若为d则表示为目录。rwx rwx rwx分别表示文件所有者、组用户以及其它用户对该文件的权限,第一个efterklang为文件所有者,第二个为文件所有者所在的组,1093 表示文件大小(Byte),时间为 last modified time,结尾为 file name

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ╭─ Arch   m/c/U/2/.c/                            0.032s in   bash 󰅐 8:59 PM
    └  ls -l ./
    total 4
    -rwxrwxrwx 1 efterklang efterklang 1093 Dec 20 17:02 LICENSE
    drwxrwxrwx 1 efterklang efterklang 4096 Jun 9 20:50 backdrops
    drwxrwxrwx 1 efterklang efterklang 4096 Apr 26 14:57 colors
    drwxrwxrwx 1 efterklang efterklang 4096 May 31 18:06 config
    drwxrwxrwx 1 efterklang efterklang 4096 May 25 16:57 events
    drwxrwxrwx 1 efterklang efterklang 4096 May 26 10:28 utils
    -rwxrwxrwx 1 efterklang efterklang 516 May 27 12:19 wezterm.lua
  • cd 改变当前目录

    • 作用:切换当前工作目录到指定的路径。
    • cd ~ 切换到用户主目录 cd / 切换到根目录 cd .. 切换到上一级目录 cd - 切换到上次工作目录
    • 现代的 cd 替换命令: zoxide,z
  • pwd 打印工作目录

    • 作用:显示当前工作目录的完整路径。
  • cp 复制文件或目录

    • 作用:将文件或目录从一个位置复制到另一个位置。
  • mv 移动或重命名文件

    • 作用:移动文件或目录到新的位置,或者重命名文件或目录。
    • 重命名/移动文件 mv <old_name> <new_name> mv <old_path> <new_path>
    • 将指定文件夹下的所有文件移动到另一个指定的目录mv <source_folder>/* <target_folder>
  • rm 删除文件或目录

  • touch 创建空文件或更新文件时间戳

  • mkdir 创建目录

  • rmdir 删除空目录

权限设置

  • chmod 更改文件或目录权限

  • chown 更改文件或目录的所有者

  • chgrp 更改文件或目录的组

  • cat 连接文件并打印到标准输出

    • 作用:显示文件的内容。
  • more 分页显示文件内容

    • 作用:分页显示文件的内容,便于查看长文件。
  • less 显示文件内容,支持前后翻页

    • 作用:显示文件的内容,支持向前和向后翻页。
  • head 显示文件的开头部分

    • 作用:显示文件的前几行,默认是前 10 行。
    1
    2
    head filename.txt  # 显示文件的前10行
    head -n 20 filename.txt # 显示文件的前20行
  • tail 显示文件的结尾部分

    • 作用:显示文件的最后几行,默认是最后 10 行。
    1
    2
    3
    tail filename.txt  # 显示文件的最后10行
    tail -n 20 filename.txt # 显示文件的最后20行
    tail -f filename.txt # 实时显示文件新增的内容
  • find 搜索文件

    • 作用:在指定目录及其子目录下搜索符合条件的文件。
  • diff 比较文件差异

    • 作用:比较两个文件或目录的差异。
  • ln 创建链接

    • 作用:创建文件或目录的硬链接或符号链接。
  • du 磁盘使用情况

    • 作用:显示文件或目录占用的磁盘空间。
  • df 磁盘空间使用情况

    • 作用:显示文件系统磁盘空间的使用情况。
  • tar 打包压缩或解压文件

    • 作用:创建、查看或解压缩 tar 包。
  • gzip 压缩或解压文件

    • 作用:使用 gzip 程序压缩或解压文件。

nohup 命令可以在退出 shell 后继续运行进程,nohup <command> &
例如 nohup python ./train.py >> train.log 2>&1 &

用户管理

用户登录系统

超级用户的用户名为 root,密码在安装系统时已设定,当用户正确地输入用户名和口令后,就能合法地进入系统。
普通用户在建立了普通用户账号以后就可以进行登录了。

  • su root 临时切换到 root 用户,需要输入密码,切换后环境变量不变,取得 root 的部分权限,且只能使用当前用户 path 路径中的命令,不能使用 root 用户 path 路径中的独有命令
  • su - root 切换为 root 用户,需要输入密码,切换后环境变量改变,几乎可以不受限制的做任何事
  • su - <user_name> 切换用户
  • su - username -c <command>:Execute a command as another user
  • exit/logout 退出当前用户

账号管理

Linux 用户对账号的管理分为:增、删、改三个方面:

增加新用户
useradd

删除用户
删除用户账号就是要将/etc/passwd 等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用 userdel 命令,其格式如下:

userdel <option> <user_name>
常用的选项是-r,它的作用是把用户的主目录一起删除。

修改用户

使用 usermod 命令,其格式如下:
usermod <option> <user_name>

常用的选项包括-c,-d,-m,-g,-G,-s,-u 以及-o 等,这些选项的意义与 useradd 命令中的选项一样,可以为用户指定新的资源值。
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录 Shell 等。

用户权限管理

命令chmod 用于修改文件的访问权限

  • format: chmod <mode> <file>
  • mode:
    • user: u(user,所有者),g(group,同组用户),o(other,其它用户),a(all)
    • operation: +(添加权限)、-(移除权限)或 =(设置权限)
    • permission: r(read)、w(write)、x(execute)、s(setuid,设置用户 ID)、t(setgid,设置组 ID)

Regular Expression

grep 是一种强大的文本搜索工具,它允许用户在文件中搜索匹配特定模式的行。这里有一些 grep 的使用案例:
RIPgrep GUIDE

参数

  • i: 忽略大小写 ignore
  • n: 显示行号 number
  • v: 反向匹配 invert
  • r/R: 递归搜索,即在目录及其所有子目录中搜索文件(ps:ripgrep 默认支持递归搜索) recursive
    • R 支持软链接的解引用
  1. 基本搜索:在文件中搜索特定的文本。例如,如果你想在文件 example.txt 中搜索单词 “hello”,你可以使用以下命令:

    1
    grep "hello" example.txt
  2. 递归搜索grep 可以递归地在目录中搜索文件。例如,如果你想在当前目录及其所有子目录中搜索单词 “hello”,你可以使用 -r-R 选项:

    1
    grep -r "hello" .
  3. 反向匹配grep 还可以找出不匹配特定模式的行。例如,以下命令会显示 example.txt 中所有不包含 “hello” 的行:

    1
    grep -v "hello" example.txt
  4. 指定开头/结尾

    1
    2
    grep "^May" dairy.md # 匹配以May开头的行
    grep "hello$" example.txt # 匹配以hello结尾的行

快捷键

1
2
3
4
5
6
7
8
9
Ctrl + L clear
Ctrl + K 删除从光标位置到行尾的内容
Ctrl + U 删除从光标位置到行首的内容
Ctrl + A:移动光标到行首
Ctrl + E:移动光标到行尾
Ctrl + R:搜索历史命令
Ctrl + C:终止进程
Ctrl + D:退出 shell
Tab:自动补全

插件

  • bat
    A cat clone with syntax highlighting and Git integration.
  • bottom
    Yet another cross-platform graphical process/system monitor.
  • btop
    A monitor of resources
  • curlie
    The power of curl, the ease of use of httpie.
  • fd
    A simple, fast and user-friendly alternative to find.
  • fzf
    🌸 A command-line fuzzy finder
  • gping
    Ping, but with a graph
  • zoxide
    A smarter cd command. Supports all major shells.
  • ripgrep
    ripgrep recursively searches directories for a regex pattern while respecting your gitignore
  • [tldr]

Terminal & Shell

Terminal:Wezterm,Alacritty,Kitty,Windows Terminal etc.
Shell:Nushell,Fish,Powershell,zsh etc.

Author

Efterklang

Posted on

2024-03-10

Updated on

2024-09-18

Licensed under

Comments