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. Mysql 慢查询日志配置

    查询日志 1.主配置文件下对添加参数.重启生效. vim /etc/my.cnf 注:主要用于查看开发程序执行时间. 注:log_slow_queries = /tmp/mysql.slow    # ...

  2. Java四则运算总结

    Java结对编程四则运算第二周总结 需求分析 要随机产生规定数量的式子. 要对分式进行计算. 要支持多语言. 要自动判断对错. 设计思路 确定要选用的语言: 要产生随机数: 在产生随机数的时候就要产生 ...

  3. 读取Excel复杂的数据

    涉及到合并单元格的数据读取: package com.util; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util ...

  4. 第十节课-RNN介绍

    2017-08-21 这次的课程介绍了RNN的相关知识: 首先是RNN的几种模型: 分别又不同的应用场景,包括机器翻译,视频的分类... RNN的解释: 主要的特点就是用到了上一个隐含状态的信息,所以 ...

  5. Java实现简单网页抓取

    需求说明:使用Java抓取网页信息,并以字符串的形式返回. 使用Java代码实现: package net.ibuluo.spider.util; import java.io.IOException ...

  6. 测绘类SCI

    GeoInformatica(国际地理信息系统计算机科学进展杂志)美国International Journal of Geographical Information Science(国际地理信息科 ...

  7. bootstrap-datepicker 时间范围选择函数封装

    bootstrap-datepicker 时间范围选择函数封装 官网 https://bootstrap-datepicker.readthedocs.io/en/latest/index.html ...

  8. LeetCode第[69]题(Java):Sqrt(x)

    题目:求平方根 难度:Easy 题目内容: Compute and return the square root of x, where x is guaranteed to be a non-neg ...

  9. python学习笔记(requests)

    昨天用jmeter尝试了下接口测试 在部分接口中要上传文件这里遇到了问题.今天改用python的requests框架试下 先简单的写了个登录的接口.本人初学者,第一次写接口脚本 #!/usr/bin/ ...

  10. linux下如何上传和下载文件

    一. 安装工具包rz及sz lrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议,可以用在windows与linux 系统之间的文件传输,体积小速度快 yum install -y ...