1. shell特性
命令历史 history !!  !$  !n  !字符
Tab 键可以补全文件路径或者命令
alias  a=“b”  unalias a
通配符 *匹配零个或多个字符 ?匹配一个字符
输入输出重定向 >, >>,  <,  2>, 2>>
管道符 |
作业控制 ctrl+z, jobs,  fg,  bg

2. 变量
系统变量名都是大写,echo 可以查看变量名
env 可以列出当前用户的所有环境变量以及用户自定义全局变量
set命令可以把所有变量列出来包括系统的和自定义的全局变量以及当前shell自定义变量
linux下设置自定义变量规则: (1)格式为 “a=b”, 其中a为变量名,b为变量的内容,等号两边不能有空格;(2)变量名只能由英、数字以及下划线组成,而且不能以数字开头;(3)当变量内容带有特殊字符(如空格)时,需要加上单引号;(4)如果变量内容中需要用到其他命令运行结果则可以使用反引号;(5)变量内容可以累加其他变量的内容,需要加双引号;

系统所有用户使用变量: export myname=Aming  全局变量,加入/etc/profile并source /etc/profile永久生效
系统某个用户使用变量: export myname=Aming 加入当前用户家目录下的 .bashrc中 source .bashrc 
export myname=Aming  全局变量,export 不加任何选项表示,声明所有的环境变量以及用户自定义变量
用户自定义变量,可以使用 unset 变量名 进行解除变量设置

3. 系统和个人环境变量的配置文件
/etc/profile  PATH, USER, LOGNAME, MAIL, INPUTRC, HOSTNAME, HISTSIZE, umask等 
/etc/bashrc  $PS1  umask    以后如果设置umask修改 /etc/profile 不要改这个文件
.bash_profile  用户自己的环境变量
.bashrc  当用户登录时以及每次打开新的shell时, 执行该文件 
.bash_history  记录命令历史用的 
.bash_logout :当退出shell时,会执行该文件。

4. shell中的特殊符号
* 匹配符号,零个或多个任意字符 
? 匹配符号,1个任意的字符
# 注视说明用的,使后面的内容失去原本的意义
\ 脱义字符,将特殊字符还原为普通字符
|将符号前面命令的结果丢给符号后面的命令,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等

$ 引用变量,还有 !$
; 分号,多条命令写一行时,分隔命令 
~ 用户家目录 
& 放到命令最后面,让命令在后台运行
>, >>, 2>, 2>>  [错误]重定向,追加[错误]重定向
[ ] 中括号,中间为字符组合,代表中间字符中的任意一个 ls 1[23a].txt

5. 常用命令:
1)cut
语法: cut -d ‘分隔字符’ [-cf] n 这里的n是正整数 
-d 后面指定分隔符,用单引号引起来,-f 指定第几段 cut -d ':'  -f 1 /etc/passwd |head -n 5
-c 后面只有一个数字表示截取第几个字符head -n2 /etc/passwd|cut -c2
-c 后面跟一个数字区域,表示截取从几到几head -n2 /etc/passwd|cut -c2-5

2)sort
语法: sort [-t 分隔符] [-kn1,n2] [-nru]  (n1<n2) 
不加选项,从首字符向后,依次按ASCII码值进行升序排序sort  /etc/passwd 
-t 后指定分隔符,-kn1,n2表示在指定的区间中排序,-k后面只跟一个数字表示对第n个字符排序,-n表示使用纯数字排序 sort -t: -k3 -n /etc/passwd
-r 表示以降序的形式排序 sort -t: -k3,5 -r /etc/passwd
-u 去重  cut -d: -f4 /etc/passwd |sort -n -u

3)wc
用于统计文档的行数、字符数、词数
不加任何选项,会显示行数、词数以及字符数
-l 统计行数
-m 统计字符数
-w 统计词数

4)uniq
uniq 去重复,最常用就一个 -c 用来统计重复的行数,去重前要先排序sort testb.txt |uniq -c

5)tee
后跟文件名,类似于>,比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上

6)tr 用来替换字符 
最常用的就是大小写转换: head -n2 /etc/passwd |tr '[a-z]' '[A-Z]' 
tr 替换一个字符也是可以的 grep 'root' /etc/passwd |tr 'r' 'R'

7)split 切割大文件用的
-b : 按大小来分割单位为byte  split -b50 1.txt 
默认会以xaa, xab, …这样的形式定义分隔后的文件名,也可以指定文件名 split -b50 1.txt 123 
-l : 按行数分隔,split -l10 file

6. && 和 ||
command1 ; command2  前面命令是否执行完成都会执行后面命令
command1 && command2 只有前面命令执行成功才会执行后面命令
command1 || command2  只有前面命令不成功再去执行后面命令

