在工作中常用到的 Linux 命令总结

前言

找工作面试的时候。几乎每次面试几乎都会问到 Linux 常用命令,会问一些命令的应用场景。目的是考察我们是否在实际开发中经常用、用得熟练。今天我就来系统地总结一下开发过程中最常用的 Linux 命令,算是一个复习总结。

速查表

下面这些 Linux 命令是日常开发和系统维护中最常用的命令,涵盖了文件管理、系统管理、网络管理、进程控制、权限设置以及文件下载、压缩等多方面的需求。为了方便快速查找和记忆,我整理了下各类命令的速查表。

分类命令用途说明示例
基本文件操作ls列出目录内容ls -l 查看详细列表
cd切换目录cd /path/to/dir 切换目录
cp复制文件或目录cp file.txt /backup/ 复制文件
mv移动或重命名文件mv oldname newname 重命名文件
rm删除文件或目录rm -r directory 递归删除目录
mkdir创建新目录mkdir newdir 创建目录
文件查看cat查看文件内容cat filename 显示文件内容
more分页显示文件内容more filename 分页查看文件
less高效分页查看文件内容less filename 前后翻页查看文件
tail查看文件尾部内容tail -n 10 filename 查看最后 10 行
head查看文件开头内容head -n 10 filename 查看前 10 行
文本处理grep搜索文件中的文本模式grep "error" filename 搜索包含 "error" 的行
sed替换或编辑文本sed 's/old/new/g' filename 替换所有匹配项
awk按列处理文本数据awk '{print $1}' filename 打印文件第一列
系统管理uname查看系统信息uname -a 显示完整系统信息
top实时查看系统资源使用top 实时监控 CPU、内存等资源
df查看磁盘使用情况df -h 以人类可读格式显示磁盘使用
du查看目录大小du -sh /path/to/dir 显示目录总大小
free查看内存使用情况free -h 显示内存使用情况
用户和权限管理whoami查看当前用户whoami 显示当前登录的用户名
sudo以超级用户权限执行命令sudo command 以管理员权限执行命令
chmod修改文件权限chmod 755 filename 设置权限
chown更改文件所有者和组chown user:group filename 设置所有者和组
adduser添加新用户sudo adduser username 创建新用户
deluser删除用户sudo deluser username 删除用户
passwd修改用户密码passwd username 为用户设置密码
网络管理ifconfig查看网络接口配置ifconfig 显示所有网络接口信息
ping测试网络连通性ping google.com 测试连接
netstat查看网络连接状态netstat -tuln 显示监听端口
curl发送 HTTP 请求curl -I http://example.com 查看响应头
端口管理nmap扫描开放端口nmap 192.168.1.1 扫描指定 IP 的开放端口
lsof查看端口占用lsof -i :8080 查看端口 8080 的占用
iptables配置防火墙规则iptables -L 查看所有防火墙规则
进程管理ps显示系统进程ps aux 查看所有进程信息
top实时查看进程资源使用top 动态监控系统进程
kill终止指定进程kill -9 PID 强制终止进程
killall终止同名进程killall process_name 终止所有同名进程
nice启动进程并设置优先级nice -n 10 command 启动新进程并设置优先级
renice调整运行中进程的优先级renice -n 5 -p PID 调整进程优先级
下载和文件管理wget下载文件wget http://example.com/file.zip 下载文件
curl下载或上传数据curl -O http://example.com/file.zip 下载文件
压缩和解压缩tar打包和解包文件tar -czvf archive.tar.gz /path/to/files 打包并压缩
gzip压缩文件gzip filename 压缩文件
zip压缩为 zip 文件zip archive.zip file1 file2 压缩多个文件
unzip解压 zip 文件unzip archive.zip 解压 zip 文件
文件分割和合并split分割文件split -b 100M largefile.bin part_ 分割大文件
cat合并文件cat part_* > mergedfile.bin 合并分割文件

文件管理类命令

在日常开发中,文件和目录的操作是最基础、最常用的操作之一。以下是常用的文件管理类命令,包括 lscdcpmvrmmkdir,并附上具体说明和使用示例

1. ls - 列出目录内容

