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 - 列出目录内容

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

2.1.2 cd - 切换目录

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

2.1.3 pwd - 显示当前工作目录

pwd  # 打印当前目录的完整路径

2.1.4 mkdir - 创建目录

mkdir dirname      # 创建单个目录
mkdir -p dir1/dir2 # 创建多级目录

2.1.5 rm - 删除文件或目录

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

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

mv file1 file2     # 重命名
mv file1 dir/      # 移动文件

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

touch file.txt  # 创建空文件或更新访问时间

2.2 文件查看和编辑

2.2.1 cat - 查看文件内容

cat file.txt      # 显示文件内容
cat -n file.txt   # 显示行号

2.2.2 less/more - 分页查看文件

less file.txt  # 可前后翻页
more file.txt  # 只能向下翻页

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

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

2.2.4 grep - 文本搜索

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

2.3 系统信息

2.3.1 ps - 查看进程

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

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

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

2.3.3 free - 查看内存使用

free -h      # 以人类可读格式显示内存信息

2.3.4 df - 查看磁盘空间

df -h        # 显示磁盘使用情况(人类可读)

2.3.5 uname - 显示系统信息

uname -a     # 显示所有系统信息

2.4 网络相关

2.4.1 ping - 测试网络连接

ping example.com  # 测试到example.com的连接

2.4.2 ifconfig/ip - 网络接口配置

ifconfig      # 显示网络接口信息(较旧)
ip addr       # 显示网络接口信息(新版)

2.4.3 netstat/ss - 网络统计

netstat -tuln # 显示监听端口(较旧)
ss -tuln      # 显示监听端口(新版)

2.4.5 wget/curl - 下载工具

wget http://example.com/file  # 下载文件
curl -O http://example.com/file

2.5 权限管理

2.5.1 chmod - 修改文件权限

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

2.5.2 chown - 修改文件所有者

chown user:group file.txt  # 修改所有者和组

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

sudo command  # 以root权限执行命令

2.6 压缩和解压

2.6.1 tar - 打包和解包

tar -czvf archive.tar.gz dir/  # 创建gzip压缩包
tar -xzvf archive.tar.gz       # 解压gzip包

2.6.2 zip/unzip - ZIP压缩/解压

zip archive.zip file1 file2   # 创建zip压缩包
unzip archive.zip             # 解压zip包

2.6.3 gzip/gunzip - GZIP压缩/解压

gzip file.txt        # 压缩文件(生成file.txt.gz)
gunzip file.txt.gz   # 解压文件

2.7 其他实用命令

2.7.1 find - 查找文件

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

2.7.3 which/whereis - 查找命令位置

which ls      # 显示ls命令的路径
whereis ls    # 显示命令及其手册页位置

2.7.4 alias - 创建命令别名

alias ll='ls -alF'  # 创建ll别名

2.7.5 history - 查看命令历史

history       # 显示命令历史
!n            # 执行历史记录中第n条命令

2.7.6 man - 查看命令手册

man ls        # 查看ls命令的手册页

2.7.7 echo - 输出文本

echo "Hello"  # 输出文本
echo $PATH    # 输出环境变量

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

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,指定解释器

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

3.2 运行方式

chmod +x script.sh  # 添加执行权限
./script.sh         # 直接执行bash script.sh      # 指定解释器执行
sh script.sh        # 使用 sh 解释器执行
source script.sh    # 在当前 shell 环境中执行

3.3 变量定义与使用

name="Alice"        # 定义变量
echo $name          # 使用变量
echo ${name}        # 推荐使用大括号readonly PI=3.14    # 只读变量
unset name          # 删除变量

3.4 特殊变量

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

3.5 字符串操作

