当前位置: 首页 > news >正文

shell 相关操作

为什么80%的码农都做不了架构师?>>>   hot3.png

shell 常用操作

1. cut 命令

1.1 概述

cut 命令将输入流以行为单位, 以一定条件切割, 将最终结果打印到标准(stdout), 输入流一般是一个文件名, 当没有指定文件名或直接指定 - 时表明直接从标砖输入(stdin)中取流

1.2 语法

cut OUTION FILE

1.3 选项

-b:     仅显示行中指定直接范围的内容
-c:     仅显示行中指定范围的字符
-d:     指定自负的分割符, 默认分割符为'TAB'
-f:     显示指定字段的内容
-n:     与 -b 连用, 不分割字节字符
--complement:   补足被选择的字节, 字符或字段
--out-delimiter=<字符分隔符>:    指定输出内容的字符分割符

--help:     显示帮助信息
--version:  显示指令版本

1.4 示例

  • 使用cut 分割显示 passwd 文件 的用户和用户ID

  • 截取 第2-5 个字符

2. wc 命令

2.1 概述

wc 命令用于打印数日文件的行, 单词, 字节数

2.2 语法

wc [OPTION] [FILE]

2.3 选项

-c:     统计字节数
-l:     统计行数
-m:     统计字符数
-w:     统计单词数
-L:     打印最长行的长度
--help:     帮助信息
--version:  版本信息

2.4 示例

3. sort 命令

3.1 概述

sort 命令用于字段排序

3.2 语法

sort [OPTION] [FILE]

3.3 选项

-b:     --ignore-leading-blanks 忽略字符前面的空白区域
-d:     --dictionary-order      只考虑空白区域和字母字符
-f:     --ignore-case           忽略字母大小写
-g:     --general-numeric-sort  按照常规数值排序
-i:     --ignore-nonprinting    只按照排打印字符
-M:     --month-sort            按照月份的英文缩写排序.
-k:             指定起始位置, 和结束位置 PS: -k1,2
-n:             按照数值大小排序
-o<输入文件>:    将输入结果存储在文件内
-r:             逆向排序
-t<分割字符>:    指定分割字符
+<起始栏位>-<结束栏位>:     指定栏位来排序, 范围有起始栏到结束栏

3.4 示例

  • 按照用户名排序

  • 按照UID 排序

4. uniq 命令

4.1 概述

从输入文件 或标准输入中过滤相邻匹

4.2 语法

uniq [OPTION] [FILE] uniq [-cdu] [-f<栏位>] [-s<字符设置>] [-w<字符位置>] [--help|--version] [输入文件] [输出文件]

4.3 选项

-c:     --count 每列旁边显示该行出现次数
-d:     --repeated 仅显示重复出现的行列
-f<栏位>:     --skip-fields=<栏位> 忽略比较指定的栏位
-s<字符位置>:    --skip-chars=<字符位置> 忽略比较指定的字符
-u:             --unique 仅显示处一次的行列
-w<字符位置>:   --check-chars=<字符位置> 指定要比较的字符
--help:     帮助信息
--version   版本
[输入文件]:     指定已排序好的文本文件
[输出文件]:     指定输出的文件

4.4 示例

5. tee命令

5.1 概述

tee 用于读取标准输入的数据, 并将其内容输出成文件

5.2 语法

tee [-ai] [--help] [--version] [FILE]

5.3 选项

-a:     --append    附加到基友文件后面
-i:     --ignore-interrupts 忽略中断信号
--help:     版本信息
--version:  显示版本信息

5.4 示例

6. split 命令

6.1 概述

将一个大文件分割分割成多个小文件, 有些文件太大, 分割成小文件, 可以提高易读性

6.2 语法

split [OPTION] [FILE]

6.3 选项

-b:     指定切割的每个片段的大小, 单位为 byte
-c:     每输出一个片段, 单行的最大 byte 数
-d:     使用数字作为后缀
-l:     值为 每个片段的列数大小
PREFIX: 带包前导符, 可以作为切割文件的前导文件

6.4 示例

6. tr 命令

6.1 概述

tr 命令用于转换或删除文件的字符, 从标准输入读取数据, 进过字符串转译后, 将结果输出到标准设备.

6.2 语法

tr [-cdst] [--help] [--version] [第一字符集][第二字符集]

6.3 选项

-c: --complement:   反选设定字符, 也就是说符合 SET1 部分不做处理, 不符合的剩余部分进行转换
-d: --delete:       删除指定字符
-s: -squeeze-repeats:   缩减连续重复的字符成指定的单个字符
-t: --truncate-set1:    消减SET1 指定范围, 使之与 SET2 设定长度相似
--help:             帮助信息
--version:          版本信息     
  • 字符合集范围:
\N      八进制字符 N
\\      反斜杠
\a      Ctrl-G 铃声
\b      Ctrl-H  退格符
\f      Ctrl=L 走行换页
\n      Ctrl-J 新行
\r      Ctrl-M 回车
\t      Ctrl-I tab 键
\v      Ctrl-X 水平制表符