ls 命令用于显示当前目录下的文件和目录列表,提供各种参数来辅助查看详细信息。

常用参数:

  • -l:显示详细信息,包括权限、所有者、文件大小等。
  • -a:显示所有文件,包括隐藏文件(以.开头的文件)。

示例:

ls -l    # 显示当前目录的文件详细信息
ls -a    # 显示包括隐藏文件在内的所有文件
ls -lh   # 显示文件的详细信息并以易读的格式展示大小

2. cd - 切换目录

cd(Change Directory)命令用于在不同目录之间切换。

用法:

  • cd 目录路径:切换到指定路径的目录。
  • cd .. :返回到上一级目录。
  • cd ~ :切换到当前用户的主目录。

示例:

cd /var/log      # 切换到 /var/log 目录
cd ..            # 返回上一级目录
cd ~             # 返回主目录

3. cp - 复制文件和目录

cp 命令用于复制文件或目录,支持递归复制目录。

常用参数:

  • -r:递归复制整个目录。
  • -i:提示确认覆盖。

示例:

cp file.txt /backup/        # 将 file.txt 文件复制到 /backup/ 目录
cp -r /source /destination  # 递归复制 /source 目录到 /destination

4. mv - 移动或重命名文件和目录

mv 命令用于移动文件或目录,也可以用来重命名文件。

用法:

  • mv 源文件 目标文件:将文件或目录移动到新位置。
  • mv 旧名称 新名称:对文件或目录进行重命名。

示例:

mv file.txt /backup/      # 将 file.txt 移动到 /backup/ 目录
mv oldname.txt newname.txt # 将 oldname.txt 重命名为 newname.txt

5. rm - 删除文件和目录

rm 命令用于删除文件或目录,删除操作不可逆,需小心使用。

常用参数:

  • -r:递归删除目录及其内容。
  • -i:删除前进行确认。
  • -f:强制删除,不提示。

示例:

rm file.txt         # 删除文件 file.txt
rm -r /backup/test  # 递归删除 /backup/test 目录
rm -f temp.log      # 强制删除 temp.log 文件

6. mkdir - 创建新目录

mkdir 命令用于创建新目录。

常用参数:
-p:创建多层级目录(不存在的父目录会被自动创建)。

示例:

mkdir newfolder            # 创建一个新目录 newfolder
mkdir -p /backup/logs      # 递归创建 /backup/logs 目录

文件查看命令

在开发中,我们经常需要查看文件的某一部分内容或筛选出特定的信息。以下是常用的文件查看命令,包括 catmorelesstailhead,并附带了使用示例。

1. cat - 显示文件内容

cat 命令一次性输出文件的所有内容,适合查看小型文件内容。

用法:

  • cat 文件名:显示整个文件内容。
  • cat 文件1 文件2 > 合并文件:将多个文件内容合并输出到新文件。

示例:

cat logfile.txt              # 显示 logfile.txt 文件的所有内容
cat file1.txt file2.txt > combined.txt  # 合并 file1 和 file2 内容到 combined.txt

2. more - 分页显示文件内容

more 命令用于分页显示文件内容,适合逐页查看大文件。

常用操作:

空格键 翻页,按 q 退出查看。

示例:

more /var/log/syslog         # 分页查看系统日志

3. less - 高效分页查看文件内容

less 命令和 more 类似,但支持前后翻页和搜索,适合查看大文件内容。

常用操作:

  • 空格键 向下翻页,按 b 向上翻页。
  • 输入 /关键词 可以搜索关键词,按 n 跳到下一个匹配。

示例:

less /var/log/syslog         # 分页查看日志内容并支持前后翻页

4. tail - 查看文件末尾

tail 命令用于查看文件的最后几行内容,适合检查日志的最新输出。

常用参数:

  • -n 行数:显示指定行数的末尾内容。
  • -f:实时追踪文件的新内容。

示例:

tail -n 20 /var/log/syslog   # 查看系统日志的最后 20 行
tail -f /var/log/syslog      # 实时追踪系统日志的新内容

5. head - 查看文件开头

head 命令用于查看文件的开头部分内容。

常用参数:
-n 行数:显示指定行数的开头内容。

示例:

