shell:简单、易用、高效,是一个内置的脚本,不需下载

什么是脚本:一条一条命令的堆积

shell 是一个程序,一般都是放在/bin或者/user/bin目录下,当前 Linux 系统可用的 Shell 都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用 cat 命令查看它。

在现代的 Linux 上,sh 已经被 bash 代替,/bin/sh往往是指向/bin/bash的符号链接。 所谓的符号链接就是软连接。

如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量。

书写shell脚本

vim 自定义(做到见名知意).sh#!/bin/bash  指定解释器类型,如何查看解释器类型,echo $SHELL命令命令

执行shell脚本的三种方法

第一种:正规方式:添加可执行权,我们可以先查看我们编写的shell脚本,它是没有执行权的,那么我们要赋予它执行权

chmod +x 脚本

然后执行shell脚本

./ 脚本 

如果不加./直接输入脚本可不可以执行呢,是不可以的,因为root的路径没有写入$PATH这个里面。

只要执行

vim /etc/profile.d/自定义名字.sh

export PATH=/root:$PATH

而后同步

source /etc/profile.d/自定义.sh

再去直接执行脚本的名字即可成功

第二种

直接用bash解释器去执行shell脚本。当前终端会新生成一个子 bash 去执行脚本。

第三种

source 脚本

source filename 与 bash filename 及./filename执行脚本的区别

当shell脚本具有可执行权限时,用bash filename与./filename执行脚本是没有区别得。

./filename

是因为当前目录没有在PATH中,所以”.”是用来表示当前目录的。

source filename

这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

bash filename

重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell。

什么是子shell:

利用pstree查看。

第一个bash就是父,第二个就是子,第三个也是子,第二对于第三个而言,是第三个的父。

shell编程常用命令

grep:过滤 结合 wc  -c  -w  -l

表示不区分大小写,将你填加的选项的大小写都筛选出来

-i 

比如

echo “this is Is Sm”| grep –i "i"

它将i的大写小写都用红颜色标注了出来

你n后头跟什么筛选的字符,那么含有此字符的所在行会被晒选出来,并显示行号。

-n 

比如:我想查看/etc/passwd 这个文件含有数字7的是哪几行

cat /etc/passwd | grep -n 7 

只打印匹配的内容

-o 

比如:我想查看/etc/passwd 这个文件含有的数字7。

cat /etc/passwd | grep –o 7 

只打印每个文件匹配的行数

 -c 

比如:我想查看/etc/passwd 这个文件含有的数字7的有几行。

cat /etc/passwd | grep –c 7 

打印匹配的前几行

-B(before)

打印匹配的后几行

-A(after)

打印匹配的前后几行

-C

打印不匹配的行

-v 

打印空白行

^$ 空格

cut:cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

定点分割截取

-c 

比如说

echo "this is ken"| cut -c 4 

那么显示的结果是s,意思是你使用-c后,后面数字跟几,它就把这段话中的第几个字符给你截取输出到屏幕上来。也可以指定几到几,比如第一个到第四个。那就是this。

两个结合使用,d为选参照物(选定的参照物),f为定点(以参照物开始的第几列),两者结合截取输出

-d  -f 

比如

echo "root/ok/pl/cd/ed"| cut -d "/" -f2 

意思是说,参照物选择的是/,2是以第一个/开始的第二列

$RANDOM是生成随机数

结合md5sum加密

$RANDOM | md5sum | cut 1-6

sort:排序

可直接用来排序,它是从小到大排序。按照数字的第一个的大小排序。

sort

根据数值大小进行排序

-n 

从数值的最大到最小排序

-r 

uniq:去除重复的行(相邻且相同,认定为重复)

在行首用数字表示该行出现了多少次

-c

仅仅显示那些没有出现重复过的行

-u

tr:转换或转出文件中的字符

指定字符,并删除

-d 

转载于:https://www.cnblogs.com/shuaiyin/p/10916865.html

