Linux基础命令

文章目录

  • 什么是linux?
  • 一、Linux基本命令
    • 1.ls
    • 2.pwd
    • 3.cd
    • 4.touch
    • 5.mkdir
    • 6.rm && rmdir
    • 7.man
    • 8.cp
    • 9.mv
    • 10.cat
    • 11.more
    • 12.less
    • 13.head
    • 14.tail
    • 15.date
    • 16.cal
    • 17.find
    • 18.which
    • 19.whereis
    • 20.alias
    • 21.grep
    • 22.zip/unzip && rzsz
    • 23.bc
    • 24.uname -r
  • 二、shell命令及运行原理

什么是linux?

Linux 是一种开源的类 Unix 操作系统内核,同时也是基于该内核构建的操作系统生态系统的统称


1. 内核与操作系统

  • 内核(Kernel)
    Linux 的核心是内核,负责管理硬件资源(如 CPU、内存、磁盘)、进程调度和系统安全。
    其设计遵循 POSIX 标准(一种类 Unix 系统的兼容性规范),支持多任务、多用户操作。
    操作系统}= 内核 + 系统工具+ 应用程序

  • 操作系统发行版(Distribution)
    用户实际使用的 "Linux" 通常指 Linux 发行版(如 Ubuntu、CentOS、Debian),包含内核、软件包管理工具、图形界面(如 GNOME、KDE)及常用应用软件。


2. 开源特性

  • Linux 遵循 GPL 协议(GNU General Public License),允许用户自由使用、修改和分发源代码。
  • 社区驱动开发模式使其具备高灵活性强安全性,开发者可针对需求定制系统。

3. 技术优势

  • 稳定性:服务器领域占比超 90%(如 Web 服务器、云计算平台)。
  • 轻量化:内核模块化设计,适合嵌入式设备(如路由器、智能家电)。
  • 开发友好:提供强大的命令行工具(如 grepsed)和编程环境(支持 C/C++、Python 等)。

4. 典型应用场景

领域示例
服务器/云计算AWS、Google Cloud 底层支持
嵌入式系统智能电视、物联网设备
开发环境Docker 容器、持续集成工具
科研计算高性能计算集群(HPC)

5. 常见发行版选择建议

  • 初学者:Ubuntu(图形界面友好)
  • 服务器:CentOS 或 Debian(稳定性优先)
  • 定制化:Arch Linux(模块化设计)

一、Linux基本命令

1. ls - 列出目录内容

功能: 列出当前目录或指定目录下的文件和子目录。
常用选项:

  • -l: 长格式显示(详细信息)。
  • -a: 显示所有文件,包括隐藏文件(以.开头)。
  • -h: 以人类可读的格式显示文件大小(例如KB、MB)。

例子:

# 列出当前目录内容
ls
# 列出详细信息,包括隐藏文件
ls -la
# 列出指定目录(如/home)的内容
ls /home

2. pwd - 打印当前工作目录

功能: 显示当前所在的绝对路径。
常用选项: 无常用选项,直接使用即可。

例子:

# 显示当前目录路径
pwd

3. cd - 更改目录

功能: 切换到指定目录。
常用选项:

  • ..: 上级目录。
  • ~: 用户主目录。

例子:

# 切换到用户主目录
cd ~
# 切换到上级目录
cd ..
# 切换到指定目录(如/etc)
cd /etc

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

功能: 创建一个新空文件,或更新已有文件的访问和修改时间。
常用选项:

  • -a: 只更新访问时间。
  • -m: 只更新修改时间。

例子:

# 创建一个新文件(如test.txt)
touch test.txt
# 更新文件时间戳(如果文件存在)
touch -m existing_file.txt

5. mkdir - 创建目录

功能: 创建一个或多个新目录。
常用选项:

  • -p: 递归创建父目录(如果不存在)。

例子:

# 创建单个目录(如new_dir)
mkdir new_dir
# 递归创建目录结构(如dir1/dir2)
mkdir -p dir1/dir2

6. rmrmdir - 删除文件和目录