head -n 10 logfile.txt       # 查看文件开头的 10 行

文本处理命令

文本处理命令用于从文件中查找、提取、替换内容,非常适合快速分析文件中的信息。以下是 grepsedawk 命令的详细说明和示例。

1. grep - 搜索文本内容

grep 命令用于查找文件中匹配特定模式的行。它可以根据关键词、时间戳或正则表达式来筛选内容。

常用参数:

  • -i:忽略大小写。
  • -r:递归搜索目录中的文件。
  • -A 行数 和 -B 行数:显示匹配行的前后若干行。

示例:

grep "ERROR" /var/log/syslog           # 查找系统日志中包含 "ERROR" 的行
grep -i "warning" logfile.txt           # 忽略大小写查找 "warning"
grep '2024-10-31 12:00' /var/log/syslog # 查找系统日志中 2024 年 10 月 31 日中午 12:00 的记录
grep -A 5 -B 5 "ERROR" /var/log/syslog  # 查找包含 "ERROR" 的行,并显示前后 5 行

2. sed - 流编辑器

sed(Stream Editor)用于对文本进行批量替换、删除等操作,还可以用于显示文件的特定行范围。

常用操作:

  • 替换:sed 's/旧内容/新内容/g' 文件名,替换所有匹配内容。
  • 修改文件:-i 参数直接修改文件。
  • 查看中间部分:sed -n '起始行,结束行p' 文件名。

示例:

sed 's/old/new/g' file.txt               # 将文件中的 "old" 替换为 "new"
sed -i 's/error/ERROR/g' logfile.txt      # 替换日志文件中的 "error" 为 "ERROR" 并保存
sed -n '100,200p' /var/log/syslog         # 查看系统日志的第 100 到 200 行

3. awk - 文本数据处理工具

awk 是一个强大的文本处理工具,擅长按列操作文件内容,适合格式化和提取数据。

常用操作:

  • 按列打印:awk '{print $列号}' 打印指定列内容。
  • 匹配模式打印:awk '/模式/' 打印匹配的行。

示例

awk '{print $1, $3}' data.txt             # 打印文件中第一和第三列
awk '/ERROR/ {print $0}' logfile.txt      # 打印包含 "ERROR" 的整行

文本下载和文件管理命令

在开发中,下载文件、压缩和解压文件是常见的操作,尤其是处理日志文件、配置文件或安装软件包时。

1. wget - 下载文件

wget 是一个非交互式的文件下载工具,支持 HTTP、HTTPS 和 FTP 协议,适合下载文件或网页。

常用参数:

  • -O 文件名:将下载的文件保存为指定文件名。
  • -c:断点续传,如果下载中断,可以从中断点继续下载。
  • -r:递归下载,适合下载整个目录或网站(需小心使用)。

示例:

wget http://example.com/file.zip       # 下载指定 URL 的文件
wget -O customname.zip http://example.com/file.zip  # 将文件保存为 customname.zip
wget -c http://example.com/largefile.iso # 断点续传下载大文件

2. curl - 获取或上传数据

curl 命令支持多种协议,用于发送 HTTP 请求、上传或下载文件。它是调试 HTTP API 的好工具。

常用参数:

  • -O:将下载内容保存为远程文件的同名文件。
  • -I:仅获取响应头。
  • -d:发送数据(POST 请求时使用)。

示例:

curl -O http://example.com/file.tar.gz  # 下载文件并保存为同名文件
curl -I http://example.com              # 查看 HTTP 响应头
curl -d "param=value" -X POST http://example.com/api  # 发送 POST 请求

压缩和解压缩命令

文件压缩和解压缩命令帮助我们节省存储空间和传输时间,常用的有 targzipzipunzip

1. tar - 打包与解包

tar 是 Linux 下常用的打包和解包工具,可以将多个文件或目录打包成一个文件(不压缩),也可以直接生成压缩文件。

常用参数:

-c:创建新的 tar 包。
-x:解压 tar 包。
-v:显示详细过程。
-f:指定文件名。
-z:使用 gzip 压缩或解压缩。
-j:使用 bzip2 压缩或解压缩。

示例:

