《Linux》基础命令到高级权限管理指南
文章目录
- 一、Linux系统概述与配置环境
- 二、Linux基础命令详解
- 1. 文件与目录操作命令
- ls命令 - 列出目录内容
- cd命令 - 切换目录
- mkdir命令 - 创建目录
- rmdir命令 - 删除空目录
- touch命令 - 创建文件或更新时间戳
- cp命令 - 复制文件和目录
- mv命令 - 移动或重命名
- rm命令 - 删除文件或目录
- 2. 文件查看与搜索命令
- cat命令 - 查看文件内容
- more/less命令 - 分页查看
- head/tail命令 - 查看文件首尾
- grep命令 - 文本搜索
- 3. 系统信息与帮助命令
- man命令 - 查看手册
- date命令 - 日期时间操作
- cal命令 - 日历
- which/whereis命令 - 查找命令位置
- 三、Linux权限管理详解
- 1. 用户与用户组管理
- su命令 - 切换用户
- sudo命令 - 以超级用户权限执行
- 2. 文件权限基础
- 3. 权限修改命令
- chmod命令 - 修改权限
- chown命令 - 修改所有者
- chgrp命令 - 修改组
- umask命令 - 设置默认权限
- 4. 特殊权限
- 粘滞位(咱们打游戏臭名昭著的东西doge)
- SUID/SGID权限
- 四、高级文件操作与实用技巧
- 1. 文件查找命令
- find命令 - 高级文件搜索
- locate命令 - 快速文件查找
- 2. 压缩与归档
- tar命令 - 打包与压缩
- zip/unzip命令
- 3. 实用技巧与组合命令
- 命令组合与管道
- 后台运行与作业控制
- 输出重定向
- 实用命令组合示例
- 五、Linux系统管理基础
- 1. 进程管理
- ps命令 - 查看进程
- top/htop命令 - 动态查看进程
- kill命令 - 终止进程
- 2. 网络管理
- ifconfig/ip命令 - 网络接口
- netstat/ss命令 - 网络连接
- ping/traceroute命令 - 网络测试
- 3. 磁盘管理
- df命令 - 磁盘空间
- du命令 - 目录空间
- mount/umount命令 - 挂载
- 六、尾言
一、Linux系统概述与配置环境
Linux是一种自由和开放源代码的类UNIX操作系统,由林纳斯·托瓦兹在1991年首次发布。作为服务器领域的霸主,Linux在全球服务器操作系统市场占据了极大的份额,同时在移动嵌入式、云计算以及大数据等领域也有广泛应用。我们熟知的安卓系统就是基于Linux。故学习Linux十分重要
二、Linux基础命令详解
1. 文件与目录操作命令
ls命令 - 列出目录内容
ls # 简单列出文件和目录
ls -l # 长格式显示,包含权限、所有者、大小等信息
ls -a # 显示所有文件,包括隐藏文件(以.开头的文件)
ls -lh # 以人类可读格式显示文件大小(KB,MB,GB)
ls -lt # 按修改时间排序,最新修改的排在最前
ls -ltr # 按修改时间反向排序,最旧的排在最前
ls -R # 递归列出子目录内容
ls -d */ # 只列出目录
cd命令 - 切换目录
cd # 返回用户主目录
cd ~ # 同上,返回用户主目录
cd /path/to/dir # 使用绝对路径切换目录
cd .. # 切换到上级目录
cd ../dir # 使用相对路径切换
cd - # 返回上一个工作目录
mkdir命令 - 创建目录
mkdir dirname # 创建单个目录
mkdir dir1 dir2 dir3 # 同时创建多个目录
mkdir -p path/to/dir # 递归创建目录路径
mkdir -m 755 newdir # 创建目录时指定权限
rmdir命令 - 删除空目录
rmdir dirname # 删除空目录
rmdir -p parent/child # 递归删除空目录
touch命令 - 创建文件或更新时间戳
touch filename # 创建新文件或更新已有文件时间
touch file1 file2 file3 # 同时创建多个文件
touch -t 202301011200 file # 设置特定时间戳(YYYYMMDDhhmm)
touch -a file # 只更改访问时间
touch -m file # 只更改修改时间
cp命令 - 复制文件和目录
cp file1 file2 # 复制文件
cp file1 file2 dir/ # 复制多个文件到目录
cp -i file1 file2 # 覆盖前提示确认
cp -r dir1 dir2 # 递归复制目录
cp -p file1 file2 # 保留原文件属性
cp -u file1 file2 # 只在源文件较新时复制
cp -v file1 file2 # 显示复制过程
mv命令 - 移动或重命名
mv oldname newname # 重命名文件
mv file1 file2 dir/ # 移动多个文件到目录
mv -i file1 file2 # 覆盖前提示确认
mv -v file1 file2 # 显示移动过程
mv -n file1 file2 # 不覆盖已存在文件
rm命令 - 删除文件或目录
rm filename # 删除文件
rm -i filename # 删除前确认
rm -f filename # 强制删除,不提示
rm -r dirname # 递归删除目录
rm -rf dirname # 强制递归删除目录
rm -v filename # 显示删除过程
2. 文件查看与搜索命令
cat命令 - 查看文件内容
cat file1 # 显示文件内容
cat file1 file2 # 合并显示多个文件
cat -n file1 # 显示行号
cat -b file1 # 只对非空行编号
cat -s file1 # 压缩连续空行为一行
cat file1 > file2 # 重定向输出
cat file1 >> file2 # 追加内容
more/less命令 - 分页查看
more file1 # 分页查看,只能向下翻页
less file1 # 更强大的分页查看器,可上下翻页
less -N file1 # 显示行号
less -i file1 # 忽略搜索大小写
less +F file1 # 实时跟踪文件变化(类似tail -f)
head/tail命令 - 查看文件首尾
head file1 # 显示文件前10行
head -n 20 file1 # 显示前20行
tail file1 # 显示文件最后10行
tail -n 20 file1 # 显示最后20行
tail -f logfile # 实时跟踪日志文件
tail -F logfile # 跟踪日志,即使文件被重命名
tail -c 100 file1 # 显示最后100字节
grep命令 - 文本搜索
grep "pattern" file1 # 基本搜索
grep -i "pattern" file1 # 忽略大小写
grep -v "pattern" file1 # 反向匹配,显示不包含的行
grep -n "pattern" file1 # 显示匹配行号
grep -c "pattern" file1 # 统计匹配行数
grep -r "pattern" dir/ # 递归目录搜索
grep -l "pattern" * # 只显示包含匹配项的文件名
grep -w "word" file1 # 全词匹配
grep -A 3 "pattern" file1 # 显示匹配行及后3行
grep -B 3 "pattern" file1 # 显示匹配行及前3行
grep -C 3 "pattern" file1 # 显示匹配行及前后各3行
3. 系统信息与帮助命令
man命令 - 查看手册
man ls # 查看ls命令手册
man 2 open # 查看系统调用open
man 3 printf # 查看C库函数printf
man -k keyword # 按关键字搜索手册
man -f command # 显示命令的简短描述
date命令 - 日期时间操作
date # 显示当前日期时间
date +%Y-%m-%d # 格式化输出日期
date +%H:%M:%S # 格式化输出时间
date +%s # 显示时间戳
date -d @1609459200 # 时间戳转日期
date -d "2023-01-01" +%s # 日期转时间戳
date -d "1 day ago" # 显示昨天日期
date -d "next monday" # 显示下周一日期
cal命令 - 日历
cal # 显示当月日历
cal -3 # 显示前月、当月、下月
cal -y # 显示全年日历
cal 2023 # 显示2023年日历
cal 1 2023 # 显示2023年1月日历
which/whereis命令 - 查找命令位置
which ls # 显示ls命令的完整路径
whereis ls # 显示命令的二进制、源码和手册位置
三、Linux权限管理详解
1. 用户与用户组管理
su命令 - 切换用户
su username # 切换用户但保留当前环境
su - username # 完全切换用户,加载新用户环境
su - # 切换到root用户
exit # 返回原用户
sudo命令 - 以超级用户权限执行
sudo command # 以root权限执行命令
sudo -u username command # 以指定用户身份执行
sudo -i # 启动root shell
sudo -l # 列出当前用户可执行的sudo命令
2. 文件权限基础
使用ls -l
查看的权限示例:
-rwxr-xr-- 1 user group 1024 Jan 1 10:00 file
权限分为四部分:
- 第一个字符:文件类型(-普通文件,d目录,l链接等)
- 接下来三组rwx:所有者、组、其他用户权限
- 数字:硬链接计数
- 用户名、组名、大小、修改时间和文件名
权限类型:
- r(读):4
- w(写):2
- x(执行):1
3. 权限修改命令
chmod命令 - 修改权限
# 符号模式
chmod u+x file # 给所有者添加执行权限
chmod g-w file # 移除组写权限
chmod o=r file # 设置其他用户权限为只读
chmod a+x file # 给所有用户添加执行权限
chmod ug=rw,o= file # 所有者和组读写,其他用户无权限# 数字模式
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod 600 file # rw-------
chmod -R 755 dir/ # 递归修改目录权限
chown命令 - 修改所有者
chown user file # 修改文件所有者
chown user:group file # 同时修改所有者和组
chown :group file # 只修改组
chown -R user:group dir # 递归修改目录所有者和组
chgrp命令 - 修改组
chgrp group file # 修改文件组
chgrp -R group dir # 递归修改目录组
umask命令 - 设置默认权限
umask # 查看当前umask值
umask 022 # 设置umask值
umask计算方式:
- 文件默认权限:666 - umask
- 目录默认权限:777 - umask
4. 特殊权限
粘滞位(咱们打游戏臭名昭著的东西doge)
chmod +t /shared_dir # 设置粘滞位
chmod 1777 /shared_dir # 数字方式设置
只有文件所有者、目录所有者或root才能删除设置了粘滞位的目录中的文件。
SUID/SGID权限
chmod u+s file # 设置SUID
chmod g+s file # 设置SGID
chmod 4755 file # 数字方式设置SUID
- SUID:执行时以文件所有者权限运行
- SGID:对目录设置时,新建文件继承目录组
四、高级文件操作与实用技巧
1. 文件查找命令
find命令 - 高级文件搜索
find / -name "*.txt" # 按名称查找
find / -type f -name "*.conf" # 查找普通文件
find / -type d -name "log" # 查找目录
find / -size +10M # 查找大于10MB的文件
find / -mtime -7 # 查找7天内修改的文件
find / -user root # 查找root用户的文件
find / -perm 644 # 查找权限为644的文件
find / -exec ls -l {} \; # 对找到的文件执行命令
find / -name "*.tmp" -delete # 查找并删除
locate命令 - 快速文件查找
locate filename # 快速查找文件(需先updatedb)
updatedb # 更新locate数据库
2. 压缩与归档
tar命令 - 打包与压缩
# 打包
tar -cvf archive.tar dir/ # 创建tar包
tar -tvf archive.tar # 查看tar包内容
tar -xvf archive.tar # 解压tar包
tar -xvf archive.tar -C /path # 解压到指定目录# gzip压缩
tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz # 解压gzip包# bzip2压缩
tar -cjvf archive.tar.bz2 dir/ # 创建bzip2压缩包
tar -xjvf archive.tar.bz2 # 解压bzip2包# xz压缩
tar -cJvf archive.tar.xz dir/ # 创建xz压缩包
tar -xJvf archive.tar.xz # 解压xz包
zip/unzip命令
zip -r archive.zip dir/ # 递归压缩目录
unzip archive.zip # 解压zip文件
unzip -l archive.zip # 查看zip文件内容
unzip -d /path archive.zip # 解压到指定目录
3. 实用技巧与组合命令
命令组合与管道
command1 | command2 # 管道,将command1输出作为command2输入
command1 && command2 # command1成功才执行command2
command1 || command2 # command1失败才执行command2
(command1; command2) # 顺序执行多个命令
后台运行与作业控制
command & # 后台运行
nohup command & # 退出终端后继续运行
jobs # 查看后台作业
fg %1 # 将作业1调到前台
bg %1 # 继续在后台运行作业1
ctrl+z # 暂停当前作业
输出重定向
command > file # 标准输出重定向到文件(覆盖)
command >> file # 标准输出追加到文件
command 2> file # 错误输出重定向到文件
command &> file # 标准和错误输出都重定向
command < file # 从文件读取输入
实用命令组合示例
# 查找并处理文件
find . -name "*.log" -exec grep -l "error" {} \; | xargs rm# 统计文件行数
find /var/log -type f -name "*.log" | xargs wc -l | sort -n# 监控日志变化
tail -f /var/log/syslog | grep --line-buffered "error"# 批量重命名文件
for file in *.txt; do mv "$file" "${file%.txt}.bak"; done# 计算目录大小
du -sh *
du -ah --max-depth=1 | sort -hr# 查找大文件
find / -type f -size +100M -exec ls -lh {} \; | sort -k5 -hr
五、Linux系统管理基础
1. 进程管理
ps命令 - 查看进程
ps aux # 查看所有进程
ps -ef # 完整格式显示进程
ps -u username # 查看指定用户进程
ps -p PID # 查看指定PID进程
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%mem | head # 查看内存使用前10的进程
top/htop命令 - 动态查看进程
top # 动态查看系统进程
htop # 增强版top(需安装)
kill命令 - 终止进程
kill PID # 终止进程
kill -9 PID # 强制终止进程
killall process_name # 终止所有同名进程
pkill -u username # 终止指定用户的所有进程
2. 网络管理
ifconfig/ip命令 - 网络接口
ifconfig # 查看网络接口信息
ip addr # 新版查看网络接口
netstat/ss命令 - 网络连接
netstat -tulnp # 查看监听端口
netstat -atn # 查看所有TCP连接
ss -tulnp # 新版查看网络连接
ping/traceroute命令 - 网络测试
ping example.com # 测试网络连通性
traceroute example.com # 跟踪路由路径
3. 磁盘管理
df命令 - 磁盘空间
df -h # 人类可读格式显示磁盘使用情况
df -i # 显示inode使用情况
du命令 - 目录空间
du -sh /path # 显示目录总大小
du -ah --max-depth=1 # 显示目录下各文件大小
mount/umount命令 - 挂载
mount /dev/sda1 /mnt # 挂载设备
umount /mnt # 卸载设备
六、尾言
文章中如有错误,欢迎各位读者在评论区指正。
向你鞠躬!!