功能:

  • rm: 删除文件或目录(可递归删除)。
  • rmdir: 删除空目录(只能删除空目录)。
    常用选项(针对rm):
  • -r: 递归删除目录及其内容。
  • -f: 强制删除,不提示确认。

例子:

# 删除文件(如file.txt)
rm file.txt
# 递归删除目录(如dir),包括所有内容
rm -r dir
# 删除空目录(如empty_dir)
rmdir empty_dir

7. man - 显示命令手册页

功能: 查看命令的帮助手册。
常用选项: 无常用选项,直接跟命令名。

例子:

# 查看ls命令的手册
man ls

8. cp - 复制文件或目录

功能: 复制文件或目录到指定位置。
常用选项:

  • -r: 递归复制目录。
  • -i: 交互模式,覆盖前提示。

例子:

# 复制文件(如source.txt到dest.txt)
cp source.txt dest.txt
# 递归复制目录(如dir1到dir2)
cp -r dir1 dir2

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

功能: 移动文件/目录到新位置,或重命名。
常用选项:

  • -i: 交互模式,覆盖前提示。

例子:

# 重命名文件(如old.txt到new.txt)
mv old.txt new.txt
# 移动文件到指定目录(如file.txt到dir)
mv file.txt dir/

10. cat - 连接文件并打印内容

功能: 显示文件内容,或将多个文件合并输出。
常用选项:

  • -n: 显示行号。

例子:

# 显示文件内容(如file.txt)
cat file.txt
# 合并两个文件并输出
cat file1.txt file2.txt

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

功能: 分页查看文件内容(只能向下滚动)。
常用选项: 无常用选项,直接跟文件名。

例子:

# 分页查看文件(如large_file.txt)
more large_file.txt

12. less - 分页显示文件内容(更强大)

功能: 类似more,但支持向上/向下滚动和搜索。
常用选项:

  • /pattern: 在文件中搜索模式。

例子:

# 分页查看文件(如log.txt)
less log.txt
# 在less中搜索"error"
/log.txt  # 输入"/error"后按Enter

13. head - 显示文件开头部分

功能: 显示文件的前几行(默认10行)。
常用选项:

  • -n: 指定显示行数。

例子:

# 显示文件前10行(如data.txt)
head data.txt
# 显示文件前5行
head -n 5 data.txt

14. tail - 显示文件结尾部分

功能: 显示文件的最后几行(默认10行),常用于查看日志。
常用选项:

  • -n: 指定显示行数。
  • -f: 实时跟踪文件变化(常用于日志监控)。

例子:

# 显示文件最后10行(如server.log)
tail server.log
# 实时跟踪日志文件
tail -f server.log

15. date - 显示或设置系统日期和时间

功能: 显示当前日期和时间,或设置系统时间(需要权限)。
常用选项:

  • +%format: 自定义输出格式。

例子:

# 显示当前日期和时间
date
# 显示自定义格式(如年月日)
date +"%Y-%m-%d"

16. cal - 显示日历

功能: 显示当前月或指定月份的日历。
常用选项:

  • -3: 显示前月、本月、后月。
  • -y: 显示全年日历。

例子:

# 显示本月日历
cal
# 显示指定年份(如2023)的全年日历
cal -y 2023

17. find - 搜索文件

功能: 在指定目录树中搜索文件,基于名称、类型等条件。
常用选项:

  • -name: 按文件名搜索。
  • -type: 按文件类型搜索(如f为文件,d为目录)。

例子:

# 在当前目录搜索名为"config.txt"的文件
find . -name "config.txt"
# 在/home目录搜索所有目录
find /home -type d

18. which - 显示命令的完整路径

功能: 查找命令的绝对路径(在PATH环境变量中)。
常用选项: 无常用选项。

例子:

# 查找ls命令的路径
which ls

19. whereis - 定位命令的二进制、源文件和手册页

功能: 显示命令的二进制文件、源文件(如果存在)和手册页位置。
常用选项:

  • -b: 只显示二进制文件。
  • -m: 只显示手册页。

例子:

# 查找gcc命令的相关文件
whereis gcc

20. alias - 创建命令别名

