目录
重定向
管道
通配符和通配符
常用表达
变量扩展和环境变量
否定
算术运算
比较
条件执行
条件语句
循环
函数
数组
过程控制和管理
文件系统操作
文件和文本操作
权限
字符串操作、搜索和比较
网络
SSH 和加密
系统信息、维护和管理
用户输入
命令行编辑
文本编辑
作业控制
用户和组管理
调试和故障排除
各种各样的
首页 运维 nginx 提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

Jun 25, 2023 pm 03:02 PM
linux 命令行 bash

本指南将带领您去探索Linux和Bash符号与命令的广阔世界。我们将覆盖各种主题,比如文件系统导航、文本处理、网络、系统管理等,并为每个命令提供实际示例。无论你是经验丰富的Linux用户还是刚刚入门,本指南都能帮助你提升命令行技能,在日常工作中变得更加高效。所以打开你的终端,让我们开始吧!

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

重定向

Bash 最基本但最强大的功能之一是能够重定向命令的输入和输出。以下是一些可用于重定向的符号:

  • >:将命令的输出重定向到文件,如果文件已存在则覆盖其内容。例如,ls > linuxmi.txt将命令的输出写入ls名为linuxmi.txt.
  • >>:将命令的输出重定向到文件,如果文件已存在,则将其附加到文件末尾。例如,echo "Hello, world!www.linuxmi.com" >> linuxmi.txt将附加字符串“Hello, world!www.linuxmi.com” 到文件末尾。
  • <:将命令的输入从键盘改为从文件中获取。例如,sort < linuxmi.txt将对 linuxmi.txt 的内容进行排序。
  • 2>:用于将命令的错误输出重定向到文件。
  • 2>>:用于将命令的错误输出附加到文件。
  • &>:用于将命令的输出和错误输出都重定向到文件。
  • &>>:用于将命令的输出和错误输出附加到文件。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

管道

可以使用管道将多个命令串联在一起,使其中一个命令的输出成为另一个命令的输入。管道的符号是|。以下是一个例子:

ls -l | grep "linuxmi"
登录后复制

此命令以长格式 ( ) 列出当前目录的内容ls -l,然后将输出传递给grep命令,命令在输出中搜索字符串“linuxmi”。

  • tee:用于拆分命令的输出并将其发送到文件和标准输出。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

通配符和通配符

Bash 支持称为通配符的强大功能,它允许您使用通配符来匹配文件名模式。以下是 globbing 中最常用的一些符号:

  • *: 匹配文件名中任意数量的字符。例如,ls *.txt将列出当前目录中所有以.txt.
  • ?: 匹配文件名中的任何单个字符。例如,ls file?.txt将列出当前目录中所有以 开头file且后面只有一个字符的文件,后跟.txt.
  • [ ]: 匹配一组字符中的任何一个。例如,ls file[123].txt将列出当前目录中以、或开头file和结尾的所有文件,后跟.123.txt

常用表达

  • grep:用于在文件或流中搜索模式。
  • sed:用于对文件或流执行文本转换。
  • awk:用于图形扫描和处理。
  • egrep:用于扩展的正则表达式。
  • fgrep:用于固定字符串正则表达式。
  • regex:使用特殊字符和运算符指定文本模式的符号。

变量扩展和环境变量

  • $:用于引用变量的值。
  • export:用于在 Bash 中创建或修改环境变量。
  • ${}:用于进行变量扩展。
  • $(()):用于进行算术展开。
  • env:用于显示当前环境变量。
  • echo:用于显示环境变量的文本或值。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

通配符和通配符

  • *: 匹配文件名中任意数量的字符。
  • ?: 匹配文件名中的任何单个字符。

否定

  • !:与其他命令结合使用,执行取反。

算术运算

  • +:算术表达式中的加法运算符。例如,echo $((2+3))将输出5.
  • -:算术表达式中的减法运算符。例如,echo $((16-5))将输出11.
  • *:算术表达式中的乘法运算符。例如,echo $((4*5))将输出20.
  • /: 算术表达式中的除法运算符。例如,echo $((20/2))将输出10.
  • $((expression)):用于在 Bash 中执行算术运算。例如,echo $((2 + 6))将打印值 8。
  • expr:用于执行算术运算。

提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

