常见的Linux命令
1. 文件和目录操作
`ls`: 列出目录内容。
`cd`: 切换当前工作目录。
`pwd`: 显示当前工作目录的路径。
`mkdir`: 创建新目录。
`rmdir`: 删除空目录。
`rm`: 删除文件或目录(`rm -r`递归删除目录及其内容)。
`cp`: 复制文件或目录。
`mv`: 移动或重命名文件或目录。
`touch`: 创建一个新的空文件或更新文件的时间戳。
`cat`: 显示文件内容。
`more` / `less`: 分页显示文件内容。
`head`: 显示文件的前几行。
`tail`: 显示文件的最后几行。
`find`: 搜索文件和目录。
`chmod`: 修改文件或目录的权限。
`chown`: 改变文件或目录的所有者。
ls
cd
pwd
mkdir
rmdir
rm
cp
mv
touch
cat
more
/ less
head
tail
find
chmod
chown
2. 文件查看和编辑
`nano`: 一个简单的文本编辑器。
`vi` / `vim`: 功能强大的文本编辑器。
`grep`: 在文件中搜索文本模式。
`awk`: 文本处理工具,适用于处理和分析文本数据。
`sed`: 流编辑器,用于文本的查找和替换。
nano
vi
/ vim
grep
awk
sed
3. 系统管理
`sudo`: 以超级用户(root)权限运行命令。
`ps`: 显示当前运行的进程。
`top`: 动态显示系统的运行情况,包括CPU、内存使用情况。
`kill`: 终止进程(`kill -9`强制终止)。
`df`: 显示磁盘空间使用情况。
`du`: 显示目录或文件的磁盘使用情况。
`free`: 显示内存使用情况。
`uptime`: 显示系统的运行时间和负载平均值。
`shutdown`: 关闭或重启系统。
sudo
ps
top
kill
df
du
free
4. 网络操作
`ping`: 检查网络连接是否正常。
`ifconfig`: 显示或配置网络接口。
`curl`: 命令行工具,用于发送HTTP请求。
`wget`: 用于从网络下载文件。
`ssh`: 通过网络远程登录到另一台计算机。
`scp`: 在本地和远程计算机之间复制文件。
`ftp`: 文件传输协议客户端。
`netstat`: 显示网络连接、路由表和网络接口统计信息。
ping
ifconfig
ssh
scp
wget
5. 软件包管理
`apt-get`: Debian/Ubuntu系统的包管理工具,用于安装、更新、删除软件包。
`yum`: RedHat/CentOS系统的包管理工具,用于管理软件包。
`dnf`: Fedora系统的包管理工具,是`yum`的继任者。
`pacman`: Arch Linux系统的包管理工具。
apt
(适用于基于Debian的系统,例如Ubuntu)
apt update
apt upgrade
apt install
apt remove
apt autoremove
yum
(适用于基于Red Hat的系统,例如CentOS)
yum update
yum install
yum remove
yum search
dnf
(适用于较新版本的基于Red Hat的系统,例如Fedora)
dnf update
dnf install
dnf remove
dnf search
pacman
(适用于Arch Linux)
pacman -Syu
pacman -S
pacman -R
pacman -Ss
6. 压缩与解压
`tar`: 用于创建、解压或查看压缩包(如`tar -czvf`创建一个压缩文件,`tar -xzvf`解压文件)。
`gzip` / `gunzip`: 压缩和解压文件。
`zip` / `unzip`: 用于压缩和解压zip格式的文件。
tar
zip
/ unzip
7. 系统信息
`uname`: 显示系统信息。
`hostname`: 显示或设置系统的主机名。
`whoami`: 显示当前用户的用户名。
`id`: 显示当前用户的ID信息。
`dmesg`: 显示系统引导日志信息。
`lsb_release`: 显示Linux发行版信息。
uname
hostname
whoami
- 描述: 显示当前登录用户的用户名。
- 示例:
whoami # 显示当前用户的用户名
id
dmesg
lsb_release
uptime
- 描述: 显示系统的启动时间、运行时间、当前用户数、平均负载等信息。
- 示例:
uptime # 显示系统的启动时间和平均负载
df
free
top
- 描述: 实时显示系统的任务和进程信息,包括CPU和内存的使用情况。
- 示例:
top # 实时显示系统任务管理器信息
ps
这些命令可以帮助你获取关于Linux系统的各种信息,从基本的系统信息到详细的内存和进程状态。
以下是一些常用的进程管理命令的详细描述和示例:
8. 进程管理
`bg`: 将进程放到后台运行。
`fg`: 将后台进程带到前台运行。
`jobs`: 显示当前用户的作业列表。
bg
fg
jobs
- 描述: 显示当前用户的作业列表,列出所有在当前shell会话中启动的作业,包括后台运行和暂停的作业。
- 示例:
jobs # 列出当前用户的所有作业及其状态
kill
killall
pkill
ps
top
- 描述: 实时显示系统中所有进程的资源使用情况(CPU、内存等),按资源占用排序,方便监控和管理进程。
- 示例:
top # 实时显示系统任务管理器信息
htop
nice
renice
nohup
strace
9. 常用的 VI 编辑器操作命令
VI命令 | 功能 | 区域 |
vi filename | 打开filename文件 | 文本编辑 |
gvim filename | 在另一个窗口打开filename文件 | |
:w | 保存文件 | |
:w vpset.net | 保存至vpset.net 文件 | |
:q | 退出编辑器 | |
:q! | 退出编辑器,且不保存 | |
:wq | 退出编辑器,且保存文件 | |
a | 在当前光标位置的右边添加文本 | 插入文本 |
i | 在当前光标位置的左边添加文本 | |
A | 在当前行的末尾位置添加文本 | |
J | 合并光标所在行及下一行为一行 | |
I | 在当前行的开始处添加文本 | |
O | 在当前行的上面新建一行 | |
o | 在当前行的下面新建一行 | |
r | 替换光标所在处的字符 | 替换 |
R | 替换光标所到之处的字符,直到按下ESC键为止 | |
:s/old/new | 用new替换行中首次出现的old | |
:s/old/new/g | 用new替换行中所有的old | |
:n,m s/old/new/g | 用new替换从n到m行中所有的old | |
:%s/old/new/g | 用new替换当前文件里所有的old | |
h | 向左 | 移动光标 |
j | 向下 | |
k | 向上 | |
l | 向右 | |
空格键 | 向右 | |
Backspace | 向左 | |
Enter | 移动到下一行首 | |
横线- | 移动到上一行首 | |
ctrl+b | 屏幕往"后"移动一页 | |
ctrl+f | 屏幕往"前"移动一页 | |
ctrl+u | 屏幕往"后"移动半页 | |
ctrl+d | 屏幕往"前"移动半页 | |
数字0 | 移到文章的开头(暂不可用) | |
$ | 移动到光标所在行的"行尾" | |
^ | 移动到光标所在行的"行首" | |
w | 光标跳到下个字的开头 | |
e | 光标跳到下个字的字尾 | |
b | 光标回到上个字的开头 | |
#l | 光标移到该行的第#个位置,如:5l,56l | |
x | 每按一次,删除光标所在位置的"后面"一个字符 | 删除文本 |
#x | 例如,「6x」表示删除光标所在位置的"后面"6个字符 | |
X | 大写的X,每按一次,删除光标所在位置的"前面"一个字符 | |
#X | 例如,「20X」表示删除光标所在位置的"前面"20个字符 | |
dd | 删除光标所在行 | |
#dd | 从光标所在行开始删除#行 | |
u | 撤销上一步操作 | 恢复 |
U | 撤销对当前行的所有操作 | |
yw | 将光标所在之处到字尾的字符复制到缓冲区中 | 复制粘贴 |
#yw | 复制#个字到缓冲区 | |
yy | 复制光标所在行到缓冲区 | |
#yy | 例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字 | |
y^ | 复制从光标到行首的内容 | |
y$ | 复制从光标到行尾的内容 | |
p | 将缓冲区内的字符贴到光标所在位置后 | |
P | 将缓冲区内的字符贴到光标所在位置前 | |
n+ | 向下跳转n行 | 跳到指定行 |
n- | 向上跳转n行 | |
nG | 跳到行号为n的行 | |
G | 调至文件的底部 | |
ctrl+g | 列出光标所在行的行号 | |
/vpser | 向光标下搜索vpser字符串 | 搜索 |
?vpser | 向光标上搜索vpser字符串 | |
n | 向下搜索前一个搜索动作 | |
N | 向上搜索前一个搜索动作 | |
:set nu | 显示行号 | 设置行号 |
:set nonu | 取消显示行号 | |