[:alnum:]   所有字母字符与数字
[:alpha:]   所有字母字符
[:black:]   所有水平空格
[:cntrl:]   所有控制字符
[:digit:]   所有数字
[:graph:]   所有可打印的空白字符(不包含空格)
[:lower:]   所有小写字母
[:print:]   所有可打印的字符(包含空格)
[:punct:]   所有标点字符
[:upper:]   所有大写字母
[:xdigit:]  所有16进制数字
[CHAR]    所有符合指定的字符

6.4 示例

7. 其他操作

7.1 设置环境变量HISTSIZE

  • 编辑/etc/profile 文件

7.2 设置PS1

  • 设置PS1 编辑 ~/.bashrc 添加 PS1=

  • 恢复 PS1
    • 删除 ~/.bashrc 内的PS1 设置
    • export PS1="[\u@\h \w]$"

7.3 将当前目录下文件的文件名小写替换成大写

7.4 使用 sort 以 : 为分隔符, 排序passwd 文件

7.5 使用 cut以: 分割, 截取 /etc/passwd 第三段

7.6 /etc/profile , /etc/bashrc, ~/.bashrc, ~/.bash_profile

  • profile文件内声明的变量, 仅在用于登录状态下都会生效
  • bashrc 文件内声明的变量, 不管用户是否 是登录状态下 执行的命令都会生效
  • /etc/ 目录下表示该文件对所有用户都有效,
  • ~/ 目录下表示该文件仅对 目标用户有效.

7.7 export 的作用

  • exprot 用于声明变量, 让系统变量问变量设定的文件生效.

##7.8 Linux 下自定义变量设定的规则

  • 变量名由 数字字母下划线 组成, 且不可以为数字开头.
  • 变量内容如果有特殊字符需要生效, 则用双引号 引起, 如果不要生效, 或者没有特殊字符 使用单引号
  • 变量声明方式: export 变量名=变量值

7.9 命令后台与前台

  • 将命令行中正在运行的命令已到后台(暂停的): Ctrl+z
  • 将后台暂停的命令运行 bg [作业号]
  • 将后台命令已到前台运行 fg [作业号]
  • 查看后台运行的命令 jobs
  • 直接将命令作为后台状态运行: COMMAND &

7.10 列出目录下所有test 卡头文件

  • ls test*

7.11 把命令输出打印到屏幕同时 输出到文件

  • COMMAND |tee FILE

7.12 长命令或选项过长, 记不住怎么办

  • alias COMMAND_ALIAS="COMMAND OPTION "

7.13 将命令放置后台运行, 同时正确输出 和 错误输出到 一个文件

  • COMMAND 1> a.txt 2>a.txt &

7.14 分割一个大文件

  • 按照大小
    • split -b<SIZE> FILE
  • 按照行数
    • split -l<LINE> FILE

7.15 && || ; 三种的区别

  • ; 前后两个命令互不影响, 不论前一个命令是否成功执行, 后一个都会被执行
  • && 只有前一个命令成功执行了, 才会执行后一个命令
  • || 前一个命令如果成功执行了, 后一个将不会被执行

##7.16 如果只想让某个用户使用某个变量如何做?

  • 将变量声明在对应用的家目录的 .bashrc 文件内

END

转载于:https://my.oschina.net/nikoF/blog/2872715

相关文章:

  • Android 内存分析
  • ASP.NET的几个试题(《C#与.NET程序员面试宝典》)
  • 可以使你成为更优秀程序员的5个好习惯
  • HBase生产环境配置与使用优化不完全指南
  • co模块的前端实现
  • 【转】【支付 . 技术控】最全最强解析:支付宝系统架构内部剖析(架构图)...
  • 写给正在入坑linux系统的伙伴
  • 关于Activity销毁,而绘制UI的子线程未销毁出现的问题
  • BootStrap框架
  • Django3_Url控制系统和View视图
  • FastReport在线报表设计器工作原理
  • JavaScript是怎样AOP实现?
  • 常用公共DNS服务器地址
  • BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
  • TCP/IP中的四元组、五元组、七元组
  • 分享的文章《人生如棋》
  • [NodeJS] 关于Buffer
  • CAP 一致性协议及应用解析
  • css的样式优先级
  • JavaScript DOM 10 - 滚动
  • Javascript基础之Array数组API
  • Python利用正则抓取网页内容保存到本地
  • SQLServer之创建显式事务
  • SSH 免密登录
  • vue 配置sass、scss全局变量
  • web标准化(下)
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 给初学者:JavaScript 中数组操作注意点
  • 构建工具 - 收藏集 - 掘金
  • 诡异!React stopPropagation失灵
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 如何选择开源的机器学习框架?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 我与Jetbrains的这些年
  • 写给高年级小学生看的《Bash 指南》
  • ionic异常记录
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​用户画像从0到100的构建思路
  • # Java NIO(一)FileChannel
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $forceUpdate()函数
  • (04)odoo视图操作
  • (42)STM32——LCD显示屏实验笔记
  • (C语言)逆序输出字符串
  • (Java数据结构)ArrayList
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Python第六天)文件处理
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (数据结构)顺序表的定义
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .java 9 找不到符号_java找不到符号