扩展知识点:
1. source  exec 区别   http://alsww.blog.51cto.com/2001924/1113112
2.  bash_profile和bashrc的区别    http://www.aminglinux.com/bbs/thread-7719-1-1.html3. Linux特殊符号大全http://www.aminglinux.com/bbs/thread-7720-1-1.html

转载于:https://blog.51cto.com/liuysuheng/1679638

shell 基础知识相关推荐

  1. 【图文教程】Shell基础知识

    Shell基础知识 1. shell介绍 2. history命令 history主要参数示例: 3. 命令补全和别名 4. 通配符 5. 输入输出重定向 6. 管道符和作业控制 管道符: 作业控制: ...

  2. 3000字扫盲shell基础知识(新手必备)

    目录 shell基础语法之变量 shell 变量命名 shell 变量调用 shell 变量分类 shell 运算符 运算符种类 关系运算符 布尔运算符 字符串运算符 逻辑运算符 文件测试运算符 sh ...

  3. Linux之(5)账户和shell基础知识

    Linux之(5)账户和shell基础知识 Author:onceday date:2022年8月23日 漫漫长路,而今才刚刚开始- 本内容主要收集整理于: <Linux命令行与shell脚本编 ...

  4. shell基础知识总结

    1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...

  5. linux 运行class文杰,Linux Shell基础知识,你想的到的都在这里

    小编提示:此篇文章阅读时间为15分钟左右,可先收藏后阅读. 01/Linux 的江湖地位 Linux 作为一个全球用户超过14亿的操作系统,它的强大与神奇就不必多说了,混在IT界 Linux是可以装B ...

  6. Shell 基础知识--细说linux配套视频

    Shell 基础概括 Shell是什么? shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动.挂起.停止甚至是编写一些程序 ...

  7. shell学习之shell基础知识了解

    一.了解bash shell /etc/bash是Linux系统预设的shell.bash是GNU计划中重要的工具软件之一,目前也是Linux distributions的标准 shell. Shel ...

  8. 巩固shell基础知识

    以下这些知识是在编写shell程序的时候要用到的,需要的时候可以来查查,来巩固一下吧 shell中的一些扩展字符 • !! 上个命令的所有字符 • !* 一个命令的所有参数 • !^ 上一条命令的第一 ...

  9. Shell基础知识及字符处理

    1.1 简介 Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处 ...

  10. L24 shell基础知识(二)管道符-作业控制-shell变量-环境变量配置文件

    主要内容: 1管道符 2作业控制 3 shell变量 4 环境变量配置文件 1管道符和作业控制 管道符 "|", 就是把前面的命令运行的结果丢给后面的命令. 2作业控制 当运行一个 ...

最新文章

  1. 云计算集成过程中七个关键性的问题
  2. 2017年度NLP领域论文TOP10(附链接)
  3. [reference]-ARM缩写
  4. C++ | 从键盘输入任意多个英语单词,统计同一个英语单词被输入几次,最后对英文单词按字典顺序输出(C语言/C++/Java)
  5. ccf报数游戏java_ccf 201712 02 (游戏)
  6. having vs where
  7. 【转】AB实验设计思路及实验落地
  8. 数据绑定(二)把控件作为Binding源
  9. CVPR2021 DRConv:即插即用!旷视孙剑、张祥雨团队提出动态区域感知的卷积,涨点显著!...
  10. matlab是以什么运算为基础,matlab基础运算
  11. 汇编3-返回以及优化
  12. 《欲罢不能:刷屏时代如何摆脱行为上瘾》书摘
  13. 智慧环保检测平台Axure原型图
  14. java在线查看PDF
  15. c语言的数据类型说明保留字,第三章 数据类型、运算符与表达式
  16. Ribbon原理及使用详解
  17. 智能硬件可能成为网络安全事件新的“爆发点”
  18. 还在傻傻的数star、数fork吗?3秒钟教会你如何查看GitHub项目活跃度,是死是活一眼便知
  19. Hadoop是什么,主要有哪些优势?
  20. 【五社联动】 助力文明城市创建 共同缔造宜居家园

热门文章

  1. MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》
  2. 工信部副部长怀进鹏:信息产业呈现四大发展特点
  3. bootstrap1
  4. 模仿$.Callbacks实现
  5. Facebook Graph API(2)--读取数据之picture
  6. sql注入***的各种注入方法
  7. Golang:无惧makefile
  8. ReactJs 第一章HelloWorld
  9. 求解一元二次方程的简单c语言程序
  10. consulAPI服务的注册源码