shell的基础知识

一、bash有以下特点:

1.记录命令历史

2.指令和文件名补全

3.别名

alias rm='rm -i'

4.通配符

* 0个或多个字符

?​匹配一个字符

5 输入输出重定向

输入重定向  <</p>

输出重定向  >​

6.管道​符   |

二、变量

环境变量PATH:它是Shell预设的一个变量

echo  $PATH​

echo $PWD

echo $HOME

系统预设的变量:使用env命令即可全部列出系统预设的环境变量了​,不过登录的用户不同这些环境变量的值也不一样

PATH:决定了shell到哪些目录中寻找命令或程序

HOME当前用户主目录

HISTSIZE历史记录数据

LOGNAME当前登录名

HOSTNAME主机的名称

PWD当前目录​

env命令显示的只是环境变量,系统预设的变量还有很多,可以使用set命令都显示出来

set命令不仅可以显示系统预设的变量,还可以显示用户自定义的变量

用户自定义变量

myname='sassy xu'​   变量内容有特殊字符如空格时,需要加上单引号

myname="sassy's'"​  变量内容本身有单引号时,需要加上双引号

myname=`pwd`​   变量内容需要用到其他命令运行结果,则使用反引号

myname="$LOGNAME"sassy 变量内容累加其他变量的内容,需要加双引号

系统环境变量及个人环境变量的配置文件

/etc/profile:存放系统环境变量的文件,比如PATH,LOGNAME,HOSTNAME等

/etc/bashrc:系统文件,预设PS1,root身份登录进去linux系统PS1就是 [root@localhost ~]# ​

用户目录下的几个隐藏文件

.bash_profile

.bashrc

.bash_history

.bash_logout

三、常用命令​

sort命令 用来排序​

(1)sort将文件的每一行作为一个单位,相互比较,比较原则是首字符向后,依次按照ASCII码进行比较,最后将他们按升序输出。

cat seq.txt

banana

apple

pear

orange

sort seq.txt​

apple

banana

orange

pear

​(2) sort -u  去除重复项

(3)sort -r  倒序排列

cat number.txt

1

3

5

2

4

sort -r number.txt

5

4

3

2

1

(4) sort -n 选项 按照数值大小排序

(5)​​ sort的-t选项和-k选项

如果有一个文件内容是这样的, cat facebook.txt

banana:30:5.5

​apple:10:2.5

​pear:90:2.3

​orange:20:3.4​

第一列表示水果类型,第二列表示水果数量、第三列表示单价

以水果数量,也就是第二列排序,

sort -t: -k 2​ -n facebook.txt

apple:10:2.5

​orange:20:3.4

​banana:30:5.5

​pear:90:2.3​

grep命令​

grep是针对文本的行操作的​

​grep -n  '关键词'  filename   过滤出带有关键词的行并输出行号

grep -vn '关键词'  filename  过滤出不带有关键词的行并输出行号

grep [0-9] text.txt 过滤出所有包含数字的行

在正则表达式中  [0-9a-zA-Z] 过滤出数字以及大小写字母,

[^字符]  表示除[]内的字符之外的字符​

^表示行的开始,$表示行的结束   ^r   h$

grep -i  '关键词'  filename  忽略大小写​

grep -c  '关键词'  filename  统计找到关键词的次数​

grep  --color=auto  将找到的关键词加上颜色显示​

Shell编程(二)——shell的基础知识及常用命令的更多相关文章

  1. Git基础知识与常用命令

    一:相关概念: 1:工作区(Working Directory): 就是你在电脑里能看到的目录 2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. ...

  2. MySQL基础知识和常用命令总结

    说明:以下内容是阅读书籍<<MySQL必知必会>>的摘要和总结 检索数据 排序检索数据 过滤数据 使用通配符过滤 使用正则表达式进行搜索 创建计算字段 使用数据处理函数 汇总数 ...

  3. MongoDB基础知识与常用命令

    SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 col ...

  4. linux基础知识和常用命令

    1.修改主机名 切换到root,然后执行 vim /etc/sysconfig/network,进入其中,更改hostname即可.insert进入修改,esc+:,wq保存退出. 2.用户切换 普通 ...

  5. (四)FastDFS 高可用集群架构学习---后期运维--基础知识及常用命令

    1.fastdfs 七种状态 FDFS_STORAGE_STATUS:INIT :初始化,尚未得到同步已有数据的源服务器 FDFS_STORAGE_STATUS:WAIT_SYNC :等待同步,已得到 ...

  6. 【Shell编程】Shell基本语法

    Shell 语法   Shell程序设计作为一种脚本语言,在Linux系统中有广泛的应用,本文记录了关于Shell程序设计的基础语法知识和常用命令,方便查询,熟练使用shell也需要经常实践,这对于完 ...

  7. 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

    salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...

  8. 【Shell编程】Shell程序设计

    1.Shell简介   作为Linux灵感来源的Unix系统最初是没有图形化界面的,所有的任务都是通过命令行来实现的.因此,Unix的命令行系统得到了很大的发展,逐步成为一个功能强大的系统.   Sh ...

  9. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...

随机推荐

  1. 限制goroutine数量写法

    虽然golang的goroutine可以开启无数个goroutine,但是没有限制也是不行的.我就写一下我对goroutine数量限制的写法 1.初始化goroutine协程池.把goroutine数 ...

  2. 20145222黄亚奇《网络对抗》web安全基础实践

    web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语 ...

  3. D3学习之动画和变换

    D3学习之动画和变换 ##(17.02.27-02.28) 主要学习到了D3对动画和缓动函数的一些应用,结合前面的选择器.监听事件.自定义插值器等,拓展了动画的效果和样式. 主要内容 单元素动画 多元 ...

  4. React Native之Fetch简单封装、获取网络状态

    1.Fetch的使用 fetch的使用非常简单,只需传入请求的url fetch('https://facebook.github.io/react-native/movies.json'); 当然是 ...

  5. MySQLdump增量备份、完全备份与恢复

    在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.场景:每周日执行一次完全备份,每天下午1点执行MySQLdum ...

  6. scala学习手记37 - 容器的使用

    这次统一看一下scala中容器类的几个方法. Set filter()方法 filter()方法用来从Set中过滤获取含有指定特征的元素.示例代码如下: val colors1 = Set(" ...

  7. spring mvc: 静态资源/文件配置

    静态文件不用再放web-info 下面了,放在webapp/ 下面就行了(静态文件放web-inf下你在jsp都无法引用~  注意一下所有js.css包括报表文件~ 配置文件等等等~  不要放在web ...

  8. HYSBZ - 2005 莫比乌斯反演

    链接 对于gcd(i,j)的位置来说,对答案的贡献是2*(gcd(i,j)-1)+1,所以答案ans ans=Σ(1<=i<=n)(1<=j<=m)2*(gcd(i,j)-1) ...

  9. C#笔记之 函数可变参数

    (转自:http://blog.csdn.net/jackluangle/article/details/6539278) 其实函数的参数的可变是因为不确定函数的参数大小的原因才使用的.看下面一个列子 ...

  10. LeetCode OJ:Intersection of Two Linked Lists(两个链表的插入)

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...