本博文主要面向的是刚刚接触liunx的同学,简单介绍了liunx中的常见命令,足以满足liunx使用日常需求。如果你是liunx小白,那少侠请留步。
01 命令行的一般格式
命令字 [选项] [参数]
- 快捷键
- ctrl+c 结束正在运行的命令
- alt/esc+. 粘贴上一个命令的参数
- ctrl+l 清空整个屏幕
- ctrl+u 从光标处清空至行首
- ctrl+w 往回删除一个单词
02 linux 常用命令
2.1 路径相关操作(pwd、cd、ls)
- pwd (Print Working Directory) 显示当前所在位置的完整路径
aa@mc:~$ pwd
/home/aa
- cd(Change Directory)切换路径
aa@mc:~$ cd /
aa@mc:/$ pwd
/
aa@mc:/$ cd .. # 返回上一层(父目录)
aa@mc:/$ cd ~ # ~ 表示家文件
- ls(list) 显示当前目录内容
[options]
- -l 显示详细属性
- -h 显示单位
- -d 显示目录本身属性
- -A 显示隐藏目录
- -R 递归显示
aa@mc:/$ ls -ld /
drwxr-xr-x 20 root root 4096 Nov 8 10:59 /
aa@mc:/$ ls -l /
drwxr-xr-x 5 root root 4096 Nov 16 12:21 boot
drwxr-xr-x 2 root root 4096 Jan 1 1970 cdrom
drwxr-xr-x 2 root root 4096 Nov 8 08:35 data
drwxr-xr-x 20 root root 4860 Nov 19 08:26 dev
drwxr-xr-x 111 root root 4096 Nov 19 08:06 etc
aa@mc:/$ ls -lh /etc/passwd
-rw-r--r-- 1 root root 2.0K Nov 8 11:27 /etc/passwd
aa@mc:/$ ls -A ~
Anaconda3-2023.09-0-Linux-x86_64.sh .bashrc clockwork-modelzoo-volta
apt_2.0.2ubuntu0.2_amd64.deb .bashrc.save code
azure-functions .bashrc.swp .config
.bash_history .cache
2.2 文本文件相关操作
2.2.1 创建文本文件或文件夹(mkdir、touch)
- mkdir 创建目录
[options]:
- -p:创建多层文件夹
aa@mc:~$ mkdir -p tmp # -p 递归创建文件夹,习惯加上
aa@mc:~$ ls
azure-functions docker_registry get-pip.py index.html.1
logs mpich-3.3.2.tar.gz tmp
- touch 创建文件
aa@mc:~$ touch dome.py
aa@mc:~$ ls
azure-functions docker_registry get-pip.py index.html.1
logs mpich-3.3.2.tar.gz tmp dome.py
2.2.2 查看文本文件内容(cat、less、head、tail、grep)
- cat 查看文本文件内容(适用于文本内容较少)
aa@mc:/$ cat /etc/lsb-release # 显示系统版本
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
aa@mc:/$ cat /etc/hosts #ip地址映射
127.0.0.1 localhost
127.0.1.1 mc
-n 显示行号
- less 查看文本文件内容(适用于文件内容较多)
回车会显示内容,这是controller.cpp中的内容。方向上下键代表滚动,按 q 退出。
- 查看部分文件内容
# head - n <path> # 默认n=10
mc@aa:~$ head -1 index.html
<!DOCTYPE html>
# tail - n <path> # 默认n=10
mc@aa:~$ tail -1 index.html
<!--STATUS OK-->
- grep在文本文件内容中,过滤包涵指定字符串的行
[options]:
- -v:取反匹配
- -i:忽略大小写
^ [word] 必须以word开头
[word]$ 必须以word结尾
^$ 表示空行
aa@mc:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
aa@mc:~$ grep DISTRIB_RELEASE /etc/lsb-release
DISTRIB_RELEASE=20.04
aa@mc:~$ grep distrib_release /etc/lsb-release
aa@mc:~$ grep -i distrib_release /etc/lsb-release
DISTRIB_RELEASE=20.04
aa@mc:~$ grep -iv distrib_release /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
2.2.3 删除文本文件或目录 rm
[options]:
- -r:递归删除(含目录)
- -f:强制删除
aa@mc:~$ rm index.html
aa@mc:~$ rm -rf tmp
2.2.4 移动文本文件或目录 mv cp
- mv
[options]:
- -r:递归删除(含目录)
- -f:强制删除
aa@mc:~$ mv -r ~/logs /logs
# 重命名
aa@mc:~$ mv /logs /tmps
- cp
[options]:
- -r:递归 复制目录时必须有此项
aa@mc:~$ cp -r ~/logs ~/tmps /logs
# 复制支持多个参数,永远将最后一个参数作为目标,\
# 参数作为源
2.2.4 临时定义系统变量 alias
- alias
- unalias
aa@mc:~$ alias ls="ls --color"
aa@mc:~$ ls ~ # 相当于 ls --color ~
aa@mc:~$ \ls ~ # 临时取消别名
aa@mc:~$ unalias ls
2.3 硬件相关操作
2.3.1 查看系统配置(lscpu、cat /proc/meminfo、ifconfig)
- lscpu 列出cpu处理器信息
- lsblk 查看固态硬盘信息
- 查看内存信息
cat /proc/meminfo
- 网卡
ifconfig etho1 192.168.0.1 # 临时设置ip
# ctrl+c 结束正在运行的命令
2.3.2 挂载/卸载 mount/umount
mount [设备路径] [挂载点目录]
umount [挂载点目录]
挂载允许一个设备,对应一个挂载点目录;
2.4 归档及压缩操作
- 归档:将零散文件整理为一个文件,文件总大小基本不变
- 压缩:按某种算法减小文件所占大小。
常见压缩格式:
压缩格式 | 压缩工具 |
---|---|
.gz(常用) | gzip |
.bz2 | bzip2 |
.xz | xz |
2.4.1 打包命令 tar
tar [选项] /路径/压缩包名字 /源数据 …
注:要写压缩包路径,再写源数据
- 选项
-c:创建
-z、-j、-J:打包为.gz、.bz2、.xz格式压缩包
-f:压缩包名称,必须在所有选项之后
- 示例
aa@mc:~$ tar -zcf dome.tar.gz index.html apt_2.0.2ubuntu0.2_amd64.deb
aa@mc:~$ ls
Clockwork containerd.io_1.4.9-1_amd64.deb
dome.tar.gz ....
2.4.2 解压命令 tar
tar [选项] /路径/压缩包名字 [选项] /释放位置
- 选项3
-t:查看归档文件里有什么
-x:释放归档
-f:指定归档文件位置
-C:指定释放路径
- 示例
aa@mc:~/logs$ tar -tf ~/logs/dome.tar.gz
index.html
apt_2.0.2ubuntu0.2_amd64.deb
aa@mc:~/logs$ tar -xf ~/logs/dome.tar.gz -C ~/logs
aa@mc:~/logs$ ls
apt_2.0.2ubuntu0.2_amd64.deb dome.tar.gz index.html
2.5 重定向与管道操作
2.5.1 重定向:重新定向命令的输出 >
- 命令形式
[有输出内容的命令] > [文件路径] # 覆盖
[有输出内容的命令] >> [文件路径] # 追加
和重定向绝配的命令是echo,echo的作用是自由输出内容。我们可以使用该命令和重定向命令做一个combo。
echo 12345 >> input.txt # 在input.txt末尾追加12345
我们常用echo输出环境变量,然后写入项目的配置文件中。
- 示例
aa@mc:~/logs$ head -3 /etc/passwd > input.txt
aa@mc:~/logs$ cat input.txt
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
hzq@aa:~/logs$ head -2 /etc/hosts >> input.txt
2.5.2 管道 |
- 作用:将前面命令的输出传递给后面命令,该输出会作为后面命令的参数
[命令] | [命令]
- 示例
# 查看/etc/passwd文件的前三行
aa@mc:~$ head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
# 查看/etc/passwd文件的第三行
aa@mc:~$ head -3 /etc/passwd | tail -1
bin:x:2:2:bin:/bin:/usr/sbin/nologin