Linux 基础入门操作 前言 linux操作指令介绍

1 linux 目录介绍

Linux 文件系统采用层次化的目录结构,所有目录都从根目录 / 开始

1.1 核心目录

/ (根目录)

整个文件系统的起点、包含所有其他目录和文件

/bin (基本命令二进制文件)

存放系统最基本的shell命令:如 ls, cp, mv, rm, cat 等,所有用户都可使用。

/sbin (系统二进制文件)

存放系统管理命令,如 fdisk, ifconfig, reboot 等,通常需要 root 权限才能执行

/boot (引导加载程序文件)

包含 Linux 内核、初始 RAM 磁盘映像和引导加载程序配置文件。如 vmlinuz, initrd.img, grub/

/dev (设备文件)

包含所有设备文件,如 /dev/sda (硬盘), /dev/tty (终端), /dev/null (空设备)

/etc (系统配置文件)

包含系统和应用程序的配置文件,如 /etc/passwd (用户账户), /etc/fstab (文件系统表)

/home (用户主目录)

普通用户的个人目录,每个用户通常有自己的子目录,如 /home/username

/lib (系统库文件)

存放系统最基本的共享库和内核模块,如 /lib/modules/ (内核模块)

1.2 重要系统目录

/media (可移动媒体挂载点)

自动挂载的可移动设备,如 U 盘、光盘

/mnt (临时挂载点)

用于临时手动挂载文件系统

/opt (可选应用程序)

第三方应用程序的安装位置

/proc (虚拟文件系统)

包含系统进程和内核信息的虚拟文件系统,如 /proc/cpuinfo (CPU 信息), /proc/meminfo (内存信息)

/root (root 用户主目录)

超级用户 root 的主目录

/run (运行时数据)

存储系统运行时的临时数据,如 /run/lock (锁文件)

/tmp (临时文件)

存放临时文件,系统重启后通常会被清空

1.3 系统资源目录

/usr (用户程序)

包含用户应用程序和文件

1.3.1 重要子目录:

  1. /usr/bin: 用户命令

  2. /usr/sbin: 系统管理命令

  3. /usr/lib: 库文件

  4. /usr/local: 本地安装的软件

  5. /usr/share: 共享数据

/var (可变数据)

存放经常变化的文件

重要子目录:

  1. /var/log: 系统日志

  2. /var/cache: 应用程序缓存

  3. /var/spool: 队列数据

  4. /var/www: Web 服务器目录 (常见)

1.4 特殊目录

/sys (虚拟文件系统)

提供内核数据结构接口, 用于配置设备和内核参数

/srv (服务数据)

包含特定服务提供的数据, 如网站数据、FTP 数据等

/lost+found (恢复文件)

文件系统修复后找到的丢失文件

2 常见shell 指令

Shell 是 Linux/Unix 系统的命令行界面,是与操作系统交互的主要方式。以下是常用的 Shell 指令分类介绍:

2.1 文件和目录操作

2.1.1 ls - 列出目录内容

bash 复制代码
ls          # 列出当前目录内容
ls -l       # 详细列表(长格式)
ls -a       # 显示隐藏文件(以.开头)
ls -lh      # 人类可读的文件大小显示

2.1.2 cd - 切换目录

bash 复制代码
cd /path/to/dir  # 切换到指定目录
cd ~             # 切换到用户主目录
cd ..            # 切换到上级目录
cd -             # 切换到上一个工作目录

2.1.3 pwd - 显示当前工作目录

bash 复制代码
pwd  # 打印当前目录的完整路径

2.1.4 mkdir - 创建目录

bash 复制代码
mkdir dirname      # 创建单个目录
mkdir -p dir1/dir2 # 创建多级目录

2.1.5 rm - 删除文件或目录

bash 复制代码
rm file.txt        # 删除文件
rm -r dirname      # 递归删除目录
rm -f file.txt     # 强制删除,不提示

2.1.6 mv - 移动或重命名文件/目录

bash 复制代码
mv file1 file2     # 重命名
mv file1 dir/      # 移动文件

2.1.7 touch - 创建空文件或更新文件时间戳

bash 复制代码
touch file.txt  # 创建空文件或更新访问时间

2.2 文件查看和编辑