功能: 为命令创建简短的别名(仅在当前会话有效)。
常用选项: 无常用选项,直接定义别名。

例子:

# 创建别名(如ll代替ls -l)
alias ll='ls -l'
# 使用别名
ll

21. grep - 搜索文本模式

功能: 在文件或输入中搜索匹配的文本模式(支持正则表达式)。
常用选项:

  • -i: 忽略大小写。
  • -r: 递归搜索目录。

例子:

# 在文件中搜索"error"(忽略大小写)
grep -i "error" log.txt
# 递归搜索目录中的"pattern"
grep -r "pattern" /path/to/dir

22. zip/unziprz/sz - 压缩解压缩和文件传输

功能:

  • zip/unzip: 压缩和解压缩文件(.zip格式)。
  • rz/sz: 用于通过串行端口传输文件(常用于终端仿真器)。
    常用选项(针对zip/unzip):
  • -r: 递归压缩目录。

例子:

# 压缩文件(如压缩dir为archive.zip)
zip -r archive.zip dir
# 解压缩文件
unzip archive.zip
# 使用rz接收文件(需要终端支持)
rz
# 使用sz发送文件(如file.txt)
sz file.txt

23. bc - 任意精度计算器

功能: 执行数学计算(支持浮点和高精度)。
常用选项:

  • -l: 加载数学库(支持高级函数)。

例子:

# 启动计算器交互模式
bc
# 计算表达式(如2+2)
echo "2+2" | bc
# 使用数学库计算平方根
echo "sqrt(16)" | bc -l

24. uname -r - 显示内核版本

功能: uname命令显示系统信息,-r选项指定显示内核版本。
常用选项:

  • -r: 只显示内核版本。

例子:

# 显示当前内核版本
uname -r

二、shell命令及运行原理

Shell 命令基础概念

Shell 是用户与操作系统内核交互的接口,通过命令行界面(CLI)接收用户输入的命令并执行。常见的 Shell 包括 Bash、Zsh、Fish 等,其中 Bash 是 Linux 和 macOS 的默认 Shell。

Shell 命令运行流程

  1. 输入解析
    用户在终端输入命令后,Shell 会按空格分割参数,识别命令名称(如 ls)和选项(如 -l)。特殊字符(如 *|)会被 Shell 优先处理。

  2. 命令查找
    Shell 通过 PATH 环境变量定义的路径列表查找可执行文件。例如输入 ls,Shell 会依次检查 /bin/ls/usr/bin/ls 等路径。

  3. 进程创建与执行
    找到命令后,Shell 调用 fork() 创建子进程,子进程通过 exec() 系列函数加载命令程序并替换当前进程。父进程(Shell)默认会等待子进程结束(同步执行)。

  4. 输入输出重定向
    符号 ><| 会由 Shell 处理:

    • > 将命令输出重定向到文件(覆盖)。
    • 2> 重定向错误输出。
    • | 将前一个命令的输出作为后一个命令的输入。

常用 Shell 命令示例

  • 文件操作

    ls -l /home       # 列出目录详情
    cp file1 file2    # 复制文件
    grep "text" file  # 搜索文件内容
    
  • 进程管理

    ps aux            # 查看所有进程
    kill -9 PID       # 强制终止进程
    nohup command &   # 后台运行并忽略挂断信号
    
  • 权限控制

    chmod 755 script.sh  # 设置文件权限
    sudo command         # 以超级用户权限执行
    

Shell 脚本执行原理

  1. 脚本解析
    脚本首行 #!/bin/bash(Shebang)指定解释器。系统调用解释器执行脚本内容。

  2. 变量与环境
    脚本中的变量默认为局部变量,export VAR 可设为环境变量,子进程会继承父进程的环境变量。

  3. 执行控制

    if [ -f file ]; then   # 条件判断
      echo "File exists."
    fi
    

高级特性

  • 命令替换

    echo "Today is $(date)"  # 将 `date` 的输出嵌入字符串
    
  • 后台任务

    command &                # 后台运行
    jobs                     # 查看后台任务
    fg %1                    # 将任务 1 切换到前台
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

取加若则_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值