#041 · 2023-10-10✓ PASS
Linux 基本命令
Linux 常用命令整理,包括文件操作、权限管理、vim、gcc 编译等,学习过程中的实操备忘。
刚开始学 Linux 的时候记的命令备忘,都是平时用得最多的,方便随时翻看。
终端基础
快捷键
| 快捷键 | 作用 |
|---|---|
Ctrl+Alt+Enter | 全屏/退出虚拟机 |
Ctrl+Alt+T | 快速呼出终端 |
Ctrl+Shift+= | 放大终端字体 |
Ctrl+- | 缩小终端字体 |
Ctrl+L | 清屏 |
Alt+Tab | 切换任务窗口 |
Ctrl+C | 终止当前命令 |
Ctrl+Alt+F1~F7 | 切换虚拟终端(F7 是图形界面) |
终端提示符
linux@ubuntu:~$
| 部分 | 含义 |
|---|---|
linux | 当前登录用户名 |
@ | 分隔符 |
ubuntu | 机器名称 |
~ | 当前用户的家目录(=/home/用户名) |
$ | 普通用户提示符(# 表示 root 管理员) |
查看当前 shell:
echo $SHELL→/bin/bash
常用技巧
- 上下方向键快速调出历史命令
Tab键自动补全命令和路径man <命令>查看帮助文档,按q退出
文件与目录操作
基本命令
ls # 列出当前目录文件
ls -l # 详细信息(权限、大小、时间等)
ls -a # 显示所有文件,包括隐藏文件
ls -la # 组合使用
ls /home/linux # 查看指定目录
cd xxx # 进入目录
cd .. # 回退到上级目录
cd - # 回到上次所在目录
cd / # 进入系统根目录
cd ~ # 回到家目录(等价于直接 cd)
pwd # 显示当前工作目录的绝对路径
touch a.c # 创建空文件
mkdir mydir # 创建目录
mkdir -p a/b/c # 递归创建多级目录
rm file # 删除文件
rm -r dir # 删除目录(递归)
rm -rf dir # 强制删除(危险!慎用)
rmdir emptydir # 删除空目录
cp file dest # 拷贝文件
cp -r src/ dest/ # 递归拷贝目录
mv old new # 移动/重命名
文件类型与隐藏文件
ls -l 第一列标识文件类型:d=目录,-=普通文件,l=软链接。
以 . 开头的文件是隐藏文件:.xxx 表示隐藏文件,. 表示当前目录,.. 表示上级目录。
查看文件内容
cat file # 输出全部内容
more file # 分页查看(空格翻页)
less file # 支持上下翻页(q 退出)
head -n 5 file # 查看前 5 行
tail -n 5 file # 查看后 5 行
权限管理
chmod 755 file # rwxr-xr-x
chmod u+x file # 所有者加执行权限
chown user file # 修改文件属主
chgrp group file # 修改文件群组
用
sudo临时获取管理员权限执行命令,或用su root切换到 root。
用户与组管理
whoami # 查看当前登录用户
who # 查看所有登录的终端和用户
sudo adduser xxx # 添加用户(交互式)
sudo useradd xxx # 添加用户(无交互)
sudo deluser xxx # 删除用户
sudo userdel xxx
sudo passwd xxx # 修改密码
usermod -d /home/xxx username # 修改用户家目录
usermod -G groupname username # 用户加入组
sudo groupadd xxx # 添加用户组
sudo groupdel xxx # 删除用户组
关联文件:/etc/passwd(用户信息)、/etc/shadow(密码)、/etc/group(用户组)
打包与压缩
# 打包
tar -cvf xxx.tar file/ # 打包
tar -xvf xxx.tar # 解包
tar -xvf xxx.tar -C /path/ # 指定位置解包
# 压缩
zip xxx.zip file # 压缩文件
zip -r xxx.zip dir/ # 压缩目录
unzip xxx.zip # 解压缩
unzip xxx.zip -d /path/ # 指定目录解压缩
# 打包+压缩(最常用)
tar -zcvf xxx.tar.gz file/ # gzip 打包压缩
tar -jcvf xxx.tar.bz2 file/ # bzip2 打包压缩
tar -zxvf xxx.tar.gz # 解压解包 gzip
tar -jxvf xxx.tar.bz2 # 解压解包 bzip2
进程管理
ps -ef # 查看所有进程
ps aux # 另一种格式查看进程
ps -ef | grep a.out # 查找指定进程
kill 2475 # 让 PID 为 2475 的进程退出
kill -9 2745 # 无条件强制终止
killall -9 a.out # 按进程名批量终止
top # 类似任务管理器,实时刷新
# 在 top 运行中:
# M: 按内存占用排序 P: 按 CPU 排序
# T: 按运行时间排序 q: 退出
其他常用命令
uname -a # 查看内核版本
cat /etc/issue # 查看发行版本
shutdown # 关机
shutdown -r # 重启(同 reboot)
halt # 关机断电(同 poweroff)
init 0 # 关机
init 6 # 重启
history # 查看终端历史命令
whereis 程序名 # 查找程序位置
which 程序名 # 查找程序路径
df # 查看磁盘使用情况
du # 查看文件/目录空间占用
clear # 清屏
fdisk # 磁盘维护
C 程序编译流程
touch a.c # 创建源文件
gedit a.c # 用图形编辑器编辑
# 或 vim a.c # 用 vim 编辑
gcc a.c # 编译,生成 a.out
ls -l # 查看 a.out 是否生成
./a.out # 运行可执行程序
mkdir mytest # 创建目录
mv *.c ./mytest # 移动所有源文件到目录
通配符与管道
? # 单字匹配:a? 匹配 ab, ac
* # 模糊匹配:*.c 匹配所有 .c 文件
[] # 条件匹配:[abc].txt 匹配 a.txt, b.txt, c.txt
grep keyword file # 在文件中搜索关键字
wc file # 统计文件行数/字数/字节数
command | command # 管道:将前一个命令的输出传给后一个
command > file # 重定向:输出到文件
command >> file # 追加到文件
网络配置
ifconfig # 查看网络接口
ifconfig eth0 192.168.1.x/24 up # 配置 IP
ping 192.168.1.199 # 检测连通性
# DNS 配置
vi /etc/resolv.conf
# nameserver 8.8.8.8
# 默认网关
route -n # 查看路由表
route add default gw 192.168.1.1
NFS 共享
服务端:
sudo apt-get install nfs*
sudo mkdir /mnt/nfs
sudo chmod 777 /mnt/nfs
sudo gedit /etc/exports
# 添加:/mnt/nfs *(ro,sync,no_subtree_check)
sudo service nfs-kernel-server restart
客户端:
showmount -e 172.16.3.13 # 查看服务端共享
sudo mkdir jsj # 创建本地挂载点
sudo mount 172.16.3.13:/mnt/nfs ./jsj # 挂载
ls ./jsj # 查看共享文件
cp ./jsj/note.txt ~ # 拷贝文件到家目录
sudo umount ./jsj # 断开挂载
VMware Tools 安装
# 1. 在虚拟机选项卡右键 → 安装 VMware Tools
# 2. 回到家目录
cd
# 3. 进入光盘挂载目录
cd /media/xxx/
# 4. 拷贝安装包到家目录
cp VMwareTools-*.tar.gz ~
cd
# 5. 解压
tar -zxvf VMwareTools-*.tar.gz
# 6. 进入解压目录
cd vmware-tools-distrib/
# 7. 执行安装脚本
sudo ./vmware-install.pl
# 8. 一路 yes 回车
# 9. 安装完成后重启
sudo reboot