tar -cvf archive.tar /path/to/files    # 将目录打包成 tar 文件(不压缩)
tar -czvf archive.tar.gz /path/to/files # 将目录打包并使用 gzip 压缩
tar -xvf archive.tar                   # 解压 tar 包
tar -xzvf archive.tar.gz               # 解压 gzip 压缩的 tar 包

2. gzip - 压缩文件

gzip 命令用于压缩文件,生成的文件会以 .gz 作为扩展名。注意,gzip 只能压缩单个文件。

常用参数:

  • -d:解压 gzip 文件。

示例:

gzip filename                          # 将 filename 压缩为 filename.gz
gzip -d filename.gz                    # 解压 gzip 文件

3. zip 和 unzip - 压缩和解压 zip 文件

zipunzip 命令分别用于创建和解压缩 zip 格式的压缩文件,这种格式在 Windows 和 Linux 系统之间通用。

常用参数:

  • zip-r:递归压缩目录。
  • unzip-d:指定解压目录。

示例:

zip archive.zip file1 file2            # 将 file1 和 file2 压缩为 archive.zip
zip -r archive.zip /path/to/directory  # 递归压缩整个目录
unzip archive.zip                      # 解压 zip 文件
unzip archive.zip -d /path/to/extract  # 解压到指定目录

文件分割和合并命令

1. split - 分割文件

split 命令用于将大文件分割成多个小文件,适合处理超大文件。

常用参数

  • -b:指定分割后的文件大小。
  • -l:按行分割。

示例:

split -b 100M largefile.bin part_       # 将 largefile.bin 分割为 100MB 的小文件
split -l 1000 largefile.txt part_       # 每 1000 行分割一个文件

2. cat - 合并文件

cat 命令可以将分割的文件合并回一个文件。

示例:

cat part_* > mergedfile.bin             # 合并分割的小文件为一个大文件

这些命令可以有效帮助我们管理文件的下载、压缩、解压缩以及分割与合并操作,是日常开发和维护中不可或缺的工具。

系统管理命令

系统管理命令帮助我们获取系统信息、管理用户权限和维护系统资源。在日常开发和运维中,这些命令可以用来检查系统状态、处理用户权限以及进行系统更新。

这些命令用于检查系统的基本信息和资源使用情况,包括 unametopdfdufree

1. uname - 显示系统信息

uname 命令可以查看系统的基本信息,如内核名称、主机名称等。

常用参数:

  • -a:显示所有信息,包括内核名称、版本、架构等。
  • -r:显示内核版本。

示例:

uname -a           # 查看完整的系统信息
uname -r           # 查看系统内核版本

2. top - 实时查看系统性能

top 命令可以实时监控系统的资源使用情况,包括 CPU、内存和各进程的状态。

常用操作:

  • 按 P:按 CPU 使用率排序。
  • 按 M:按内存使用率排序。
  • 按 q:退出查看。

示例:

top                # 实时查看系统资源使用情况

3. df - 查看磁盘使用情况

df 命令用于查看磁盘分区的使用情况,帮助我们快速了解磁盘空间的占用情况。

常用参数:

  • -h:以人类易读的格式显示。

示例:

df -h              # 以易读格式显示各分区的磁盘使用情况

4. du - 查看目录大小

du 命令用于显示指定目录或文件的大小,常用于分析磁盘空间的使用情况。

常用参数:

  • -h:以人类易读的格式显示。
  • -s:只显示总大小。

示例:

du -sh /var/log    # 查看 /var/log 目录的总大小
du -h /home        # 查看 /home 目录下每个文件和子目录的大小

5. free - 查看内存使用情况

free 命令用于显示系统的内存使用情况,包括物理内存和交换内存。

常用参数:

  • -h:以人类易读的格式显示。

示例:

free -h            # 以人类可读格式显示内存使用情况

用户管理

用户管理命令用于查看和修改用户权限,包括 whoamisudochmodchown

1. whoami - 显示当前用户

whoami 命令用于显示当前登录的用户名,方便我们确认当前权限。

whoami             # 显示当前登录的用户名

2. sudo - 以超级用户权限执行命令

sudo 命令用于以超级用户(root)权限运行命令,适合执行需要管理员权限的操作。

示例:

sudo apt-get update    # 以超级用户权限更新系统
sudo rm /root/temp.txt # 删除 root 目录下的文件(需要超级用户权限)

3. chmod - 修改文件权限

chmod 命令用于设置文件或目录的权限,通过指定权限值来控制读、写、执行权限。

常用格式:

  • chmod 权限 文件名:直接设置权限,例如 chmod 755 file.txt
  • 权限值说明:r=4(读)、w=2(写)、x=1(执行)。

示例:

chmod 644 myfile.txt      # 设置文件为所有者可读写,其他人只读
chmod +x script.sh        # 为文件添加执行权限

4. chown - 修改文件所有者

chown 命令用于更改文件或目录的拥有者或所属组,适用于更改文件的访问权限。

常用格式:

  • chown 用户:组 文件名:更改文件的用户和组。

示例:

chown user1:usergroup myfile.txt  # 将 myfile.txt 的所有者设为 user1,组设为 usergroup
chown -R user1 /home/user1        # 递归修改 /home/user1 目录及其内容的所有者

系统更新

在开发中,我们通常需要通过包管理器更新系统或安装依赖包。常见的包管理器有 apt-get(适用于 Debian 系和 Ubuntu 系统)和 yum(适用于 CentOS 和 RedHat 系统)。

1. apt-get - Debian 系统的包管理器

apt-get 是 Debian 系和 Ubuntu 系系统的包管理器,常用于安装、更新和删除软件包。

常用命令:

  • apt-get update: 更新软件包列表。
  • apt-get upgrade: 更新已安装的所有包。
  • apt-get install: 软件包名:安装指定软件包。

示例:

sudo apt-get update             # 更新软件包列表
sudo apt-get upgrade            # 更新已安装的软件包
sudo apt-get install git        # 安装 Git

2. yum - RedHat 系统的包管理器

yum 是 RedHat 系和 CentOS 系系统的包管理器,提供了类似的包安装和更新功能。

常用命令:

  • yum update:更新所有软件包。
  • yum install 软件包名:安装指定软件包。
  • yum remove 软件包名:卸载软件包。

示例:

sudo yum update                 # 更新所有软件包
sudo yum install git            # 安装 Git
sudo yum remove httpd           # 卸载 Apache HTTP 服务器

网络管理命令

在开发和运维过程中,网络管理命令帮助我们检查网络连接状态、调试网络故障、管理端口和流量。这些命令可以有效地定位和排查网络问题。

这些命令用于查看系统的网络连接状态和网络接口信息,包括 ifconfigpingnetstatcurl

1. ifconfig - 查看网络接口信息

ifconfig 命令显示系统的网络接口配置信息,包括 IP 地址、子网掩码、广播地址等。

常用参数: 无参数时显示所有接口的基本信息。

示例:

ifconfig                       # 显示所有网络接口的配置信息
ifconfig eth0                  # 查看特定接口(eth0)的详细信息

2. ping - 测试网络连通性

ping 命令用于测试与目标主机的网络连接,验证网络是否连通。

常用参数:

  • -c 次数:指定发送的包数量。
  • -i 间隔:设置每次发送包的间隔时间。

示例:

ping google.com                # 测试到 Google 的连通性
ping -c 4 8.8.8.8              # 发送 4 个包测试到 8.8.8.8 的连接

3. netstat - 查看网络连接状态

netstat 命令用于显示网络连接、路由表和接口状态信息,适合快速检查网络端口的使用情况。

常用参数:

  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -l:显示监听状态的端口。
  • -n:以数字形式显示 IP 地址和端口号。

示例:

netstat -tuln                  # 查看系统所有监听中的 TCP 和 UDP 端口
netstat -an                    # 显示所有活动的网络连接

4. curl - 发送 HTTP 请求

curl 命令用于测试 HTTP 请求,获取指定 URL 的数据或响应头信息。它非常适合调试 API 接口或检测网站状态。

常用参数:

  • -I:仅获取响应头信息。
  • -X:指定请求方法,如 GET、POST 等。
  • -d:发送 POST 请求时的参数数据。

示例:

curl http://example.com             # 获取网站主页的 HTML 内容
curl -I http://example.com          # 只查看网站的响应头
curl -X POST -d "param=value" http://example.com  # 发送 POST 请求

