当前位置:

首页 > 编程开发 > 提升你的命令行技能:Bash 和 Linux 符号与命令的完整指南

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

在本指南中,我们将探索Linux和Bash符号与命令的广阔世界。从文件系统导航到文本处理、网络、系统管理等,我们将涵盖各种主题,并提供每个命令的实际示例。无论你是经验丰富的Linux用户还是刚刚入门,本指南都能帮助你提升命令行技能,在日常工作中变得更加高效。所以打开你的终端,让我们开始吧!重定向Bash最基本但最强大的功能之一是能够重定向命令的输入和输出。以下是一些可用于重定向的符号:>:将命令的输出重定向到文件,如果文件已存在则覆盖其内容。例如,ls>linuxmi.txt将命令的输出写入ls名为lin

在本指南中,我们将探索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用户和命令行专家。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发 命令行 Linux
上一篇: 美图秀秀自制头像教程
下一篇: Photoshop快捷键修改在哪里?PS2020快捷键设置方法
相关文章 更多
C++动态数组初始化怎么写?常用语句与代码示例
C++动态数组初始化怎么写?常用语句与代码示例

深入解析C++中动态数组的初始化机制,涵盖new操作符的不同用法、基本类型与类对象的初始化差异,以及为何在现代C++开发中应优先使用std::vector。

Python安装后怎么打开:使用IDLE或命令行启动解释器
Python安装后怎么打开:使用IDLE或命令行启动解释器

刚在Windows安装好Python却不知道如何启动?本文详细演示如何通过开始菜单找到并打开IDLE集成开发环境,以及如何在PowerShell或命令提示符中使用python和py命令启动交互式解释器、运行.py脚本文件。包含退出解释器的方法及常见启动问题排查,帮助初学者快速验证安装成功并开始编写代码。

Ubuntu命令行入门:打开终端并验证文件目录操作
Ubuntu命令行入门:打开终端并验证文件目录操作

本教程指导Ubuntu新手打开终端,通过pwd、ls、cd、mkdir和touch命令完成基础文件目录操作。适用于桌面版、虚拟机及WSL环境,提供从查看路径到创建测试文件的完整验证步骤,帮助读者建立命令行操作的安全意识与正确习惯。

在 Kali Linux 中验证 Hashcat 安装
在 Kali Linux 中验证 Hashcat 安装

引言 Hashcat 被广泛认为是世界上最快、最先进的密码恢复工具。它是渗透测试人员和安全专业人员武器库中的必备工具。在使用它破解哈希(hashes)之前,你必须首先确保它已在你的系统上正确安装并完全可用。 在本实验(lab)中,你将执行一系列简单的检查,以验证 Hashcat 在你的 Kali L

在 Kali Linux 上安装和验证 Gobuster
在 Kali Linux 上安装和验证 Gobuster

引言 Gobuster 是一个强大的工具,用于目录和文件暴力破解、DNS 子域暴力破解以及 S3 存储桶枚举。它是渗透测试人员和安全爱好者发现 Web 服务器上隐藏路径和资源的重要实用程序。 在本实验中,你将学习在 Kali Linux 环境中安装 Gobuster 的基本步骤。你将使用 CODE_

(G-G) Pixel 手机或将进行重要底层升级Linux 内核有望更新
(G-G) Pixel 手机或将进行重要底层升级Linux 内核有望更新

谷歌计划为Pixel7至10系列进行Linux内核重大升级,从旧版本统一跃升至Linux6.12。新内核优化了CPU调度和内存管理,有望提升流畅度、安全性与发热控制,并可能改善Pixel10的GPU性能。该更新预计随Android17QPR2年底推送,Pixel6因支持终止无缘升级。

火狐浏览器自定义主页
火狐浏览器自定义主页

火狐浏览器可通过五种方式自定义默认主页:一、设置中手动输入网址;二、用当前页面一键设为主页;三、从书签中选取;四、移动端通过新标签页模拟;五、高级用户修改about:config配置项。 想让火狐浏览器一打开就直奔你心仪的网站,而不是那个空白页或默认的官方主页?这事儿其实不难,通过浏览器内置的设置就

淘宝网页版入口查找教程
淘宝网页版入口查找教程

淘宝官方网页登录入口 对于如何找到淘宝网页版的入口,很多朋友都感到有点摸不着头脑。别急,这篇文章就来为你拆解清楚整个登录流程。官方的登录入口很明确,就在官网首页的左上角。 淘宝网页版入口位于官网首页左上角,点击“亲,请登录”即可跳转至统一的验证页面。登录支持密码、短信验证码和手机APP扫码三种方式,

WMV转MP4方法
WMV转MP4方法

WMV视频压缩指南:如何高效“瘦身”释放硬盘空间 在日常处理和收藏视频时,不少人会发现一个有趣的现象:WMV格式的文件,在画质相当的情况下,体积往往比MP4更小巧。这原本是它的优势,但架不住日积月累,一堆WMV文件同样会悄悄吃掉大量的硬盘空间。因此,如何给WMV视频“减减肥”,就成了优化存储、提升效

打字鸭官方网址登录入口
打字鸭官方网址登录入口

打字鸭官方网址是https://www.daziya.com/,提供科学分层课程、沉浸式交互体验、精准数据追踪、灵活教学角色及稳定轻量技术架构。 提到在线打字练习,很多朋友第一时间会问:打字鸭的官方入口到底在哪?不用再四处搜索了,它的直达地址就在这里。 https://www.daziya.com/

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。