2.2.1 cat - 查看文件内容

bash 复制代码
cat file.txt      # 显示文件内容
cat -n file.txt   # 显示行号

2.2.2 less/more - 分页查看文件

bash 复制代码
less file.txt  # 可前后翻页
more file.txt  # 只能向下翻页

2.2.3 head/tail - 查看文件开头/结尾

bash 复制代码
head -n 5 file.txt  # 查看前5行
tail -f logfile     # 实时查看日志更新

2.2.4 grep - 文本搜索

bash 复制代码
grep "pattern" file.txt      # 搜索包含pattern的行
grep -i "pattern" file.txt   # 忽略大小写
grep -r "pattern" /path      # 递归搜索目录

2.3 系统信息

2.3.1 ps - 查看进程

bash 复制代码
ps aux       # 查看所有运行中的进程
ps -ef       # 另一种格式显示进程

2.3.2 top/htop - 动态查看系统状态

bash 复制代码
top          # 动态显示进程和资源使用
htop         # 更友好的交互式top(需安装)

2.3.3 free - 查看内存使用

bash 复制代码
free -h      # 以人类可读格式显示内存信息

2.3.4 df - 查看磁盘空间

bash 复制代码
df -h        # 显示磁盘使用情况(人类可读)

2.3.5 uname - 显示系统信息

bash 复制代码
uname -a     # 显示所有系统信息

2.4 网络相关

2.4.1 ping - 测试网络连接

bash 复制代码
ping example.com  # 测试到example.com的连接

2.4.2 ifconfig/ip - 网络接口配置

bash 复制代码
ifconfig      # 显示网络接口信息(较旧)
ip addr       # 显示网络接口信息(新版)

2.4.3 netstat/ss - 网络统计

bash 复制代码
netstat -tuln # 显示监听端口(较旧)
ss -tuln      # 显示监听端口(新版)

2.4.5 wget/curl - 下载工具

bash 复制代码
wget http://example.com/file  # 下载文件
curl -O http://example.com/file

2.5 权限管理

2.5.1 chmod - 修改文件权限

bash 复制代码
chmod 755 file.sh   # 设置权限(rwxr-xr-x)
chmod +x file.sh    # 添加执行权限

2.5.2 chown - 修改文件所有者

bash 复制代码
chown user:group file.txt  # 修改所有者和组

2.5.3 sudo - 以超级用户权限执行

bash 复制代码
sudo command  # 以root权限执行命令

2.6 压缩和解压

2.6.1 tar - 打包和解包

bash 复制代码
tar -czvf archive.tar.gz dir/  # 创建gzip压缩包
tar -xzvf archive.tar.gz       # 解压gzip包

2.6.2 zip/unzip - ZIP压缩/解压

bash 复制代码
zip archive.zip file1 file2   # 创建zip压缩包
unzip archive.zip             # 解压zip包

2.6.3 gzip/gunzip - GZIP压缩/解压

bash 复制代码
gzip file.txt        # 压缩文件(生成file.txt.gz)
gunzip file.txt.gz   # 解压文件

2.7 其他实用命令

2.7.1 find - 查找文件

bash 复制代码
find /path -name "*.txt"  # 按名称查找
find . -type f -size +1M  # 查找大于1M的文件

2.7.3 which/whereis - 查找命令位置

bash 复制代码
which ls      # 显示ls命令的路径
whereis ls    # 显示命令及其手册页位置

2.7.4 alias - 创建命令别名

bash 复制代码
alias ll='ls -alF'  # 创建ll别名

2.7.5 history - 查看命令历史

bash 复制代码
history       # 显示命令历史
!n            # 执行历史记录中第n条命令

2.7.6 man - 查看命令手册

bash 复制代码
man ls        # 查看ls命令的手册页

2.7.7 echo - 输出文本

bash 复制代码
echo "Hello"  # 输出文本
echo $PATH    # 输出环境变量

2.7.8 date - 显示或设置日期时间

bash 复制代码
date          # 显示当前日期时间
date +"%Y-%m-%d"  # 格式化输出
sudo date -s "2024-03-15 14:30:00"

3 Shell 脚本

Shell 脚本是 Linux/Unix 系统中自动化任务和系统管理的重要工具。以下是 Shell 脚本开发的全面指南:

3.1 初步了解

第一行 #!/bin/bash 称为 shebang,指定解释器

bash 复制代码
#!/bin/bash
# 这是一个注释
echo "Hello, World!"

3.2 运行方式

bash 复制代码
chmod +x script.sh  # 添加执行权限
./script.sh         # 直接执行

bash script.sh      # 指定解释器执行
sh script.sh        # 使用 sh 解释器执行
source script.sh    # 在当前 shell 环境中执行

3.3 变量定义与使用

bash 复制代码
name="Alice"        # 定义变量
echo $name          # 使用变量
echo ${name}        # 推荐使用大括号

readonly PI=3.14    # 只读变量
unset name          # 删除变量

3.4 特殊变量

bash 复制代码
$0       # 脚本名称
$1-$9    # 脚本参数
$#       # 参数个数
$*       # 所有参数
$@       # 所有参数(推荐)
$?       # 上条命令的退出状态
$$       # 当前进程PID
$!       # 最后一个后台进程PID

3.5 字符串操作

bash 复制代码
str="Hello World"

# 字符串长度
echo ${#str}        # 11

# 子字符串
echo ${str:0:5}     # Hello

# 替换
echo ${str/World/Bash}  # Hello Bash

# 大小写转换
echo ${str^^}       # 转大写
echo ${str,,}       # 转小写

3.6 数组

bash 复制代码
# 定义数组
fruits=("Apple" "Banana" "Orange")

# 访问元素
echo ${fruits[0]}   # Apple
echo ${fruits[@]}   # 所有元素

# 数组长度
echo ${#fruits[@]}  # 3

# 遍历数组
for fruit in "${fruits[@]}"; do
    echo $fruit
done

3.7 条件判断

bash 复制代码
if [ $a -eq $b ]; then
    echo "a等于b"
elif [ $a -gt $b ]; then
    echo "a大于b"
else
    echo "a小于b"
fi

3.8 # 定义函数

bash 复制代码
greet() {
    local name=$1    # 局部变量
    echo "Hello, $name"
}

# 调用函数
greet "Alice"

# 返回值
add() {
    return $(($1 + $2))
}
add 3 5
echo $?             # 8

4 综合案例

4.1 备份脚本

bash 复制代码
#!/bin/bash
# 简单备份脚本

BACKUP_DIR="/backup"
SOURCE_DIR="/home/user"
DATE=$(date +%Y%m%d)

if [ ! -d "$BACKUP_DIR" ]; then
    mkdir -p "$BACKUP_DIR"
fi

tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE_DIR" && \
echo "备份成功完成" || echo "备份失败"

4.2 系统监控脚本

bash 复制代码
 #!/bin/bash
# 系统资源监控

echo "=== 系统监控 ==="
echo "当前时间: $(date)"
echo "主机名: $(hostname)"
echo "=== 系统负载 ==="
uptime
echo "=== 内存使用 ==="
free -h
echo "=== 磁盘空间 ==="
df -h
相关推荐
Tee xm6 分钟前
清晰易懂的 Flutter 开发环境搭建教程
linux·windows·flutter·macos·安装
不摆烂选手6 分钟前
Ubuntu之Makefile入门
linux·ubuntu·makefile·正点原子imx6ull学习笔记
大橘25 分钟前
centos8上实现lvs集群负载均衡dr模式
服务器·负载均衡·lvs
半新半旧34 分钟前
Nginx 负载均衡案例配置
运维·nginx·负载均衡
码上飞扬43 分钟前
深入探索 Linux Top 命令:15 个实用示例
linux·运维·服务器
灰色人生qwer44 分钟前
内网服务器centos7安装jdk17
java·运维·服务器
念心科道尊44 分钟前
【Csharp】Winform客户端与服务器,局域网加密字符串与文件通信
运维·服务器·c#
Goober Airy1 小时前
局域网:电脑或移动设备作为主机实现局域网访问
服务器·网络·负载均衡
Haley_1 小时前
frp 内网穿透:让云服务器成为内网服务器的“摆渡人”
服务器
zkyqss1 小时前
OpenStack Yoga版安装笔记(十七)安全组笔记
linux·笔记·openstack