lesson - 10 shell 基础知识
课程大纲:
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 只有前面命令不成功再去执行后面命令
lesson - 10 shell 基础知识的更多相关文章
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- Linux Shell 基础知识(一)
1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...
- shell基础知识总结
1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...
- Shell 基础知识和总结
调试脚本 检查脚本语法错误 bash -n /path/to/some_script 调试执行 bash -x /path/to/some_script shell里的变量 本地变量:只对当前shel ...
- shell基础知识---与监听服务器长连接端口状态
从未写过脚本我的最近接了俩脚本的需求,就在这分享一下我的我学到基础知识主要就四部分内容 一.变量 变量的定义 string='字符串' string="字符串" num=808st ...
- shell基础知识讲解
第1章 shell基础 1.1 什么叫做shell编程 shell编程也叫做bash高级编程语法 1.2 常见的shell命令解释器 bash redhat和centos使用 d ...
- shell基础知识
Shell 学习基础 1.组合命令的符号 管道,将前面一个命令的结果作为后面一个命令的输入 分号,顺序执行用分号分割的命令 重定向,重定向包括三种:输入重定向.输出重定向.错误重定向,以7个不同的符号 ...
- shell从入门到精通进阶之一:Shell基础知识
1.1 简介 Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处 ...
- linux 学习随笔-shell基础知识
1:用户的shell历史命令保存在home/username/.bash_history中 #!! 执行用户的上一条命令 #!pw 执行命令历史中最近一次以pw开头的命令 2:'*'来匹配零或多个 ...
随机推荐
- (ajax)——jquery用法
例子:/* ajax获得状态 */ 点击事件 $("#findBycname").click(function(){ var company = ...
- redis复制原理和应用
1.前言 说到分布式高可用,必然少不了复制,一来是为了做个冗余备份防止数据丢失,二来还可以达到分流来提高性能的目的.基本架构: 下面用M表示Master(主服务器),S表示Slave(从服务器),话不 ...
- thinkphp实现文件的下载
首先需要看一下大家使用的Thinkphp的版本,不同的版本使用的方法不同,(在导入公共函数的时候方式不同) 我用的是thinkphp3.2.2版本的,因此直接使用import()函数,直接把使用thi ...
- 【LintCode·容易】用栈模拟汉诺塔问题
用栈模拟汉诺塔问题 描述 在经典的汉诺塔问题中,有 3 个塔和 N 个可用来堆砌成塔的不同大小的盘子.要求盘子必须按照从小到大的顺序从上往下堆 (如:任意一个盘子,其必须堆在比它大的盘子上面).同时, ...
- Python测试开发之---string
string.letters 所有的大小写字母 >>> print string.lettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ ...
- SQL Server 2017 安装过程中的一点说明(有点意思)
会提到:“安装程序无法与下载服务器联系.请提供 Microsoft 机器学习服务器安装文件的位置,然后单击“下一步”.可从以下位置下载安装文件” 的解决方案 安装过程和2016大体一致,机器学习这款更 ...
- 【NOIP2012提高组】同余方程
https://www.luogu.org/problem/show?pid=1082 方程可化为ax+by=1. 用扩展欧几里得算法得到ax'+by'=gcd(a,b)的一组解后,可得x=x'/gc ...
- c++简单编写线性表(实验)
哇 好久没更博客了 因为从上次更文到现在为止,我一直在学c#,然后也觉得没什么太大的东西想写在博客上, 总之这次就简单的传一下学校安排的数据结构的实验,我还是学生,是新手,希望能继续跟大家一起学习, ...
- Dell poweredge r210进BIOS改动磁盘控制器(SATA Controller)接口模式
Dell poweredge r210进BIOS改动磁盘控制器(SATA Controller)接口模式 开机后按F2键进入BIOS设置,例如以下图: BIOS设置主界面: 使用上下键移动光标到&qu ...
- Maven构建真正的J2EE项目
今天同事问起我眼下用Maven构建的多模块项目架构和曾经用Eclipse创建的Web项目的问题.以下将讲一下使用maven搭建多模块的J2ee项目,以及採用这样的方式搭建项目对日后项目的水平拆分和垂直 ...