比较

  • ==:用于比较条件表达式中两个值是否相等。例如,if [ "$name" == "linuxmi" ]; then echo "Hello, linuxmi!"; fi将输出“Hello, linuxmi!” 如果变量的name值为“linuxmi”。
  • !=:用于比较条件表达式中的两个值是否不相等。例如,if [ "$name" != "linuxmi" ]; then echo "You're not linuxmi!"; fi将在变量name的值不为“John”输出“You’re not linuxmi!”。

条件执行

  • &&:用于仅在前一个命令成功执行时执行后续命令。例如,command1 && command2 会仅在 command1 成功执行后才执行command2。
  • ||:用于仅在前一个命令失败时执行后续命令。例如,command1 || command2会仅在 command1 失败后才执行 command2。

条件语句

  • if:用于检查条件是否为真并相应地执行命令。例如,if [[ $foo == "bar" ]]; then echo "foo is bar"; fi将检查变量是否foo等于“bar”,如果为真则打印“foo is bar”。
  • elifif:如果语句中的先前条件为假,则用于检查其他条件。例如,if [[ $foo == "bar" ]]; then echo "foo is bar"; elif [[ $foo == "baz" ]]; then echo "foo is baz"; else echo "foo is something else"; fi将检查是否foo等于“bar”并在为真时打印“foo is bar”,否则检查是否foo等于“baz”并在为真时打印“foo is baz”,最后打印“foo is something else”如果前面两个条件都为假。
  • [[ ]]:用于在 Bash 中执行条件测试。
  • case:用于将变量与模式列表进行匹配并相应地执行命令。例如:
case $fruit inapple)echo "It's an apple";;banana)echo "It's a banana";;*)echo "It's something else";;esac
登录后复制

将检查变量的值fruit,如果等于“apple”则打印“It’s an apple”,如果等于“banana”则打印“It’s a banana”,对于任何其他值则打印“It’s something else”。

循环

  • for: 用于创建一个遍历项目列表的循环。例如,for fruit in apple banana orange; do echo $fruit; done将在不同的行中输出“apple”、“banana”和“orange”。
  • while:用于创建一个循环,只要条件为真,该循环就会继续执行命令。例如,while true; do echo "Hello"; sleep 1; done会重复输出“Hello”,直到脚本被中断。
  • until:用于执行命令,直到条件为真。

函数

  • function:用于在 Bash 中定义一个函数。例如,function hello { echo "Hello, $1!"; }定义一个名为hello的函数,它接受一个参数并打印“Hello,”后跟参数。
  • $1, $2, 等:用于指代传递给函数的第一个、第二个、第三个等参数。例如,在上面定义的函数中hello,$1指的是传递给函数的第一个参数。

数组

  • []:用于在 Bash 中定义一个数组。例如,my_array=(apple banana orange)定义一个名为my_array“apple”、“banana”和“orange”的数组。
  • ${array[@]}:用于引用 Bash 中数组中的所有元素。例如,echo ${my_array[@]}将在一行中输出“apple banana orange”。

过程控制和管理

  • &:用于在后台运行命令。
  • ctrl-c:用于终止正在运行的命令。
  • ctrl-z:用于暂停正在运行的命令。
  • ps:用于显示有关正在运行的进程的信息。
  • kill:用于终止正在运行的进程。
  • nohup:用于在后台运行命令,即使终端已关闭。
  • nice:用于设置进程的优先级。
  • renice:用于修改已经运行的进程的优先级。

文件系统操作

  • cp:用于复制文件。
  • mv:用于移动或重命名文件。
  • rm:用于删除文件。
  • mkdir:用于创建目录。
  • rmdir:用于删除目录。
  • ln:用于创建文件或目录之间的链接。

文件和文本操作

  • head: 用于显示文件的前几行。
  • tail:用于显示文件的最后几行。
  • sort:用于按字母或数字对文本行进行排序。
  • uniq:用于删除重复的文本行。
  • cut:用于从文本行中提取特定的列或字段。
  • paste:用于合并来自多个文件的行。

权限

  • chmod:用于更改文件和目录的权限。
  • chown:用于更改文件或目录的所有者。
  • chgrp:用于更改文件或目录的组。
  • umask:用于设置新建文件和目录的默认权限。