端口管理

端口管理命令帮助我们检查系统端口的状态,检测端口占用或配置防火墙规则,包括 nmaplsofiptables

1. nmap - 网络端口扫描

nmap(Network Mapper)是一款开源网络扫描工具,可以扫描指定主机的开放端口、服务信息和操作系统版本。它主要用于网络安全和端口占用检测。

常用参数:

  • -p 端口号:指定扫描的端口号。
  • -sS:执行 TCP SYN 扫描,快速检测端口状态。
  • -O:检测目标主机的操作系统。

示例:

nmap 192.168.1.1                 # 扫描指定 IP 的开放端口
nmap -p 80 192.168.1.1           # 检测 IP 的 80 端口状态
nmap -sS 192.168.1.1             # 执行快速 TCP 扫描
nmap -O 192.168.1.1              # 检测目标主机的操作系统

2. lsof - 查看端口占用

lsof(List Open Files)命令用于查看系统中被进程打开的文件,包括网络文件和端口。它可以帮助我们查找被特定端口占用的进程。

常用参数:

  • -i :端口号:显示使用指定端口的进程。
  • -t:仅显示进程 ID,便于和 kill 配合使用。

示例:

lsof -i :8080                    # 查看 8080 端口被哪个进程占用
lsof -t -i :8080 | xargs kill    # 终止占用 8080 端口的进程

3. iptables - 配置防火墙规则

iptables 是 Linux 系统的防火墙工具,可以通过设定规则来管理进出网络流量。它支持过滤、重定向和日志记录等功能。

常用操作:

  • 查看现有规则:iptables -L 列出所有规则。
  • 允许端口:iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
  • 拒绝端口:iptables -A INPUT -p tcp --dport 端口号 -j DROP
  • 删除规则:iptables -D INPUT 行号 删除指定规则

示例:

iptables -L                           # 列出当前所有防火墙规则
iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 开放 80 端口
iptables -A INPUT -p tcp --dport 22 -j DROP    # 禁止外部访问 22 端口
iptables -D INPUT 1                   # 删除第一条规则

进程管理命令

在 Linux 系统中,进程管理命令帮助我们查看和控制进程的状态、使用情况和优先级。以下是常用的进程管理命令,包括 pstopkillkillall,以及调整进程优先级的 nicerenice

这些命令用于查看系统中运行的进程、监控进程的资源占用情况,以及终止特定进程。

1. ps - 显示进程信息

ps 命令用于查看系统中的进程状态,常用于静态查看某一时刻的进程信息。

常用参数:

-e 或 -A:显示所有进程。
-f:显示完整格式的进程信息。
aux:显示所有进程的详细信息,包括用户、CPU 和内存占用。

示例:

ps -e                         # 列出所有进程
ps -ef                        # 列出所有进程的完整信息
ps aux                        # 详细显示所有进程的信息

2. top - 实时查看系统进程

top 命令用于实时监控系统的资源使用情况,包括 CPU、内存和各个进程的状态。它可以动态刷新,并支持排序和过滤。

常用操作:

  • P:按 CPU 使用率排序。
  • M:按内存使用率排序。
  • k:输入进程 ID(PID)以结束指定进程。
  • q:退出查看。

示例:

top                            # 实时查看所有进程的资源使用情况

3. kill - 终止指定进程

kill 命令用于向指定进程发送信号,最常用于终止进程。

常用参数

  • -9:强制终止进程。
  • -15(默认):正常终止进程,允许进程完成清理工作。
    示例:
kill 1234                      # 终止 PID 为 1234 的进程
kill -9 1234                   # 强制终止 PID 为 1234 的进程

4. killall - 终止同名进程

killall 命令可以根据进程名称终止所有匹配的进程,非常适合同时结束多个同名进程。

常用参数:
-9:强制终止进程。

示例:

killall apache2                # 终止所有 apache2 进程
killall -9 chrome              # 强制终止所有 chrome 进程

进程优先级

在 Linux 系统中,进程的优先级决定了它获得 CPU 资源的优先顺序。可以使用 nicerenice 命令来调整进程的优先级。

