Ubuntu系统版本:Ubuntu 16.04.7 LTS
Ubuntu更换国内源:sudo gedit /etc/apt/sources.list
deb http://cz.archive.ubuntu.com/ubuntu focal main
PS:Ubuntu换源不是随便找个源换上就有用的,先要用指令 lsb_release -a 查看系统代码,然后找到适配自己系统的 Codename 的国内源换上才有用!比如上面这个软件源适配的就是 Ubuntu 20.04 focal。
一、快捷键
1.1 命令补全
在 $PATH 设置正确的情况下(一般不乱动都不会有问题),在一串指令的第一个字后单按一次 Tab 时可进行“命令补全”。如果没有进行补全则说明当前输入不足以指定出唯一的操作命令,此时再追加一次 Tab 就会显示出所有可选命令。
1.2 文件名/目录名补全
在保证对目录拥有可读与执行权限的情况下,在一串指令的第二个字后单按一次 Tab 时则进行当前操作路径下的“文件名补全”。没有补全时的情况与“命令补全”是一样的。该功能只有在具有可读权限的目录下才能正常使用。
1.3 快速切换页面焦点
这个好像没有统一,有的系统是 Win(Ubuntu 20.04) 有的则是 Alt(Ubuntu 16.04、Raspbian) 。先按 Win(Alt) 再按 Tab,且 Tab 可以连续按。选中要切换为焦点的程序后松手就可以了。
1.4 显示(取消显示)隐藏文件
Ctrl + H:在文件目录下使用,功能为显示(取消显示)隐藏文件
1.5 打开与关闭终端
- Ctrl + Alt + T:打开终端(终端的位置在当前用户的主目录下)
- Ctrl + D:关闭终端
1.6 暂停/终止终端动作
这俩还是有区别的,一个只是暂时停下来了,另一个是直接杀死进程。
- Ctrl + Z:暂停终端动作
- Ctrl + C:终止终端动作
1.7 清屏
Ctrl + L:清屏
1.8 指令串操作
- Ctrl + U(K):从光标处向前(后)剪切指令串
- Ctrl + Y:将剪切的指令串粘贴
- Ctrl + A(E):让光标移动到整个指令串的最前(后)面
1.9 显示翻页
Shift + PgUp(PgDn):终端显示向上(下)翻页
二、终端指令
指令记录部分中带有下划线的均为可变参数代称。
2.1 基础操作类
2.1.1 终端清屏
clear:终端清屏,效果等同于快捷键 Ctrl + L。
2.1.2 数据同步
sync:将数据同步写入磁盘。
该指令用于将数据强制立即写入磁盘,一般会在系统关机时自动调用。但如果出现突然断电的情况,系统就会来不及将 buffer 中的数据同步写入到磁盘中,于是就会出现数据丢失。
2.1.3 重启与关机
- shutdown -r now:立即重启
- shutdown -h now:立即关机
2.1.4 使用命令帮助手册
man goal_command:查看目标命令的使用帮助(比 --help详细很多)
使用 man 指令进入到说明界面后,可以看到在界面的左上角和右上角的命令后带有一个被括号括起来的数字。这里贴出相关的表格说明数字含义(加粗部分很重要):
代号 | 代表内容 |
---|---|
1 | 使用者在 shell 环境中可以操作的指令或可执行文件 |
2 | 系统核心可调用的函数与工具等 |
3 | 一些常用的函数(fuction)与函数库(library),大部分为C的函数库(libc) |
4 | 设备文件的说明,通常在 /dev 下的文件 |
5 | 配置文件或者某些文件的格式 |
6 | 游戏(games) |
7 | 惯例与协定等,比如 Linux 文件系统、网络协定、ASC II码等等的说明 |
8 | 系统管理员可用的管理指令 |
9 | 跟 Kernel 有关的文件 |
可以在 man 指令说明界面下的 DESCRIPTION 栏本身对英文的要求并不是很高,养成阅读手册的习惯,多阅读可以在掌握其他命令用法的同时学到很多技术行话:
PS:在有了 man 指令以后其余的指令其实只需要记住一些明显的特征就可以了,比如前几个字母以及实现的功能方向。命令全称可以利用 Tab 的补全功能找到,然后通过 man 来现学现用。不过为了提高平时的工作效率,最好还是记住一些出现频率很高的指令 — 参数组合。
2.1.5 查看命令所属种类
type command_name:查看目标的所属种类(别名?bash内置指令?可执行文件?关键字?)
2.1.6 查找文件
- which command_name:在 PATH 变量中查找目标可执行文件,并回传搜索到的路径
- find -name file_name:当前目录开始查找所有子目录中与指定文件名同名的文件并打印路径
2.1.7 查看指令执行记录
history:调取之前的指令使用记录并显示(储存在用户主目录下的.bash_history文件中,记录的数量由环境变量 HISTSIZE 决定,且更新的时间节点为登出主机的时候)
2.1.8 更新系统环境配置
source envconfig_file_name:将环境配置文件立即读取到当前的 shell 环境中来(修改立即生效)
2.1.9 查看当前工作目录
pwd:查看当前路径。参数 -p 显示确实路径,而非使用链接路径
2.1.10 查看当前网络配置情况
ifconfig:列出已经启动的网卡的所有信息
2.1.11 任务的前后台执行
- 后台执行:在命令后加上 &,如: ./sample_vio 0 &
- 查看后台运行的进程情况:jobs
- 将后台执行的程序 n 放到前台来:fg %n
2.2 文件与目录操作类
如果需要操作的文件名或文件夹名中间存在空格,则需要在其两端加上单引号或双引号防止被系统误识别。
2.2.1 路径跳转
cd:路径跳转指令。不带其他字串时,默认跳转到 /home/user_name 目录下。
cd /:跳转到根目录下
cd ~account_name:直接跳转到指定用户名的主目录下
cd goal_path:跳转到指定路径
2.2.2 文件列表
ls:文件列表指令。参数 -a 列出当前路径下包括隐藏文件在内的全部文件;参数 -l 显示文件的详细信息(含文件的操作权限)。ll 是 ls -al 的别名。
ls dir_name:列出指定文件夹下的所有文件
ls file_name:列出所有包含特定字符或者特定格式的文件,如 sda* 和 *.py
2.2.3 文件删除
rm:文件删除指令。参数 -i 会逐个文件提示是否删除;参数 -f 强制删除;参数 -r 删除目录及目录下的所有文件。
rm file_name:删除当前目录下的指定文件
rm dir_name -r:删除目录及目录下的所有文件
2.2.4 文件移动(重命名)
mv:文件移动(重命名)指令。参数 -i 在尝试覆盖已有文件时进行提示;参数 -f 直接覆盖旧文件;参数 -n 不覆盖任何已存在的文件或目录。
mv old_name new_name:重命名文件(文件夹)
mv file_name dir_name:将当前目录下的指定文件移动到指定文件夹中
2.2.5 文件复制
cp:文件复制指令。参数 -r 拷贝文件夹下的所有文件;参数 -f 强制覆盖目标文件夹下已存在的旧文件;参数 -d 复制时保留链接文件。
cp -r old_file new_file:将当前目录下指定文件夹中的全部文件内容拷贝到另一个文件夹中
cp -d linkfile_name dir_name:拷贝软链接文件
2.2.6 新建目录
mkdir dir_name :新建目录。参数 -p 表示如果目录名称不存在就新建一个。
PS:因为专门删除目录的指令只能删除空目录,个人感觉略显鸡肋因此不收录,实际删除目录都是使用 rm 命令。
2.2.7 查看文件内容
- cat file_name:以文本形式查看文件内容。参数 -n 会给所有的行加上行号;参数 -b 只给有文本的行加上行号。
- less file_name:man 手册就是调取 less 命令来显示所有命令的说明界面的。
2.2.8 新建文件
touch file_name:新建文件
2.2.9 文件/目录压缩与解压
- tar -xvf file_name.tar:tar 解压包(可以和后面两类共用解包指令,可以自动根据压缩包类型补完解包参数)
tar -cvf file_name.tar dir_name:tar 打包 - tar -zcvf file_name.tar.gz dir_name:tar.gz 和 tgz 打包
- tar -jcvf file_name.tar.bz2 dir_name:tar.bz2 打包
- gzip -d file_name.gz:gz 解压包
gzip file_name:gz 打包(不支持对整个目录打包,只能对目录下的文件单独打包) - unzip file_name.zip:zip 解压包(如果中文出现乱码则加入参数 -O GBK)
zip file_name.zip dir_name:zip 打包 - rar x file_name.rar:rar 解压包
rar a file_name.rar dir_name:rar 打包 - xz -d file_name:xz 解压包
xz -z file_name:xz 打包
PS:rar 并非是 Ubuntu 系统中内置,需要手动安装软件包。如果使用指令提示没有可安装的包,可以尝试更换其他的国内源再获取。
2.2.10 修改文件权限与所属用户
- chmod rwx_code file_name:修改文件的读-写-执行权限(权值对应4-2-1,一共三组,分别是所属用户、所属用户组、一般用户)
- chmod u=rwx_code,go=rwx_code file_name:修改所属用户与用户组的文件权限
- chown user_name file_name:修改文件所属用户
- chown .group_name file_name:修改文件所属用户组
- chown -R user_name.group_name dir_name:修改目录下的所有文件的所属用户与用户组
2.2.11 设置符号链接
ln -s dir_name linkfile_name:设置软文件链接(一定要用绝对路径)
2.2.12 查看磁盘分区及容量使用情况
- du file_name(dir_name) -h --max-depth=lay_number:查看单个文件(文件夹)的磁盘容量使用情况,lay_number为限制列出的子目录层数
- df -h:查看所有的文件系统当前的容量使用情况
- lsblk -f:列出系统上的所有磁盘列表以及对应的全域单一识别码UUID(universally unique identifier)
- parted device_name print:列出磁盘的分区表类型和分区信息
- fdisk -l:查看接入系统的设备详情
- fdisk device_name:对指定设备进行分区操作(有操作引导文档)
2.2.13 创建文件系统
mkfs -t vfat device_name:对指定设备进行格式化(即创建文件系统)
2.2.14 设备的挂载与卸载
- mount /dev/device_name mount_point:将设备挂载到指定的挂载点(中文乱码时加参数 -o iocharset=utf8)
- umount mount_point:将挂载点处的设备卸载
2.3 软件包管理类
sudo apt list --installed:列出所有已安装的软件包
2.3.1 安装与卸载
- sudo dpkg -i package_name:手动安装软件包
- sudo apt purge package_name:移除软件包及配置文件
- sudo apt --fix-broken install:清理掉安装或者卸载不完全的软件包(完全安装或完全卸载)
- sudo apt-get autoremove:清理孤立的软件包
2.3.2 更新与清理
- sudo apt-get update:获取软件包更新信息
- sudo apt-get upgrade:软件包更新
- sudo apt-get autoclean:清理已删除软件包的 .deb安装文件
- sudo apt-get clean:删除包缓存中的所有软件包
- sudo dpkg --purge package_name:完全清除一个已安装的软件包
- dpkg -l | grep ^rc | cut -d ’ ’ -f3 | sudo xargs dpkg --purge:清除已经卸载包但仍保留的配置文件
2.3.3 pip类软件包安装、更新与卸载
- python -m pip install --upgrade pip:pip 更新
- pip list --outdated:pip 查看软件包可用更新
- pip install --upgrade package_name:pip 更新指定软件包
- pip install package_name==version_name:pip 安装指定版本的软件包
- pip uninstall package_name:pip 卸载指定软件包
PS:这里还有一部分常用的指令没有展开甚至完全没有记录是因为目前自身对这些指令的运用需求较为有限。随着学习的深入,这些指令的使用频率增加时就会在这里追加一些更加详细的记录。