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. Refseq,accssion #,gi ,Ensembl的关系

    accession编号的分子类型代号: Ensembl是2000年就开始开发的基因组自动注释软件,起初是只对真核生物基因组,2009年后开始对植物,细菌等开放.既然要注释,就要有注释对象(基因,转录本 ...

  2. 什么是“欧几里德范数”(Euclidean norm)?

    x是n维向量(x1,x2,…,xn),||x||=根号(|x1|方+|x2|方+…+|xn|方) 补充:开平方,跟几何一样

  3. 无缝走A的终极技巧:学会了你也是走A怪

    ADC重点之中:改键铸造更强走A! 我们先来欣赏一波来自世界顶尖ADC大师兄Doublelift的教科书般的走A. 他使用的金克丝在空蓝的情况下,凭借娴熟的走A技巧,拿下五杀. 关于走A,其实它有着一 ...

  4. java中线程状态-死亡

    线程死亡: 线程会以如下3种方式结束,结束后就处于死亡状态. 1.run()或call()方法执行完成,线程正常结束. 2.线程抛出一个未捕获的Exception或Error 3.直接调用该线程的st ...

  5. GoLang激活码

    虽然行为不太好,但是购买的话实在是比较贵. 进入软件,Help-Register,选择License Server,输入 http://idea.youbbs.org 激活即可.

  6. Oracle递归查询与常用分析函数

    最近学习oracle的一些知识,发现自己sql还是很薄弱,需要继续学习,现在总结一下哈. (1)oracle递归查询  start with ... connect by prior ,至于是否向上查 ...

  7. Flume-NG源码阅读之AvroSink

    org.apache.flume.sink.AvroSink是用来通过网络来传输数据的,可以将event发送到RPC服务器(比如AvroSource),使用AvroSink和AvroSource可以组 ...

  8. secureCRT7.3.4的破解与安装

    1-9为 SecureCRT 7.3.4 安装图解:10-13是 SecureCRT 7.3.4 破解图解,心急的朋友可以直接向下拉. 以下是百度百科对 SecureCRT 的介绍: SecureCR ...

  9. Java多线程 - 线程组

    Java使用ThreadGroup来表示线程组,用以对一批线程进行分类管理. Java允许程序对线程组直接进行控制,对线程组的控制相当于同时控制这批线程: 用户创建的所有线程都属于指定线程组,如果程序 ...

  10. 学习mybatis时出现了java.io.IOException: Could not find resource EmployeeMapper.xml

    使用mybatis时出现了Could not find resource EmployeeMapper.xml和Could not find resource mybatis-config.xml两种 ...