Shell编程常用命令
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编程常用命令相关推荐
- shell编程常用命令总结(二)
文章目录 介绍: 一.shell脚本 二.shell变量 三.向shell脚本传递参数 四.shell 数组 五.shell运算符 六.Shell echo命令 七.Shell test 命令 八.S ...
- linux的编程命令,linux编程常用命令
学习linux编程最基本的就是要掌握常用的编程命令,下面由学习啦小编为大家整理了linux编程常用命令相关知识,希望大家喜欢! linux编程常用命令1.编译应用程序 make -f makefile ...
- Dos批处理编程常用命令
Dos批处理编程常用命令 打印输出交互 echo:打印输出.比如:echo 哈哈哈 就在dos页面里输出"哈哈哈" echo .:输出空行.[注意空格和点哈] echo off: ...
- linux脚本基本命令大全,Shell脚本常用命令
Shell脚本常用命令 1 Shell中的特殊符号 1.1 $ 美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到" ...
- linux常用的命令shell,Linux操作系统Shell和常用命令汇总
简述 本文主要介绍Shell和Linux常用命令. Shell Shell 是一个用 C 语言编写的应用程序,提供了用户访问Linux操作系统内核服务的界面,它可以用来启动.挂起.停止.编写程序.Sh ...
- Shell之常用命令(diff、path、cut、sort、uniq、tr、path)
Shell之常用命令(diff.cut.sort.uniq.tr.path) diff命令 作用:比较两个文件或目录的不同 diff [options] target1 target2 比较结果读取方 ...
- linux——编写Shell脚本常用命令:diff、patch、cut、sort、uniq、、||、test、tr
diff 和 patch 命令帮助:diff –help | patch –help diff命令在最简单的情况下,比较给定的两个文件的不同.如果使用"-"代替"文件&q ...
- HDFS的访问方式之HDFS shell的常用命令
场景 CentOS7上搭建Hadoop集群(入门级): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119335883 在上面搭 ...
- 小白福音——VBA编程常用——命令三百例
Excel VBA编程常用语句300句 本文转自:http://blog.sina.com.cn/codelee博主:**代码农夫**感谢大佬总结并分享出来~ * VBA 语句集 * * (第 1 辑 ...
最新文章
- 121-Best Time to Buy and Sell Stock
- centos6.5官方dvd做本地yum
- 市政管网检测机器人收费标准_泰州泰兴新街镇市政管道机器人检测怎么收费
- 微信小程序 长按图片不出现菜单_微信小程序实现长按删除图片的示例
- mysql-5.5.31主从复制
- python开发效率高吗_从运行效率与开发效率比较Python和C++
- 怎样看懂Oracle的执行计划
- UVALive6050 Primes【素数筛选+前缀和】
- yum源配置文件解释
- 第22节 软件工程知识
- 模电实验——实验四 RC正弦波振荡器
- Minimax算法——井字棋
- OSChina 周二乱弹 —— 怎么让可爱的女孩子吃药
- 同一个局域网我可以访问同事的电脑同事的访问不了我的本地项目
- 连上手机就能偷你信息?一定要注意你身边的共享充电宝。
- 国际大会演讲ppt_2008年上半年会议演讲时间表
- ROC曲线,AUC面积
- 股票精灵接口的脚本策划
- Android开发循序渐进实例5--网络访问例子
- 909. 蛇梯棋-广度优先遍历
热门文章
- java泛型反映调用方法体内类型引用问题
- [翻译] - Inside SQL Server 2000's Memory Management Facilities
- vc++6.0获取磁盘基本信息_分享一个实用脚本--一键获取linux内存、cpu、磁盘IO等信息...
- 面向对象的三大特性之继承
- JDBC——数据库的隔离级别
- 最终成为了热门的语言——python
- Docker入门简介
- 【android】TabLayout文字闪烁问题
- matlab和C/C++混合编程--Mex
- Cempi实战攻略(六)——如何截获到达的短消息