Shell编程常用命令相关推荐

  1. shell编程常用命令总结(二)

    文章目录 介绍: 一.shell脚本 二.shell变量 三.向shell脚本传递参数 四.shell 数组 五.shell运算符 六.Shell echo命令 七.Shell test 命令 八.S ...

  2. linux的编程命令,linux编程常用命令

    学习linux编程最基本的就是要掌握常用的编程命令,下面由学习啦小编为大家整理了linux编程常用命令相关知识,希望大家喜欢! linux编程常用命令1.编译应用程序 make -f makefile ...

  3. Dos批处理编程常用命令

    Dos批处理编程常用命令 打印输出交互 echo:打印输出.比如:echo 哈哈哈  就在dos页面里输出"哈哈哈" echo .:输出空行.[注意空格和点哈] echo off: ...

  4. linux脚本基本命令大全,Shell脚本常用命令

    Shell脚本常用命令 1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到" ...

  5. linux常用的命令shell,Linux操作系统Shell和常用命令汇总

    简述 本文主要介绍Shell和Linux常用命令. Shell Shell 是一个用 C 语言编写的应用程序,提供了用户访问Linux操作系统内核服务的界面,它可以用来启动.挂起.停止.编写程序.Sh ...

  6. Shell之常用命令(diff、path、cut、sort、uniq、tr、path)

    Shell之常用命令(diff.cut.sort.uniq.tr.path) diff命令 作用:比较两个文件或目录的不同 diff [options] target1 target2 比较结果读取方 ...

  7. linux——编写Shell脚本常用命令:diff、patch、cut、sort、uniq、、||、test、tr

    diff 和 patch 命令帮助:diff –help | patch –help diff命令在最简单的情况下,比较给定的两个文件的不同.如果使用"-"代替"文件&q ...

  8. HDFS的访问方式之HDFS shell的常用命令

    场景 CentOS7上搭建Hadoop集群(入门级): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883 在上面搭 ...

  9. 小白福音——VBA编程常用——命令三百例

    Excel VBA编程常用语句300句 本文转自:http://blog.sina.com.cn/codelee博主:**代码农夫**感谢大佬总结并分享出来~ * VBA 语句集 * * (第 1 辑 ...

最新文章

  1. 121-Best Time to Buy and Sell Stock
  2. centos6.5官方dvd做本地yum
  3. 市政管网检测机器人收费标准_泰州泰兴新街镇市政管道机器人检测怎么收费
  4. 微信小程序 长按图片不出现菜单_微信小程序实现长按删除图片的示例
  5. mysql-5.5.31主从复制
  6. python开发效率高吗_从运行效率与开发效率比较Python和C++
  7. 怎样看懂Oracle的执行计划
  8. UVALive6050 Primes【素数筛选+前缀和】
  9. yum源配置文件解释
  10. 第22节 软件工程知识
  11. 模电实验——实验四 RC正弦波振荡器
  12. Minimax算法——井字棋
  13. OSChina 周二乱弹 —— 怎么让可爱的女孩子吃药
  14. 同一个局域网我可以访问同事的电脑同事的访问不了我的本地项目
  15. 连上手机就能偷你信息?一定要注意你身边的共享充电宝。
  16. 国际大会演讲ppt_2008年上半年会议演讲时间表
  17. ROC曲线,AUC面积
  18. 股票精灵接口的脚本策划
  19. Android开发循序渐进实例5--网络访问例子
  20. 909. 蛇梯棋-广度优先遍历

热门文章

  1. java泛型反映调用方法体内类型引用问题
  2. [翻译] - Inside SQL Server 2000's Memory Management Facilities
  3. vc++6.0获取磁盘基本信息_分享一个实用脚本--一键获取linux内存、cpu、磁盘IO等信息...
  4. 面向对象的三大特性之继承
  5. JDBC——数据库的隔离级别
  6. 最终成为了热门的语言——python
  7. Docker入门简介
  8. 【android】TabLayout文字闪烁问题
  9. matlab和C/C++混合编程--Mex
  10. Cempi实战攻略(六)——如何截获到达的短消息