1. nice - 启动进程并设置优先级

nice 命令用于以指定的优先级启动新进程。默认情况下,优先级范围是 -20(最高优先级)到 19(最低优先级),数值越高优先级越低。

常用参数:

  • -n:指定优先级值。

示例:

nice -n 10 command             # 以优先级 10 启动一个新进程
nice -n -5 ./myscript.sh       # 以高优先级(-5)运行 myscript.sh

2. renice - 调整运行中进程的优先级

renice 命令用于调整正在运行中的进程的优先级。

常用参数:

  • -n:指定新的优先级值。
  • -p:后接进程 ID(PID)来指定要调整优先级的进程。

示例:

renice -n 5 -p 1234            # 将 PID 为 1234 的进程优先级调整为 5
renice -n -10 -p 5678          # 提高 PID 为 5678 的进程优先级(优先级设置为 -10)

权限管理命令

在 Linux 系统中,权限管理命令帮助我们控制用户和进程对文件和目录的访问权限,同时也可以创建、删除用户和组。以下是常用的权限管理命令,包括 chmodchownchgrp,以及用户和组管理的 adduserdeluserpasswd

文件权限管理命令用于设置文件或目录的读、写和执行权限,包括 chmodchownchgrp

1. chmod - 修改文件权限

chmod 命令用于更改文件或目录的权限,可以通过数字(如 755)或符号(如 u+x)指定权限。

常用格式:

  • 数字表示法:每一位数字表示不同的用户权限(用户、组和其他人)。例如,chmod 755 filename 表示所有者有读写执行权限,组和其他人只有读和执行权限。

  • 符号表示法:
    u:所有者(user)
    g:组(group)
    o:其他用户(others)
    + :添加权限、
    -:移除权限、
    =:设置为指定权限

示例:

chmod 755 myscript.sh           # 设置文件权限为所有者可读写执行,组和其他用户可读执行
chmod u+x script.sh             # 添加执行权限给文件所有者
chmod g-w file.txt              # 移除组的写权限

2. chown - 更改文件所有者

chown 命令用于更改文件或目录的所有者和所属组。它可以将文件归属从一个用户转移给另一个用户或组。

常用格式:

  • chown 用户:组 文件名:更改文件的用户和组。
  • -R:递归更改目录及其内部所有文件的所有者和组。

示例:

chown user1 myfile.txt          # 将 myfile.txt 的所有者改为 user1
chown user1:usergroup myfile.txt # 将文件所有者设为 user1,组设为 usergroup
chown -R user1 /home/user1      # 递归更改 /home/user1 目录及其内容的所有者

3. chgrp - 更改文件所属组

chgrp 命令用于更改文件或目录的组,适用于保持文件所有者不变的情况下更改文件的所属组。

用法:

  • chgrp 组名 文件名:更改文件的组。
  • -R:递归更改目录及其所有子文件的组。

示例:

chgrp usergroup myfile.txt      # 更改 myfile.txt 文件的组为 usergroup
chgrp -R developers /var/www    # 递归更改 /var/www 目录下所有文件的组为 developers

用户和组管理

用户和组管理命令用于创建、删除用户,设置密码,帮助系统管理员有效管理用户账户权限。

1. adduser - 添加新用户

adduser 命令用于创建新用户,并会提示设置密码、创建用户主目录和配置文件。

用法:

  • adduser 用户名:创建新用户并配置主目录。

示例:

sudo adduser newuser            # 创建名为 newuser 的用户,并配置默认目录

2. deluser - 删除用户

deluser 命令用于删除用户账户,可以选择是否删除用户的主目录。

常用参数:
--remove-home:同时删除用户的主目录和配置信息。

示例:

sudo deluser olduser            # 删除 olduser 用户,但保留主目录
sudo deluser --remove-home tempuser  # 删除 tempuser 用户及其主目录

3. passwd - 修改用户密码

passwd 命令用于设置或更改用户的密码。只有管理员可以更改其他用户的密码。

用法:

  • passwd 用户名:为指定用户设置密码。

示例:

passwd                           # 更改当前用户密码
sudo passwd user1                # 为 user1 用户设置新密码
关于我
loading
在线编辑器