陌小路的个人博客 陌小路的个人博客
首页
  • 技术专区

    • 面试
    • Vue
    • Electron
    • TypeScript
    • Serverless
    • GraphQL
  • 我的秋招之旅
  • 2019年终总结
Todo
收藏夹
关于作者
GitHub

陌小路

前端切图仔
首页
  • 技术专区

    • 面试
    • Vue
    • Electron
    • TypeScript
    • Serverless
    • GraphQL
  • 我的秋招之旅
  • 2019年终总结
Todo
收藏夹
关于作者
GitHub
  • Vue

  • React

  • 面试

  • Electron

  • Serverless

  • GraphQL

  • TypeScript

  • RxJS

  • 工程化

  • Webpack

  • Nestjs

  • WebRTC & P2P

  • Docker

  • Linux

    • Shell 命令收集
      • Shell 终端支持显示中文日志
      • Linux 博客网站部署
    • Git

    • Svelte

    • 踩坑日记

    • 其他

    • technology
    • Linux
    陌小路
    2022-04-17

    Shell 命令收集

    # shell 常用命令

    仅以记录一些常用 shell 命令以及使用示例。

    # 调试 shell 的一些命令

    • -n: 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误
    • -v: 一边执行脚本,一边将执行过的脚本命令打印到标准错误输出
    • -x: 提供跟踪执行信息,将执行的每一条命令和结果依次打印出来

    使用他们的方式有三种:

    • sh -x ./test.sh: 以参数形式设置
    • 在脚本文件顶部定义设置参数: sh -x ./test.sh
    • 使用 set 命令的形式: set -x && echo xxx

    # chown 命令

    用法: chown [-cfhvR] [--help] [--version] user[:group] file...;

    • user : 新的文件拥有者的使用者 ID
    • group : 新的文件拥有者的使用者组(group)
    • -c : 显示更改的部分的信息
    • -f : 忽略错误信息
    • -h :修复符号链接
    • -v : 显示详细的处理信息
    • -R : 处理指定目录以及其子目录下的所有文件
    • --help : 显示辅助说明
    • --version : 显示版本

    使用示例:

    chown -R user1:usergroup *

    将当前目录下所有文件包括子目录拥有者都设置为 user1 ,群体使用者为 usergroup。

    # addgroup & adduser

    # addgroup

    使用 addgroup 命令可以在系统中创建组群账户。

    • -g: 为组设置 GID
    • -r: 创建系统群组
    • -o: 允许使用和别的组群相同的GID创建组群
    • -f: 即使组群已经存在,还是强制创建组群
    • -p: 为新组群设置加密的密码

    e.g: addgroup -g 1000 node

    # adduser

    用于新增使用者帐号或更新预设的使用者资料。

    语法:

    adduser [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] loginid

    • -c: 注释
    • -d: 设定使用者的家目录为 home_dir ,预设值为预设的 home 后面加上使用者帐号 loginid
    • -e: 失效时间
    • -g: 初始组
    • -G: 归属到某个组
    • -s: 设置默认的 shell
    • -u: 设置用户 uid
    • -r: 设置系统用户

    e.g: adduser -u 1000 -G node -s /bin/sh -D node

    # 管道符与重定向

    # |

    管道符图解(来自网络,侵删)

    它能接收前一个命令的输出作为下一个命令的输入,要求左边的命令应该有标准输出 | 右边的命令应该接受标准输入。需要注意的是,管道符将会把 | 两边的命令放在两个单独的子进程进行执行。

    比如:

    # cat xxx.txt | grep xxx

    这样他会将 xxx.txt 文件的内容读取出来,并交给 grep 命令进行筛选输出。

    # >

    左边的命令应该有标准输出 > 右边只能是文件。常用于你需要将一段输出写入到一个文件当中的场景。

    参考文章:https://www.cnblogs.com/chengmo/archive/2010/10/21/1856577.html

    # dash 与 bash 转换

    # 方法一

    查看当前是bash还是dash:ls -al /bin/sh,输出如下结果: lrwxrwxrwx 1 root root 4 Dec 5 16:50 /bin/sh -> dash

    删除原链接:sudo rm /bin/sh

    新建链接指向bash:ln -s /bin/bash /bin/sh

    查看当前链接:ls -al /bin/sh,看到如下输出表示转换成功:

    lrwxrwxrwx 1 root root 9 Dec 9 09:56 /bin/sh -> /bin/bash

    # 方法二

    输入 sudo dpkg-reconfigure dash,他会提示以下文案:

    Use dash as the default system shell (/bin/sh)? [yes/no]

    # 方法三

    直接终端输入 bash

    选择 no 即可。

    # curl & wget

    如何使用 curl 或者 wget 发起一个简单的 get 请求:

    • curl: curl -v localhost:9999/about
      • -v 参数输出通信的整个过程,用于调试。
    • wget: wget -q -O - http://192.168.31.105:9999/about
      • -q 参数用于不输出头信息
      • -O 用于将返回值输出到文件,当-用作输出文件时,wget 将输出打印到标准输出(stdout)

    curl 详细文档: curl 的用法指南

    编辑
    上次更新: 2023/01/08, 13:01:00
    Docker - 踩坑日记
    Shell 终端支持显示中文日志

    ← Docker - 踩坑日记 Shell 终端支持显示中文日志→

    最近更新
    01
    npm 踩坑日记
    03-21
    02
    Github Actions 快速入门
    01-08
    03
    Linux 服务器部署
    01-02
    更多文章>
    Theme by Vdoing | Copyright © 2020-2023 STDSuperman | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式