str="Hello World"# 字符串长度
echo ${#str}        # 11# 子字符串
echo ${str:0:5}     # Hello# 替换
echo ${str/World/Bash}  # Hello Bash# 大小写转换
echo ${str^^}       # 转大写
echo ${str,,}       # 转小写

3.6 数组

# 定义数组
fruits=("Apple" "Banana" "Orange")# 访问元素
echo ${fruits[0]}   # Apple
echo ${fruits[@]}   # 所有元素# 数组长度
echo ${#fruits[@]}  # 3# 遍历数组
for fruit in "${fruits[@]}"; doecho $fruit
done

3.7 条件判断

if [ $a -eq $b ]; thenecho "a等于b"
elif [ $a -gt $b ]; thenecho "a大于b"
elseecho "a小于b"
fi

3.8 # 定义函数

greet() {local name=$1    # 局部变量echo "Hello, $name"
}# 调用函数
greet "Alice"# 返回值
add() {return $(($1 + $2))
}
add 3 5
echo $?             # 8

4 综合案例

4.1 备份脚本

#!/bin/bash
# 简单备份脚本BACKUP_DIR="/backup"
SOURCE_DIR="/home/user"
DATE=$(date +%Y%m%d)if [ ! -d "$BACKUP_DIR" ]; thenmkdir -p "$BACKUP_DIR"
fitar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE_DIR" && \
echo "备份成功完成" || echo "备份失败"

4.2 系统监控脚本

 #!/bin/bash
# 系统资源监控echo "=== 系统监控 ==="
echo "当前时间: $(date)"
echo "主机名: $(hostname)"
echo "=== 系统负载 ==="
uptime
echo "=== 内存使用 ==="
free -h
echo "=== 磁盘空间 ==="
df -h

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome开发者工具实战:调试三剑客

在前端开发的世界里,Chrome开发者工具就是我们的瑞士军刀,它集成了各种强大的功能,帮助我们快速定位和解决代码中的问题。今天,就让我们一起来看看如何使用Chrome开发者工具中的“调试三剑客”:断点调试、调用栈跟踪和…

函数柯里化(Currying)介绍(一种将接受多个参数的函数转换为一系列接受单一参数的函数的技术)

文章目录 柯里化的特点示例普通函数柯里化实现使用Lodash进行柯里化 应用场景总结 函数柯里化(Currying)是一种将接受多个参数的函数转换为一系列接受单一参数的函数的技术。换句话说,柯里化将一个多参数函数转化为一系列嵌套的单参数函数。 …

torch.nn中的非线性激活介绍合集——Pytorch中的非线性激活

1、nn.ELU 基本语法: class torch.nn.ELU(alpha1.0, inplaceFalse)按元素应用 Exponential Linear Unit (ELU) 函数。 论文中描述的方法:通过指数线性单元 (ELU) 进行快速准确的深度网络学习。 ELU 定义为…

Databend Cloud Dashboard 全新升级:直击痛点,释放数据价值

自 Databend Cloud 上线以来,我们一直致力于为用户提供高效的数据处理与可视化体验。早期,我们在工作区的“图表”区域推出了轻量级可视化功能,支持积分卡、饼图、柱状图和折线图四种展示方式。这些功能简单易用,基本满足了用户对…

Android Fresco 框架扩展模块源码深度剖析(四)

Android Fresco 框架扩展模块源码深度剖析 一、引言 在 Android 开发领域,图片处理一直是一个重要且具有挑战性的任务。Fresco 作为 Facebook 开源的强大图片加载框架,在图片的加载、缓存和显示等方面已经提供了非常完善的功能。然而,为了满…

蓝桥杯最后十天冲刺 day 2 双指针的思想

双指针思想介绍 双指针(Two Pointers)是一种在数组或链表等线性结构中常用的算法技巧,通过使用两个指针(索引或引用)以不同的速度或方向遍历数据结构,从而高效解决问题。双指针通常用于优化暴力解法&#…

Axure 使用笔记

1.Axure如何制作页面弹窗 https://blog.csdn.net/SDTechnology/article/details/143948691 2.axure 怎么点击按钮打开新页面 (1)新建交互 (2)单击是触发 (3)选择打开链接 (4)选择…

STM32实现一个简单电灯

新建工程的步骤 建立工程文件夹,Keil中新建工程,选择型号工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组…

html5炫酷图片悬停效果实现详解

html5炫酷图片悬停效果实现详解 这里写目录标题 html5炫酷图片悬停效果实现详解项目介绍技术栈核心功能实现1. 页面布局2. 图片容器样式3. 炫酷悬停效果缩放效果倾斜效果模糊效果旋转效果 4. 悬停文字效果5. 性能优化6. 响应式设计 项目亮点总结 项目介绍 本文将详细介绍如何使…

Playwright与Browser Use:领略AI赋能UI自动化测试的魔法魅力

目录 Browser Use是什么? Playwright简介 框架设计的核心目标与原则 Playwright 在 UI 自动化测试中的优势 如何高效拦截错误 实现视频录制 UI自动化框架设计的挑战 测试框架的结构与模块化设计 自动化测试不是银弹 走进Browser Use 横空出世的背景与意义…

Uniapp 实现微信小程序滑动面板功能详解

文章目录 前言一、功能概述二、实现思路三、代码实现总结 前言 Uniapp 实现微信小程序滑动面板功能详解 一、功能概述 滑动面板是移动端常见的交互组件,通常用于在页面底部展开内容面板。本文将介绍如何使用 Uniapp 开发一个支持手势滑动的底部面板组件&#xff0…

【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(12)

1.问题描述: pushdeviceid的长度是固定的吗? 解决方案: 在鸿蒙系统中,设备ID的长度是固定的。 2.问题描述: 通过REST API三方推送IM类消息,如何实现应用处于前台时不展示三方推送通知。 解决方案&…

【小兔鲜】day02 Pinia、项目起步、Layout

【小兔鲜】day02 Pinia、项目起步、Layout 1. Pinia2. 添加Pinia到Vue项目3. 案例:Pinia-counter基础使用3.1 Store 是什么?3.2 应该在什么时候使用 Store? 4. Pinia-getters和异步action4.1 getters4.2 action如何实现异步 1. Pinia Pinia 是 Vue 的专…

Android学习之计算器app(java + 详细注释 + 源码)

运行结果: 基础的四则运算: 可能会出现的问题以及解决方法: 问题1:出现多个操作符。 例子:12 解决方法: 在用户点击操作符之后,去检查之前的最后一位,如果最后一位也是操作符的话…

GMap.NET + WPF:构建高性能 ADS-B 航空器追踪平台

ADS-B 简介 ADS - B(Automatic Dependent Surveillance - Broadcast,广播式自动相关监视)是一种先进的航空监视技术。它依靠飞机上的机载设备,自动收集诸如飞机的位置、高度、速度、航向等关键数据,并周期性地以广播的…

关于testng.xml无法找到类的问题

问题:testng.xml添加测试类的时候飘红 解决办法: 1.试图通过自动生成testng.xml插件去解决,感觉也不是这个问题,没有尝试; 2.以为是创建包的方式不对,重新删除后新建--还是找不到 想新建类的时候发现从m…

数据在内存中存储(C语言)

文章目录 前言一、整数在内存中的存储1.1 计算机存储数据的基本单位示例代码 1.2 无符号整数的存储1.3 有符号整数的存储(补码)示例代码 二、大小端字节序和字节序判断2.1 什么是大小端?示例代码 2.2 为什么会有大小端?2.3 字节序…

Python爬虫第2节-网页基础和爬虫基本原理

目录 一、网页基础 1.1 网页的组成 1.2 网页的结构 1.3 节点树及节点间的关系 1.4 选择器 二、爬虫的基本原理 2.1 爬虫概述 2.2 能抓怎样的数据 2.3 JavaScript 渲染页面 一、网页基础 使用浏览器访问网站时,我们会看到各式各样的页面。你是否思考过&…

python-leetcode 64.在排序数组中查找元素的第一个和最后一个位置

题目: 给一个按照非递减顺序排列的整数数组nums,和一个目标值target,请找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值target,返回[-1,-1] 方法一:二分查找 直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次…

分享一些新版GPT-4o使用方式!能多模态生图!

目前GPT-4o的整体测评,真的很惊艳。 不知道又有多少人因为OpenAI的这次更新而失业,当然只要AI用得好,会有更多人因之而受益!很多人表示不知道怎么用,对于门外汉来说,4o似乎有点高端。 今天就给大家介绍几…