> 技术文档 > 【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

 

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

🔥个人主页 🔥

😈所属专栏😈

前言 

        本文主要主要是快捷的学习常用的linux命令,本脚本中主要涉及到了60个常用的linux命令,包含文件类,系统管理类,网络类,文本处理类,压缩与归档类,不需要像浏览文章那样复杂且难以找到需要的命令。  
        本脚本采用shell编程中的图形化界面工具Dialog来编写,可以像使用软件一样学习linux命令,而且安装简单,占用空间极小,可帮助你快速的学习你想要的linux命令。

        本项目开源,大家可以自行下载使用[注:本项目刚刚开发,可能存在某些bug,如有问题请联系邮箱 rqtzfuntop@163.com]

【GitHup】https://github.com/Rqtzbot/linuxcmd

【Gitee】https://gitee.com/rqtzbot/linuxcmd


视频预览

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

仓库结构

├── configure.sh #脚本的配置文件 ├── core #核心文件 │ ├── bash │ │ ├── File.sh #外部文件函数 │ │ ├── lcmd.sh #脚本执行文件 │ │ ├── Net.sh #外部文件函数 │ │ ├── System.sh #外部文件函数 │ │ ├── Text.sh #外部文件函数 │ │ └── Zip.sh #外部文件函数 │ └── command #存储命令的txt文件 │ ├── File │ ├── Net │ ├── System │ ├── Text │ └── zip ├── image #图像文件 │ ├── 2025-06-27-21-31-51.png │ ├── 2025-06-27-21-34-06.png │ ├── 2025-06-28_12-19.png │ ├── 2025-06-28_12-45.png │ ├── 3.png │ ├── 5.png │ ├── 7.png │ ├── 9.png │ └── 图片.png ├── README.md #仓库介绍 └── update.sh #更新文件

安装配置

首先需要安装git

sudo apt install git

从远程仓库中安装脚本,将安装包放在主目录

cd /home/$USER && git clone https://gitee.com/rqtzbot/linuxcmd.git

进入安装包中并赋予脚本权限

cd /home/$USER/linuxcmd sudo chmod +x configure.sh 

执行脚本配置

./configure.sh

重启终端后输入以下命令开始使用

lcmd

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

使用方法

ctrl+c可以快捷返回上一级,在最高级选择退出即可关闭程序

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

搜索

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

在输入框中输入linux命令即可搜索,若返回为空则没有,若返回路径即为存在

输出

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

  1. File为文件类
  2. system为系统管理类
  3. Text为文本处理类
  4. Net为网络类
  5. zip为压缩与文档类

选择一个命令进入

  1. 查询选项用法是显示命令的选项
  2. 查询具体用法是显示命令的具体用法

具体用法

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

选择一个回车之后,会显示该命令的输出

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

更新linux命令用法

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

 代码结构

【Linux】运维开发必备:仅需一个脚本学习60个Linux核心命令

相关技术记录

shell调用外部文件函数

如果外部的file.sh中存在file_menu()函数,在本脚本中

source File.shfile_menu

shell中获取dialog的输出

dialog --colors --menu \"\\Z1\\ZbLinux命令中文解释\" 11 30 4 1 \"查询linux命令用法\" 2 \"更新linux命令用法\" 3 \"关于\" 4 \"\\Z2\\Zb退出\" 2> $temp 

其中 2> $temp 指的是将标准错误输出到 temp存储的文件路径中

  • 2:代表标准错误(stderr)
  • >:表示重定向操作
  • $temp:变量,指向一个临时文件(例如 /tmp/tmp.abc123
  • 用户输入的内容会保存在 /tmp/input.tmp
  • 如果 dialog 出错(如终端不支持对话框),错误信息也会写入该文件,覆盖用户输入

在 Linux/UNIX 系统中,每个进程默认有三个文件描述符:

  • 标准输入(stdin):文件描述符为 0,用于接收输入。
  • 标准输出(stdout):文件描述符为 1,用于正常输出。
  • 标准错误(stderr):文件描述符为 2,用于错误信息。

2>&1 的含义

  • 2:代表标准错误(stderr)。
  • >:表示重定向。
  • &1& 表示引用,&1 即引用标准输出(stdout)的位置

dialog中返回上一级实现

 while true;do dialog --colors --menu \"\\Z1\\Zb查询linux命令用法\" 14 30 9 1 \"搜索\" 2 \"文件类\" 3 \"系统管理类\" 4 \"文本处理类\" 5 \"网络类\" 6 \"压缩与归档类\" 7 \"\\Z2\\Zb返回上一级\" 2> $temp if [ $? -ne 0 ];then clear break fi choice=$(cat $temp) case $choice in #分别对应搜索,文件类,系统管理类,文本处理类,网络类,压缩与归档类,函数在外部文件中 1) serach_menu;; 2) file_menu;; 3) system_menu;; 4) text_menu;; 5) net_menu;; 6) zip_menu;; 7) return ;; esacdone 

if [ $? -ne 0 ];then

        这句很重要,决定返回上一级的关键,当上一句代码执行失败时,会返回非0,存储在$?,判断为非0,就break,即返回上一级。ctrl+c会是使得上句命令执行失败

shell当中对空格的处理

 cmd=\"find /home/$USER/linuxcmd/core/command -name $choice\" #通过查找用户输入的命令,用find来查找文件名来得到路径mingling_output \"$cmd\" 8 40 
  • 若变量中含有空格或者传递包含空格的参数,必须要加双引号来表示包含空格 ,否则就会导致取出
  • 单引号
    • 保留所有字符的字面意义(包括空格)。
    • 不解析变量和命令替换。

将一个脚本换成一个命令执行与source问题

使用alias

val=$dir/bash/lcmd.shecho \"alias lcmd=\'source $val\'\" >> ~/.bashrcsource ~/.bashrc

        问题:如果将上述代码作为一个脚本执行后,发现在终端输入lcmd却提示不能找到该命令,但是我确实是source了。

    原因:source ~/.bashrc 执行环境问题
        脚本是在子 Shell 中运行的,即使脚本内执行 source ~/.bashrc,也只会更新子 Shell 的环境,而不会影响父 Shell(即您的终端会话) 

        解决:重启终端会重新加载 ~/.bashrc中的内容

关于

  • [CSDN] https://blog.csdn.net/m0_75192474?spm=1010.2135.3001.5343
  • [GitHup] https://github.com/Rqtzbot/linuxcmd
  • [Gitee] https://gitee.com/rqtzbot/linuxcmd

注意事项

  • [放置位置] 应该将下载的linuxcmd包放在您的主目录中
  • [系统支持] 目前只在ubuntu/Debian系统上测试使用过

联系

邮箱 rqtzfuntop@163.com

 

 

莒南在线