[持续更新中]
Linux大神都是怎么记住这么多命令的? - 知乎 (zhihu.com)
基本命令
- pwd:打印当前工作目录的路径
- ls [options] [files_or_dirs]:列出当前目录或指定目录下的文件和子目录
- -a 显示所有文件,包括隐藏文件
- -l 列出文件和目录的详细信息
- -R 递归变量文件和目录
- -i 列出文件的inode号
- cd :改变当前工作目录
- cd 相对路径或绝对路径
- cd .. 返回上一级
- cd - 返回上一次工作目录
- mkdir dirs:创建新的目录
- -p 创建多级目录
- rmdir:删除空的目录
- cp [options] files destination:复制文件或目录
- -r 递归地复制文件夹
- -i 覆盖时交互提示
- mv [options] files destination:移动文件或目录
- rm [options] file:删除文件或目录
- -r 删除文件夹
- -i 提供交互提示
- touch file:创建空文件或者更新已有文件的时间戳
- cat:显示文件内容
- -s 多个空行合并为一个空行显示
- -b 加行号显示
- tac:倒序显示文件内容
- more:分页显示文件内容
- less:分页显示文件内容(功能更多)
- head:显示文件的开头部分
- -n 前n行
- tail:显示文件的结尾部分
- -n 后n行
- history:显示用户在当前登录会话中执行过的命令历史记录
- clear:清空终端屏幕上的内容
- date:显示或设置系统的日期和时间
- df:命令用于显示磁盘空间的使用情况
- du:命令用于显示文件或目录的磁盘使用情况
- ln:创建链接,它可以创建硬链接和符号链接(软链接)
- 默认为硬链接
- -s 创建符号链接(软链接)
文件查找
find
命令:- 语法:find [起始目录] 寻找条件 操作
- -name '字串' 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。
- -iname '字串' 忽略大小写的方式查找
- -type x 查找类型为 x 的文件
- -exec 命令名称 {} 对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。{}表示命令的参数即为所找到的文件;命令的末尾必须以“ \;”结束。
- 寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。
- and:逻辑与,在命令中用 -a 表示,是系统缺省的选项,表示只有当所给的条 件都满足时,寻找条件才算满足
- or:逻辑或,在命令中用 -o 表示。该运算符表示只要所给的条件中有一个满足 时,寻找条件就算满足OPTIONS:描述命令所有的参数或选项
- not:逻辑非,在命令中用 ! 表示。该运算符表示查找不满足所给条件的文件
grep
命令:- 语法:grep [选项] 要查找的内容 查找的位置
- -A 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
- -B 除了显示符合样式的那一行之外,并显示该行之前的内容。
- -C 除了显示符合样式的那一行之外,并显示该行之前后的内容。
- -i 忽略字符大小写的差别。
- -r 查找位置是目录时用
- -n 在显示符合样式的那一行之前,标示出该行的列数编号。
- which命令
- whereis命令
示例:
find . -name "file"
find /home -name "file"
find . -iname "File"
find . -type f
find . -name "file" -a -type l
find . -name "file" -o -type l
find . ! -name "file"
find . ! -name "file" -exec rm {} \;
grep "hello" file
grep -A 4 "hello" file
grep -B 2 "hello" file
grep -C 1 "hello" file
grep -i -C 1 "hello" file
grep -in -C 1 "hello" file
grep -irn -C 1 "hello" .
which ls
which pwd
whereis ls
whereis ls
文件处理
-
cut
命令-
-b:以字节为单位取出固定字符区间
-
-c:以字符 的单位取出固定字符区间
-
-d:后面接分隔字符。与 -f 一起使用
-
-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思
-
-
sed
命令-
-r:使用扩展正则表达式
-
-e:它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项
-
-i:直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改
-
-n:取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行
-
编辑命令 a: 追加 i: 插入 d: 删除 s: 替换 p: 打印
-
-
awk
命令-
语法:awk '{[pattern] action}' {filenames}
-
示例:
#cut sed awk命令举例
cut -c 3,4 file
cut -c 1-3 file
cut -c 3- file
cut -c -3 file
cut -b 5-6 file
cut -d ':' -f 2 file
sed -n '1p' file
sed -n '1,p' file
sed -n '$p' file
sed -n '4,$p' file
sed -i '1d' file
sed -i '1,3d' file
sed -i '$d' file
sed -i '$ahi' file
sed -i '1ahi' file
sed -i '1ihi' file
sed -i 's/old/new/' file
sed -i 's/old/new/g' file
awk '{print $0}' file
awk '{print $1}' file
awk '{print $1,$3}' file
awk '{print NR,$1}' file
awk '{print NF,$1}' file
awk '{print $NF}' file
awk -F ':' '{print $1}' file
awk -F ':' '$1=="linux" {print $1}' file
#把修改后的预览输出到stdout,不改变原本文件
awk -F ':' '$1="example" {print $1}' file
解压压缩文件
gzip和 bzip2都不能对目录进行压缩,一次只能解压一个文件。zip 可以压缩目录,保留源文件。 tar命令主要用于将若干文件或目录合并为一个文件,以便备份和压缩。当然,之后出现tar程序的改进版本,可以实现在合并归档的同时进行压缩。
- gzip gunzip
- 示例:
- gunzip file.gz
- gzip files
- bzip2 bunzip2
- 示例:
- bzip2 file
- bunzip2 file.bz2
- zip unzip
- 示例:
- zip test.zip tes1 test2
- unzip test.zip
- tar [options] tarfile filelist
- -c 创建一个新的归档文件
- -r 追加的方式归档文件
- -x 释放归档文件
- -f 用户指定归档文件的文件名,否则使用默认名称(stdout stdin)
- -t 显示归档文件的内容
- -v 显示归档和释放的过程信息
- -j 由tar生成归档,然后由bzip2压缩
- -z 由tar生成归档,然后由gzip压缩
-
linux@ubuntu:~$ tar –cf myExamples.tar myExamples linux@ubuntu:~$ tar -cjf myExamples.tar.bz2 myExamples linux@ubuntu:~$ tar -czf myExamples.tar.gz myExamples linux@ubuntu:~$ ls -lh myExamples.tar* -rw-r--r-- 1 wdl wdl 9.3M 2007-09-23 00:42 myExamples.tar -rw-r--r-- 1 wdl wdl 8.6M 2007-09-23 00:43 myExamples.tar.bz2 -rw-r--r-- 1 wdl wdl 8.5M 2007-09-23 00:44 myExamples.tar.gz linux@ubuntu~$ tar –tvf myExamples.tar.gz linux@ubuntu:~$ tar –xvf myExamples.tar linux@ubuntu:~$ tar -xvjf myExamples.tar.bz2 linux@ubuntu:~$ tar -xvzf myExamples.tar.gz
进程管理
- ps:用于显示当前运行在系统上的进程列表。
- -a:显示所有用户的进程,而不仅仅是当前用户的进程。
- -u:以用户为主的格式显示进程信息,包括用户、进程ID(PID)、CPU占用率等
- -x:显示没有控制终端的进程。
- -e:同-a,显示所有进程,而不仅仅是与当前用户相关的进程。
- -l:以长格式显示进程信息,包括更多的详细信息如STIME(启动时间)、TTY、CMD等
- -ef:显示所有进程的全面信息。
- 常见用法 -aux 或 -elf
- pstree:以树状图显示进程的层次结构。
- top:实时显示系统的性能信息,包括CPU、内存等使用情况。
- kill:用于终止运行中的进程。可以使用进程ID(PID)或进程名称。
- 语法:kill [-signal] PID
- signal是信号 PID是进程号
示例
ps aux
ps -elf
pstree
top
kil -l
kill -9 3791
用户管理
- adduser:用于创建新用户账户。
- 语法:adduser <username>
- passwd:用于设置用户密码。
- [] 表示可选项
- passwd [-k] [-l] [u] [-f] [-d] [-S] username
- usermod:用于修改用户账户的属性,例如修改用户的组、主目录等。
- deluser:用于删除用户账户。
- 语法:deluser <username>
- --remove-home 删除用户的同时删除用户的工作目录
示例:
sudo adduser user1
id user1
sudo passwd user1
sudo usermod -G user1 user2
sudo usermod -d /home/newdir -m user2
sudo usermod -d /home/newdir -m -l newuser user2
sudo deluser --remove-home user1