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