From 93aec810b3afb595138649b35b652ee19d098da6 Mon Sep 17 00:00:00 2001 From: FNS Service Date: Tue, 21 Apr 2026 20:22:51 +0800 Subject: [PATCH] Update from Sync Service --- Linux/常用命令.md | 585 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 408 insertions(+), 177 deletions(-) diff --git a/Linux/常用命令.md b/Linux/常用命令.md index 38c3ea6..24aa99e 100755 --- a/Linux/常用命令.md +++ b/Linux/常用命令.md @@ -1,182 +1,413 @@ -## 下载内容 +# Linux 常用命令 -1. **sudo apt-get insall ……** -2. **sudo apt-get undate** -3. **sudo apt-get upgrade** -4. **sudo apt-get -f install** +> 日常运维中最常用的 Linux 命令汇总 -## 删除命令 +--- -1. **rm 文件** -2. **rm -r 文件夹** +## 📦 软件包管理 (apt) -## 移动命令 +```bash +# 更新软件源 +sudo apt-get update -1. **cp 文件 最终路径** -2. **cp -r 文件夹 最终路径 (这样可以把一个文件夹的所有文件全部移到最终路径)** - > -**apt-get:** -## debian系系统的软件包管理程序(其图形化前端就是大名鼎鼎的新立得了),会自动帮你搞定依赖关系 -## 最常用参数: -## update        —-与你的软件源(在/etc/apt/sources.list中列出)更新软件包列表,换源后需要执行 -## upgrade        —-根据update得到的源软件库与本地已经安装的对比,(如果需要升级就)全部升级 -## install        —-安装软件包(可以使用tab补全软件包的名字,比较方便) -## remove        —-卸载软件包 -## purge        —-卸载软件包,同时删除该软件的配置文件 -## source        —-从源里下载软件包的源码到当前目录(执行此命令的目录)并解压(除非指定–download-only参数) -## 该地址由/etc/apt/sources.list中的 deb-src 行指定 -## check        —-用来(自动)修复(已装)软件包之间的依赖关系 -## clean        —-清除/var/cache/apt/archives/包括其子目录partial/下的所有软件包缓存 -## autoclean    —-比clean常用,我的理解是删除低版本的缓存而保留高版本的(或者包括非当前源里的软件包?) -**aptitude:** -## 此为PT同学补充,他的说法是aptitude比apt-get少个横线,tab补全比较容易(=.=)~大概神牛都比较懒吧 -## 不得不提下蛋蛋童鞋以前说过的ubuntu彩蛋:) <仅限于UBUNTU 8.04> -## man apt        —-最后会看到 “本apt有着超级牛力” or “this APT has a super-cow power” -## man aptitude    —-会看到 “这个aptitude没有超级牛力” -## 看看aptitude的参数,你就会明白为什么aptitude会标称”高级软件包管理程序”了 -## 最常用参数: -## search        —-在(你的源的)所有软件包列表中搜索该软件,search的表达式可以很复杂,具体看man -## 其余常用参数同apt-get -**cat:** -## 把(一个或多个)文件内容(连接)显示到标准输出 -## 当文本文件很小,而且你只是想看下,并不打算用gedit或者vim之类编辑器编辑的时候,可以cat一下,我是用来配合grep使用 -**cd:** -## 切换当前工作目录 -## 不同于其他命令,这是一个shell内置命令,所以没有手册页可看…够基础,所以才会出现在本篇文章中(=.=)郁闷 -## 最常用参数: -## .        —-切换到当前目录(貌似没有什么意义)(.这个目录可以通过ls -a看到) -## ..        —-切换到上层目录 -## ~        —-回到家目录(/home/你的登录名/) -**chmod****:** -## 改变文件的权限位 -## linux文件系统的权限位有两种表示方法,要是详细说下,非得累死老鼠不可=.=,所以只说8进制数表示:) -## 简要介绍下:ls -l可以显示出文件的权限,比如(-rwxr-xr–),代表了三种用户的权限 -## 第一个rwx,代表文件所有者的权限,即(读,写,执行),用二进制表示为111,代表八进制中的4+2+1=7 -## 第二个r-x,代表文件所有者同一用户组其他用户的权限,即(读, ,执行),用二进制表示为101,代表八进制中的5=4+0+1 -## 第三个r–,代表其他用户的权限,即(读, , ),二进制表示为100,代表八进制的4=4+0+0 -## 所以这个文件的权限位为754 -## 这也就是chmod的用法,例如chmod 751 myfile #将该文件权限设定为rwxr-x–x -## 最常用参数: -## -v        —-列出当前正在执行的步骤 -## -R        —-递归式,即改变非空目录下的一切为指定权限 -**cp****:** -## 拷贝文件和目录 -## 最常用参数: -## -b        —-为每个已经存在的目的文件作个备份 -## -d        —-遇到软链接时不拷贝软链接所指向的文件;拷贝时保留links属性(链接数) -## -p        —-保留文件的访问权限,所有者,和时间戳 -## -R和-r    —-递归式拷贝(cp过程遇到非空目录才有效),即拷贝目录,子目录,子目录的子目录….. -## -a        —-作用同-dpR -## -s        —-并不真的做拷贝,而只是为每个文件作软链接(符号链接) -## -u        —-同下面 mv 的-u参数 -**head, tail** -## 就像这两个名字,一个显示文件头部,一个显示尾部 -## 最常用参数: -## -n        —-指定输出的(头部或尾部)行数, 当没有此参数时,默认显示10行 -**ifconfig****:** -## 配置网卡 -## 最常用参数: -## 没有参数        —-列出当前活动网卡的状态 -## -a            —-列出所有网卡的状态 -## interface    —-指定网卡名称比如eth0 -## up            —-唤醒该网卡 -## down        —-关闭该网卡 -## arp,mtu,netmask addr,…等等很多参数 =.= -**ln****:** -## 为文件建立链接 -## linux的链接分为两种:硬链接和软链接,ln默认建立硬链接(hard link),两种的区别请自己搜索:) -## 最常用参数: -## -s        —-建立软链接(符号链接,可以理解为win下的快捷方式) -## -f        —-如果要建立的链接名已经存在,则删除之 -**ls****:** -## 显示目录内容 -## 最常用参数: -## -a        —-显示指定目录所有文件,包括文件名以 . 开头的文件 -## -l        —-显示文件详细信息(包括文件类型,权限,修改时间,访问时间,大小,文件名…) -## -h        —-将文件大小以方便阅读的形式表示出来,配合 -l 参数使用,常有奇效 -**man****:** -## 阅读参考手册of~ -## 题外话:HX说这是linux最最难学的命令,因为man你学好了,就没有什么命令能难倒你了,=.=无敌了 -## man可以查的不仅仅是命令额(当然,因为man是无敌的嘛/ch) -## 最常用参数: -## man 阿拉伯数字 -## 阿拉伯数字1: 可执行程序(一般为用户安装的程序,如果提供了manpages的话)和shell命令 -## 阿拉伯数字2: 系统调用(例如 open调用,socket调用,chmod调用 等等等等),先装manpages-dev先 -## 阿拉伯数字3: 库函数调用(例如 man 3 printf),先装manpages-dev先 -## ……. -## 当你执行man ls 时, 和 man 1 ls结果是一样的,因为ls在man手册中只有一个入口 -## 当你想看chmod调用的手册页时,就要特别指定 man 2 chmod了~~因为chmod不止有一个入口 -## 在man的时候,可以通过j,k上下移动(和vi中类似),可以通过/查询,通过n,N查找下个,上个匹配(和vi类似) -## q退出(也和vi类似….) -## 比较有意思的一点: -## 由于man 本身是个命令,所以,连man都是可以man的 =.= -**mkdir****:** -## 创建一个目录 -## 最常用参数: -## -p        —-如果给出的路径中父目录不存在,则同时创建父目录 -**mount****:** -## 挂载文件系统(可理解为挂载一个分区) -## 最常用参数: -## -t        —-指定文件系统类型,比如iso9660(挂载iso镜像为光盘,相当于虚拟光驱),ntfs,ext3,rfs等等 -## -l        —-列出所有已经挂载的文件系统,支持卷标 -## -a        —-挂载fstab中记录的所有分区 -## -n        —-挂载的时候不写入/etc/mtab -## -o        —-相当常用的一个参数,指定挂载文件系统的”选项”,比如noatime,用来挂载BT专用分区很合适 -**mv****:** -## 移动或者更名文件,取决于目的目录是否为当前目录 -## 最常用参数: -## -b        —-为每个已经存在的目的文件做个备份(防止覆盖) -## -f        —-不提示是否覆盖已经存在的目的文件 -## -i        —-与-f参数相反 -## -u        —-仅当源文件比目的文件更新或者目的文件不存在时候才移动 -## -v        —-显示移动文件的进度(个人总是推荐使用此参数,明白你在做什么) -**ps,top:** -## 列出当前命令的执行状态,ps为静态,top为动态(top时’q’退出) -## ps:这个命令本人更常用些,推荐给你看看=.= -## 最常用参数(ps多用参数集合,而不是单个参数,并且配合grep使用) -## -ef        —-以标准语法列出当前所有进程状态,例如ps -ef | grep eva #列出eva的进程状态 -## aux        —-以BSD语法列出……………………………….. -## -ejH    —-列出进程树 -## -eLf    —-同时列出线程状态 -**rm, rmdir:** -## rm:删除文件或目录,rmdir:删除一个空目录(此命令个人认为没啥用,可以用rm -r替代) -## rm最常用参数: -## -f        —-不提示不存在的文件,直接跳过 -## -i        —-每个删除动作都提示 (=.= 删除多的话岂不是烦死) -## -I        —-删除多个文件(多于3个时)或者递归式删除(对于非空目录)提示一次 -## -r和-R    —-递归式删除该目录下的一切东东 -## -v        —-显示每个文件的删除动作(个人总是推荐使用此参数,明白你在做什么) -**sudo,su:** -## 这大概是装好系统之后第一个要用的命令吧? -## sudo我们主要用来临时提升权限,主要用以管理员(超级用户)的权限来运行命令,当需要修改当前登录用户力所不能及的文件/目录 -## 时需要用sudo,或者su -c,当然sudo和su的作用范围不仅仅如此 -## 可以使用visudo来编辑/etc/sudoers文件来修改sudo更详细的动作(比如记住密码的时间戳长度),请谨慎修改! -**sh:** -## 在终端解释执行 -## 类似于’./’的形式,但PT给了不同点: ‘./’仅仅对当前目录下有执行权限的程序才有效,’sh’则不管这套 -## 想想也是哈, ‘./’仅仅是给出了一个文件的路径(在当前目录下)而已, 但这个文件能不能执行就不好说了 -## 所以用sh总是正确的 -**shutdown:** -## 关闭系统,如果停留在TTY,请改用halt, poweroff等命令 -## 常用参数: -## +m        —-指定关机延迟的分钟 -## -c        —-取消一个等待关机的请求(关掉运行此命令的终端也可:)) -## now        —-立即关机 -## hh:mm    —-手动指定时间(以24小时计) -**tar:** -## 打包/解包 -## 这个tar不多说了吧..到处都是tar.gz,tar.bz2的东东 -## 和ps命令一样,tar一般不用单个参数,而是多个参数的组合,记住参数x是解压(extract),c是创建包(creat)即可 -## 最常用参数: -## -xvf    —-详细列出解包的步骤 -## -cvf    —-详细列出打包的步骤 -## -j        —-用来说明这是个tar.bz2包,例如tar -xjvf myfile.tar.bz2 -## -t        —-列出包中的文件列表 -## —–打包时常追加的参数: -## -r        —-追加到压缩包中 -## -u        —-只把比包中更新的文件追加进去 -## -h        —-不把符号链接添加到包中,而是添加此符号链接指向的文件 -## 附加说明:tar是个太强大的东东,常用的操作也就是打包解包,高级功能还是参阅man =.= -**touch:** -## 改变文件时间戳,默认包括修改时间和创建时间,默认修改为当前时间,默认如果文件不存在就新建(=.=是不是很罗嗦) - > 来自 <[http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html](http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html)> \ No newline at end of file +# 升级所有可升级的软件包 +sudo apt-get upgrade + +# 安装软件包 +sudo apt-get install + +# 卸载软件包(保留配置) +sudo apt-get remove + +# 卸载软件包(删除配置) +sudo apt-get purge + +# 自动修复依赖 +sudo apt-get -f install + +# 清理缓存 +sudo apt-get clean +sudo apt-get autoclean +``` + +> **apt vs aptitude**:aptitude 是 apt 的高级封装,功能更强大,但 apt 更常用。 + +--- + +## 📁 文件操作 + +### ls - 列出目录 + +```bash +ls # 列出当前目录文件 +ls -l # 详细列表 +ls -a # 显示隐藏文件 +ls -lh # 人性化大小 +ls -la # 详细+隐藏 +ls -lt # 按时间排序 +ls -lS # 按大小排序 +``` + +### cd - 切换目录 + +```bash +cd /path # 切换到指定目录 +cd .. # 返回上级目录 +cd ~ # 返回家目录 +cd - # 返回上一次目录 +cd . # 当前目录(无意义) +pwd # 显示当前路径 +``` + +### cp - 复制 + +```bash +cp file /dest/ # 复制文件 +cp -r folder /dest/ # 递归复制目录 +cp -a file /dest/ # 保留属性(权限、时间戳) +cp -p file /dest/ # 保留权限 +cp -u file /dest/ # 仅源更新时复制 +cp -v file /dest/ # 显示进度 +``` + +### mv - 移动/重命名 + +```bash +mv file /dest/ # 移动文件 +mv oldname newname # 重命名 +mv -u file /dest/ # 源更新时才移动 +mv -v file /dest/ # 显示进度 +``` + +### rm - 删除 + +```bash +rm file # 删除文件 +rm -f file # 强制删除 +rm -r folder # 递归删除目录 +rm -rf folder # 强制递归删除(危险!) +rm -v file # 显示删除动作 +``` + +> ⚠️ **警告**:`rm -rf /` 会删除整个系统!使用前务必确认路径。 + +### mkdir - 创建目录 + +```bash +mkdir dir # 创建目录 +mkdir -p path/to/dir # 递归创建(父目录不存在时自动创建) +mkdir -m 755 dir # 指定权限 +``` + +### touch - 创建文件/更新时间戳 + +```bash +touch file # 创建空文件 +touch file1 file2 file3 # 批量创建 +touch -t 202401011200 file # 指定时间 +``` + +--- + +## 🔐 权限管理 + +### chmod - 变更权限 + +```bash +# 8进制方式(最常用) +chmod 755 file # rwxr-xr-x +chmod 644 file # rw-r--r-- +chmod 600 file # rw------- +chmod 700 folder # rwx------ +chmod 777 file # 所有人可读写执行(危险!) + +# 符号方式 +chmod u+x file # 给所有者添加执行权限 +chmod g-w file # 给组移除写权限 +chmod o+r file # 给其他人添加读权限 +chmod a+x file # 所有人添加执行权限 + +# 选项 +chmod -R 755 folder # 递归设置 +chmod -v file # 显示动作 +``` + +### chown - 变更所有者 + +```bash +chown user file # 变更所有者 +chown user:group file # 变更所有者和组 +chown -R user:group folder/ # 递归变更 +``` + +--- + +## 🔍 查看文件 + +### cat - 显示文件内容 + +```bash +cat file # 显示全部内容 +cat -n file # 显示行号 +cat -b file # 非空行显示行号 +tac file # 反向显示(最后一行在前) +``` + +### head/tail - 显示头部/尾部 + +```bash +head file # 默认显示前10行 +head -n 20 file # 显示前20行 +head -c 100 file # 显示前100字节 + +tail file # 默认显示后10行 +tail -n 20 file # 显示后20行 +tail -f file # 实时追踪日志(Ctrl+C 退出) +tail -F file # 追踪重命名后的文件 +``` + +### more/less - 分页查看 + +```bash +more file # 逐页查看(只能向下) +less file # 交互式查看(可上下翻页) + # less 中按键: + # j/k 或 方向键 上下滚动 + # q 退出 + # /keyword 搜索 + # n 跳到下一个匹配 + # g/G 跳到开头/结尾 +``` + +--- + +## 🌐 网络命令 + +### ifconfig - 网卡配置 + +```bash +ifconfig # 显示所有网卡状态 +ifconfig -a # 显示所有网卡(包括未激活) +ifconfig eth0 # 显示指定网卡 +ifconfig eth0 up # 激活网卡 +ifconfig eth0 down # 关闭网卡 +ifconfig eth0 192.168.1.100 # 设置IP(临时) +``` + +### ping - 测试连通性 + +```bash +ping 192.168.1.1 # ping IP +ping www.google.com # ping 域名 +ping -c 4 192.168.1.1 # 只ping 4次 +ping -i 2 192.168.1.1 # 间隔2秒 +``` + +### curl/wget - 下载 + +```bash +curl http://example.com/file.tar.gz -O # 下载文件 +curl -L http://example.com # 跟随重定向 +curl -o output.file http://... # 指定输出名 +curl -I http://example.com # 只查Header + +wget http://example.com/file.tar.gz # 下载文件 +wget -c http://example.com/file # 断点续传 +wget -r http://example.com/ # 递归下载 +``` + +--- + +## ⚙️ 进程管理 + +### ps - 进程快照 + +```bash +ps # 当前终端进程 +ps aux # 所有进程(BSD格式) +ps -ef # 所有进程(标准格式) +ps -ef | grep nginx # 查找nginx进程 +ps -u user # 某用户的进程 +ps --forest # 显示进程树 +``` + +### top/htop - 动态监控 + +```bash +top # 动态监控(按 q 退出) +htop # 更友好的top(需安装) + # top 中按键: + # P 按CPU排序 + # M 按内存排序 + # N 按PID排序 + # k 杀进程 + # r 重设优先级 +``` + +### kill - 终止进程 + +```bash +kill PID # 正常终止 +kill -9 PID # 强制终止 +kill -15 PID # 优雅终止(默认) +kill -l # 查看信号列表 +killall nginx # 按名称终止所有进程 +pkill nginx # 按名称终止(支持正则) +``` + +--- + +## 📦 压缩解压 + +### tar - 打包/解包 + +```bash +# 解压 +tar -xvf file.tar.gz # 解压tar.gz +tar -xvf file.tar.bz2 # 解压tar.bz2 +tar -xvf file.tar.xz # 解压tar.xz +tar -xvf file.tar -C /dest/ # 解压到指定目录 +tar -tzf file.tar.gz # 查看压缩包内容 + +# 打包 +tar -cvf file.tar.gz /path/ # 打包并压缩 +tar -czvf file.tar.gz /path/ # 显示进度 +tar -cvzf file.tar.gz /path/ # gzip压缩 +tar -cvjf file.tar.bz2 /path/ # bzip2压缩 +``` + +### zip/unzip + +```bash +zip -r archive.zip folder/ # 压缩目录 +zip -P password archive.zip file # 带密码 +unzip archive.zip # 解压 +unzip archive.zip -d /dest/ # 解压到目录 +unzip -l archive.zip # 查看内容 +``` + +--- + +## 🔧 系统命令 + +### df/du - 磁盘使用 + +```bash +df -h # 显示磁盘使用情况 +df -i # 显示inode使用 +du -sh folder/ # 目录总大小 +du -h --max-depth=1 # 子目录大小 +du -sh * | sort -h # 按大小排序显示 +``` + +### free - 内存使用 + +```bash +free # 显示内存(字节) +free -h # 人性化显示 +free -m # 以MB显示 +free -s 5 # 每5秒刷新 +``` + +### uname - 系统信息 + +```bash +uname -a # 全部信息 +uname -r # 内核版本 +uname -m # CPU架构 +cat /etc/os-release # 发行版信息 +``` + +### 系统时间 + +```bash +date # 显示当前时间 +date -s "2024-01-01 12:00:00" # 设置时间 +hwclock --systohc # 同步到硬件时钟 +timedatectl # 时间管理(systemd) +``` + +--- + +## 📝 文本处理 + +### grep - 搜索 + +```bash +grep "keyword" file # 搜索文件中含有关键字的行 +grep -i "keyword" file # 忽略大小写 +grep -r "keyword" folder/ # 递归搜索 +grep -n "keyword" file # 显示行号 +grep -v "keyword" file # 显示不匹配的行 +grep -c "keyword" file # 计数 +grep -E "word1|word2" file # 多个关键词(正则) +``` + +### find - 查找文件 + +```bash +find / -name "file.txt" # 按名字查找 +find / -type d -name "folder" # 查找目录 +find / -size +100M # 查找大于100M的文件 +find / -mtime -7 # 查找7天内修改的文件 +find / -user username # 查找某用户的文件 +find / -perm 755 # 按权限查找 +``` + +### sed - 文本替换 + +```bash +sed 's/old/new/g' file # 替换所有 +sed -i 's/old/new/g' file # 直接修改文件 +sed '1,10s/old/new/g' file # 替换1-10行 +sed '/keyword/d' file # 删除匹配行 +``` + +--- + +## 🔗 链接 + +### ln - 创建链接 + +```bash +ln file hardlink # 创建硬链接 +ln -s file symlink # 创建软链接(快捷方式) +ln -sf file newlink # 强制创建 +``` + +--- + +## 💻 其他常用 + +### sudo/su - 切换用户 + +```bash +sudo command # 以root执行 +sudo -u user command # 以指定用户执行 +sudo -i # 切换到root shell +su - username # 切换用户 +``` + +### reboot/shutdown - 重启关机 + +```bash +shutdown -h now # 立即关机 +shutdown -h +10 # 10分钟后关机 +shutdown -c # 取消关机 +reboot # 重启 +poweroff # 关机 +``` + +### history - 命令历史 + +```bash +history # 显示历史命令 +history -c # 清除历史 +!n # 执行第n条命令 +!! # 执行上一条命令 +Ctrl+R # 搜索历史 +``` + +--- + +> 参考:[Ubuntu 新手命令集合](http://www.ipc.me/ubuntu-useful-commands-collection-for-newbie.html)