XYCOVO CONSOLE KURISU · WEB 渗透 / AI 辅助攻防 ONLINE
#041 · 2023-10-10✓ PASS

Linux 基本命令

Linux 常用命令整理,包括文件操作、权限管理、vim、gcc 编译等,学习过程中的实操备忘。
linux学习笔记AUTHOR: KURISU

刚开始学 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
← #040 HTML 与 CSS 笔记…#042 C 语言笔记… →