字符串操作、搜索和比较

  • cut:用于从文件或流中提取特定列。
  • tr:用于翻译或删除字符。
  • sort:用于对文本行进行排序。
  • uniq:用于从文件或流中删除重复行。
  • grep:用于在文件或流中搜索模式。
  • sed:用于对文件或流执行文本转换。
  • awk:用于图形扫描和处理。
  • diff: 用于逐行比较两个文件。
  • cmp:用于逐字节比较两个文件。

网络

  • ping:用于测试与网络主机的连接。
  • curl:用于向服务器传输数据或从服务器传输数据。
  • wget:用于从互联网下载文件。
  • ssh:用于安全地连接到远程计算机。
  • nslookup:用于查询 DNS 服务器以将主机名解析为 IP 地址。
  • ifconfig:用于显示和配置网络接口。
  • netstat:用于显示网络统计信息和活动连接数。

SSH 和加密

  • ssh-keygen:用于生成和管理用于安全远程访问的 SSH 密钥。
  • scp:用于通过 SSH 连接在系统之间安全地传输文件。
  • openssl:用于加密功能,例如生成和管理 SSL/TLS 证书、加密和解密。
  • gpg:用于加密、解密和数字签名验证。

系统信息、维护和管理

  • sudo:用于运行具有提升权限的命令。
  • su:用于切换到不同的用户帐户。
  • systemctl:用于管理基于 systemd 的 Linux 发行版中的系统服务。
  • uptime:用于显示系统运行了多长时间。
  • journalctl:用于查看系统日志。
  • fdisk:用于创建和操作磁盘分区。
  • mount:用于在系统上挂载文件系统。
  • top:用于显示系统资源使用情况。
  • htoptop:提供实时系统监控和资源使用信息的更高级版本。
  • ps:用于显示有关正在运行的进程的信息。
  • df:用于显示磁盘空间使用情况。
  • du:用于显示文件或目录的大小。
  • apt-get:用于安装、删除和更新软件包的包管理工具。
  • dpkg:用于安装和管理软件包的包管理工具。
  • shutdown:用于关闭或重启系统。
  • free:用于显示系统内存使用情况。
  • uname:用于显示内核版本、主机名等系统信息。
  • lscpu:用于显示CPU信息。
  • lsusb:用于显示系统连接的USB设备。
  • nmon:用于显示详细的系统性能信息,包括CPU、内存、磁盘I/O和网络使用情况。
  • sar:用于收集和报告一段时间内的系统性能数据。
  • lshw:用于显示系统硬件信息。
  • dmidecode:用于显示系统的BIOS和硬件信息。
  • lsblk:用于显示系统中块设备(如硬盘)的信息。
  • lspci:用于显示系统连接的PCI设备信息。
  • lsusb:用于显示系统连接的USB设备信息。

用户输入

  • read:用于从命令行读取用户输入。
  • select:用于向用户显示选项菜单。

命令行编辑

  • ctrl-a:用于将光标移动到行首。
  • ctrl-e:用于将光标移动到行尾。
  • ctrl-k:用于删除从光标位置到行尾的文本。
  • ctrl-u:用于删除从光标位置到行首的文本。

文本编辑

  • nano:一个简单的命令行文本编辑器。
  • vi或vim:具有许多功能的更高级的文本编辑器。
  • cat:用于在终端上显示文件的内容。
  • head: 用于显示文件的前几行。
  • tail:用于显示文件的最后几行。

作业控制

  • jobs:用于显示后台作业列表。
  • fg:用于将后台作业带到前台。
  • bg:用于将暂停或停止的作业移至后台。
  • kill:用于终止正在运行的进程。

用户和组管理

  • useradd:用于创建新的用户帐户。
  • usermod:用于修改现有用户帐户。
  • userdel:用于删除用户帐户。
  • groupadd:用于创建新的用户组。
  • groupmod:用于修改已有的用户组。
  • groupdel:用于删除用户组。
  • passwd:用于更改用户密码。

调试和故障排除

  • strace:用于跟踪进程发出的系统调用和信号。
  • ltrace:用于跟踪进程进行的库调用。
  • gdb: 一个强大的调试器,用于调试 C 和 C++ 程序。
  • tcpdump:用于捕获和分析网络流量。
  • wireshark: 用于分析网络流量的基于 GUI 的工具。ellaneous
  • echo:用于在终端上显示消息。
  • printf:用于格式化和显示数据。
  • date:用于显示或设置系统日期和时间。
  • tar:用于创建或提取压缩档案。

各种各样的

  • cal:用于显示日历。
  • date:用于显示或修改系统日期和时间。
  • sleep:用于将脚本或命令的执行延迟指定的时间量。
  • tee:用于将输出重定向到屏幕和文件。
  • history:用于显示当前shell会话的命令历史。
  • echo:用于将文本打印到终端或输出到文件。

请注意,本指南中所述的符号分类并非绝对,而是基于一种可能的分类方式。某些符号可能适用于多个类别,并且可能存在一些重叠或重复。符号列表并非完全详尽,可能因Linux发行版和版本的差异而有所不同。我们鼓励读者参考其系统文档获取更多信息。这份指南的目的是提供Linux和Bash标记和命令的综合概述,但并非权威资源。

感谢阅读我们关于Linux和Bash符号和命令的全面指南。希望您发现本指南对掌握命令行非常有帮助。为了及时了解有关在日常工作中使用这些命令的最新技巧、技巧和最佳实践,请务必长期关注Linux迷www.linuxmi.com以获取未来的文章。我们将提供详细的示例和实例,以协助您成为更加精通的Linux用户和命令行专员。

以上是提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

centos和ubuntu的区别 centos和ubuntu的区别 Apr 14, 2025 pm 09:09 PM

CentOS 和 Ubuntu 的关键差异在于:起源(CentOS 源自 Red Hat,面向企业;Ubuntu 源自 Debian,面向个人)、包管理(CentOS 使用 yum,注重稳定;Ubuntu 使用 apt,更新频率高)、支持周期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社区支持(CentOS 侧重稳定,Ubuntu 提供广泛教程和文档)、用途(CentOS 偏向服务器,Ubuntu 适用于服务器和桌面),其他差异包括安装精简度(CentOS 精

Centos停止维护2024 Centos停止维护2024 Apr 14, 2025 pm 08:39 PM

CentOS将于2024年停止维护,原因是其上游发行版RHEL 8已停止维护。该停更将影响CentOS 8系统,使其无法继续接收更新。用户应规划迁移,建议选项包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系统安全和稳定。

docker desktop怎么用 docker desktop怎么用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。

docker原理详解 docker原理详解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

centos如何安装 centos如何安装 Apr 14, 2025 pm 09:03 PM

CentOS 安装步骤:下载 ISO 映像并刻录可引导媒体;启动并选择安装源;选择语言和键盘布局;配置网络;分区硬盘;设置系统时钟;创建 root 用户;选择软件包;开始安装;安装完成后重启并从硬盘启动。

CentOS上GitLab的备份方法有哪些 CentOS上GitLab的备份方法有哪些 Apr 14, 2025 pm 05:33 PM

CentOS系统下GitLab的备份与恢复策略为了保障数据安全和可恢复性,CentOS上的GitLab提供了多种备份方法。本文将详细介绍几种常见的备份方法、配置参数以及恢复流程,帮助您建立完善的GitLab备份与恢复策略。一、手动备份利用gitlab-rakegitlab:backup:create命令即可执行手动备份。此命令会备份GitLab仓库、数据库、用户、用户组、密钥和权限等关键信息。默认备份文件存储于/var/opt/gitlab/backups目录,您可通过修改/etc/gitlab

centos怎么挂载硬盘 centos怎么挂载硬盘 Apr 14, 2025 pm 08:15 PM

CentOS硬盘挂载分为以下步骤:确定硬盘设备名(/dev/sdX);创建挂载点(建议使用/mnt/newdisk);执行mount命令(mount /dev/sdX1 /mnt/newdisk);编辑/etc/fstab文件添加永久挂载配置;卸载设备使用umount命令,确保没有进程使用设备。

centos停止维护后怎么办 centos停止维护后怎么办 Apr 14, 2025 pm 08:48 PM

CentOS 停止维护后,用户可以采取以下措施应对:选择兼容发行版:如 AlmaLinux、Rocky Linux、CentOS Stream。迁移到商业发行版:如 Red Hat Enterprise Linux、Oracle Linux。升级到 CentOS 9 Stream:滚动发行版,提供最新技术。选择其他 Linux 发行版:如 Ubuntu、Debian。评估容器、虚拟机或云平台等其他选项。

See all articles