linux/shell编程就应该这样学
文章平均质量分 87
涵盖系统化的linux基础知识,linux开发常用命令,命令精讲,shell的编程,脚本分享,大数据运维经验分享,开发分享。
涤生大数据
在职阿里,美团,京东,字节大数据技术专家,擅长大数据开发,集群架构/运维,爱好python数据分析/爬虫,欢迎一起交流
展开
-
linux生产文本处理掌握这些就够了:awk,gawk,sed,grep,sort
shell脚本最常见的一个用途就是处理文本文件。检查日志文件、读取配置 文件、处理数据元素,shell脚本可以帮助我们将文本文件中各种数据的日常处理任务自动化。但仅靠shell脚本命令来处理文本文件的内容有点力不从心的。如果想在shell脚本中处理任何类型的数据,掌握grep,sed和gawk工具可以达到事半功倍的效果。企业开发中常用,高阶命令。linux文本处理三剑客:grep+sed+awk(gawk)16.0 grep的使用所有的类linux系统都会提供一个名为grep(global re原创 2021-12-11 18:19:17 · 2029 阅读 · 7 评论 -
生产服务器磁盘批量自动分区,格式化,挂载脚本
企业生产服务器经常遇到磁盘自动分区,格式化,挂载的事情,如何批量化处理。下面有详细的脚本以及命令解释:#! /bin/bash#1.判断目录是否存在,一般生产磁盘都是/hadoop*格式df -h|grep '/hadoop' && exit 1#2.安装parted,xfs格式命令yum install parted kmod-xfs xfsprogs -y#3.去除掉第一个系统盘,获取磁盘名称,数组[/dev/sdb,/dev/sbc...]disk_n...原创 2021-11-17 16:59:36 · 2044 阅读 · 1 评论 -
shell 必知的脚本知识(上篇)
写在前面,本篇适用于有一定shell基础的同学,主要对shell处理用户输入相关的常用小知识点的归总,主要涵盖以下几个知识点:脚本外部参数 脚本参数跟踪 移动变量 处理选项 将选项标准化 获得用户输入一、shell命令行传入参数1.1 数值参数传入shell 脚本语言的传入参数,相较于其他语言会更直接易懂,bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的 所有参数。这也包括shell所执行的脚本...原创 2021-11-01 11:53:36 · 2125 阅读 · 3 评论 -
linux 环境变量掌握这些就够了
一、什么是环境变量在计算机系统中有一种数据类型称为变量,变量是用来保存可变值的,操作计算机时可以直接通过变量名称来提取到对应的变量值。而我们今天提到的环境变量本质上也是变量,它的服务对象是shell程序。很多程序和脚本都通过环境变量来获取系统信息、存储临时数据和配置信息。在Linux系统上有很多地方可以设置环境变量,了解去哪里设置相应的环境变量很重要。小提示:Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。虽然bash shell使用一致的专有...原创 2021-10-27 10:56:32 · 829 阅读 · 4 评论 -
快速学习正则表达式,不用死记硬背,示例让你通透(下篇)
前面,我们就正则表达式一些常用的基本方法做了详细的介绍,本篇会讲解一些拓展性的知识,主要的就是常见的ERE模式符号以及shell脚本中常见的一些正则表达式例子。一、正则表达式常用符号本章示例着重于在gawk程序脚本中的较常见的ERE模式符号。1.1 问号【?】问号类似于星号,不过有点细微的不同。问号表明前面的字符可以出现0次或1次,但只限于 此。它不会匹配多次出现的字符。示例展示:脚本解说:如果字符e并未在文本中出现,或者它只在文本中出现了1次,那么...原创 2021-10-12 17:10:39 · 3820 阅读 · 23 评论 -
快速学习正则表达式,不用死记硬背,示例让你通透(上篇)
一、正则表达式的定义:正则表达式是你所定义的模式模板(pattern template),Linux工具可以用它来过滤文本。Linux工具(比如sed编辑器或gawk程序)能够在处理数据时使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配模式,它就会被滤掉。正则表达式模式匹配数据:正则表达式模式利用通配符来描述数据流中的一个或多个字符。Linux中有很多场景都可以 使用通配符来描述不确定的数据。【*】号在我们工作中就比较常用。...原创 2021-10-09 17:44:14 · 9907 阅读 · 17 评论 -
深度学企业linux awk命令详解与应用(下篇)
开篇语:我们在《一篇速学企业linux awk命令详解与应用(上篇)》中介绍了 awk 的基本用法,其实在awk 脚本程序中,还支持使用一些编程语言,比如变量、数组、分支结构(if-then-else)、循环结构(while)、函数等,本编文章将给大家做详细的讲解。一、awk 数组的处理为了在单个变量中存储多个值,gawk编程语言使用关联数组提供数组功能。 概念详解:关联数组跟数字数组不同之处在于它的索引值可以是任意文本字符串。不需要用连续的数字来标识数组中的数据元素。...原创 2021-09-29 15:24:54 · 1811 阅读 · 8 评论 -
一篇速学企业linux awk命令详解与应用(上篇)
开篇语:在 Linux 命令中,awk是一个处理文件中的数据的高级工具,它能提供一个类编程环境来修改和重新组织文件中的数据。特别说明:GNU gawkawk既是一个命令,也是一种程序语言,它可以有不同的实现版本。在 Linux 系统中,awk的实现版本是 GNU gawk。在 shell 中执行awk命令,实际执行的是gawk命令。如此截图:所以下文中所说的gawk也就是我们常称呼的awk。一、初始gawkgawk程序让流编辑迈上了一...原创 2021-09-27 17:45:42 · 1869 阅读 · 4 评论 -
linux文本处理三剑客之sed,原来只需要掌握这些!!!
前言:shell脚本最常见的一个用途就是处理文本文件。检查日志文件、读取配置 文件、处理数据元素,shell脚本可以帮助我们将文本文件中各种数据的日常处理任务自动化。但仅靠shell脚本命令来处理文本文件的内容有点力不从心的。如果想在shell脚本中处理任何类型的数据,掌握sed和gawk工具可以达到事半功倍的效果。一、sed编辑器基本了解sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。流编 辑器会在编辑器处理数据之前基于预先提供的...原创 2021-09-25 21:42:36 · 4110 阅读 · 7 评论 -
还不懂shell脚本核心?这一篇就够了。
前言:现在在我们已经知道了Linux系统和命令行的基础知识,是时候开始编程了。本章讨论编写 shell脚本的基础知识。在开始编写自己的shell脚本前,你必须了解的基本概念都在这里。一、多个shell命令的使用shell脚本的核心在于输入多个命令并处理每个命令的结果,而且有时候需要将一个命令的结果传给 另一个命令。shell可以将命令串起来,依次执行完成。要依次将两个命令一起运行,可以 把它们放在同一行中,彼此间用分号(;)隔开来。这就是一个最简单的shell脚...原创 2021-09-24 17:56:09 · 3649 阅读 · 5 评论 -
Linux目录文件操作命令篇--(工作常用命令的深度使用,小白必收藏)
写在前面:在window的世界里,大家一定很熟悉对文件和目录的各种添加、删除、更新等操作。同样,linux 的世界里也少不了这些最基本的技能,这就需要大家掌握一些操作命令,本篇着重于综合整理工作中对文件和目录操作常用的一些命令,简化大家的学习成本。ls (列出目录)ls(英文全拼:list files): 列出目录及文件名这个可以算是linux 的最常用的了,查看一个目录下有哪些文件和子目录都用这个命令。常用的参数:-a :全部的文件,连同隐藏文件( 开头为 . 的文件)...原创 2021-09-19 22:46:29 · 1752 阅读 · 4 评论 -
深度剖析Linux文件备份压缩命令--企业实战
写在前面:大家都知道,在Windows电脑中压缩文件文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件 时,可以减少传输的时间。。 在 Linux系统中同样支持这种操作,而且不同的压缩方式,压缩的效果还不一样,下面就和大家分享一下我日常工作中维护Linux系统常用的一些压缩命令。一、Linux中常用的压缩文件拓展名工作中常用压缩文件拓展名 文件拓展名类型 拓展名简述 *.gz gzip程序压缩的文件:仅压缩普通文件 *.bz2 ...原创 2021-09-17 09:33:47 · 1007 阅读 · 6 评论 -
Linux 磁盘管理详解--企业实战篇
写在前面: 无论是windows 系统还是Linux 系统中,所有的文件最终都是存储在硬盘上的,都是在用文件系统管理,要想彻底搞清楚文件系统的管理机制,对磁盘的了解是必不可少的。一、磁盘的认识磁盘的分类如果从存储数据的介质上来区分,硬盘可分为机械硬盘(Hard Disk Drive, HDD)和固态硬盘(Solid State Disk, SSD),机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。机械硬盘(HDD)机械硬盘(HD...原创 2021-09-14 15:45:53 · 3300 阅读 · 12 评论 -
老司机带带我:轻松搞定linux 用户管理篇
写在前面:用户和用户组管理,顾名思义就是添加用户和用户组、更改密码和设定权限等操作。日常中我们使用个人计算机的时候,这方面的感官可能并不强烈,执行一些操作,更多的是管理员账户,其他普通用户使用极少。但在 Linux系统服务器上用户的划分是很明确的,Linux系统就是通过用户的区分来限定权限,继而约束用户的操作行为,所以学习用户相关的管理命令是 及其实用和必不可少的。一、Linux系统用户概念篇1.Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以原创 2021-09-10 16:57:54 · 1899 阅读 · 12 评论 -
老司机带带我:运维专家带你系统性学linux基础
0.写在前面: 这篇文章主要写给 Linux 初学者的,文章中会分享给初学者应该着重掌握的一些东西,这些内容都是本人从事 Linux 工作多年的心得体会,相信会帮初学者更快的掌握 Linux 的相关使用技能,后续作者会系统化地更新linux相关初级,中级,高级,终级篇系列文章。并且会在每个篇幅,章节给出学习意见。学linu的初衷? 从事于 IT 相关工作的同学,应该都或多或少的了解一些linux系统。其实,随着互联网行业的不断发展,大家已经每时每刻都在使用着linux系统,...原创 2021-09-09 09:46:46 · 3744 阅读 · 15 评论 -
linux的bash编程基础语法
1.SHELL是什么?•Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell•Shell也是一门编程语言<解释型的编程语言>,即shell脚本•一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支持的命令语法是不相同的Shell还是一个功能相当强大的编程语...原创 2019-06-17 11:14:30 · 1293 阅读 · 1 评论 -
linux中/etc/profile中配置了环境变量,但是程序还是无法直接启动
安装配置了Hive程序,正常可以启动,也在/etc/profile中配置了环境变量,但是直接命令行hive启动失败1./etc/profile中的部分配置信息: export HIVE_HOME=/opt/modules/hive-0.13.1-cdh5.3.6export PATH=$PATH:$HIVE_HOME/binexport HBASE_HOME=/o...原创 2018-12-29 23:47:26 · 8909 阅读 · 0 评论 -
日常开发中linux中最常用的100条命令
一:用户管理命令1.1 useradd添加新用户1)基本语法: useradd用户名 (功能描述:添加新用户) 2)案例: [root@hadoop101 opt]# useradd robot1.2 passwd设置用户密码1)基本语法: passwd用户名 (功能描述:设置用户密码)2)案例 [root@ha...原创 2017-12-03 08:19:23 · 7891 阅读 · 1 评论 -
linux中tree工具命令的使用
一:tree工具功能说明:以树状图列出目录的内容,让你一目了然语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]补充说明:执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。安装演示:一般linux系统不会自带tree工具,要手动安装:yum -y install tree命令参数:t...原创 2018-01-22 20:28:13 · 15570 阅读 · 0 评论 -
虚拟机可以ping通外网和本地网络,但本地网路ping不通虚拟机的解决办法?
问题:有时候用虚拟机开发测试时,会突然发现用secure CRT等软件远程连接不了本地虚拟机,但是从虚拟机里面可以ping通百度或者本地localhost,虚拟机之间也可以互相ping通。但是反过来在cmd里面的DOS窗口却ping不通虚拟机?显示主机名错误或者其他什么原因? 解答:首先如果是ping IP地址从DOSping不通虚拟机,而反过来可以,那是因为没有本地的虚拟网卡没有配原创 2018-01-18 16:02:02 · 11877 阅读 · 4 评论 -
linux突然所有命令都失效了,显示bash: xxxxx: command not found...
昨天因为用虚拟机调试程序,然后下班时不正常关机,今天突然打开linux系统使用时,无论输入任何命令都显示bash: xxxx: command not found...,比如cd 显示bash: cd : command not found... 比如ls,显示bash: ls: command not found...。再比如hadoop fs -ls /robot bash: hadoo原创 2018-01-27 21:22:13 · 38897 阅读 · 13 评论 -
linux开发中常用的工具之netcat(nc瑞士军刀)
一:什么是瑞士军刀(netcat/nc)? netcat被誉为网络安全界的‘瑞士军刀’,简称nc.一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门(back-end)工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接. 使用之前首先我们要弄明白ne原创 2018-01-14 16:23:30 · 11077 阅读 · 0 评论 -
配置ssh免密码登录设置后还是提示需要输入密码
工作之余搭建了一个集群测试,配置了ssh免密码登录以后 ,所有的ssh-copy-id 密钥也都分发了 ,各项配置也没有问题,但是使用ssh进行免密登录时,没有报错,但是要输入被ssh主机的登录密码,跟没有配置的效果一样。 分析了一下,问题出现在创建的~/.ssh文件没有执行权限,所以造成配置无效(因为有时候没有~/.ssh文件时,要用户手动创建,创建后要chown改成...原创 2018-02-23 22:44:25 · 19894 阅读 · 2 评论 -
如何查看linux系统中某个软件是否安装,以及运行的软件安装的位置?
开发中有时候需要查看某个软件是否安装,以及为了配置某个软件的配置文件,需要知道其安装位置?但是linux安装软件的方式比较多,有用yum源安装的,有安装rpm包,也有tar直接解压tar安装的方式。所以没有一个通用的办法能查到某些软件是否安装了。方法一:一般软件安装完成以后都会配置环境变量,可以使用echo方法查看其安装目录,或者在cat /etc/profile查看[rob...原创 2018-03-17 22:42:55 · 48008 阅读 · 1 评论 -
查看linux中某个端口是否被占用,程序是否启动成功?
开发中经常需要查看linux中某个端口被哪个进程占用,是否占用?那个程序是否启动成功?方法一: lsof -i:端口号 lsof –i:8080 查看tomcat服务器的端口是否被占用,也是查看tomcat是否启动的方法之一方法二netstat -apn|grep 端口号[robot@hadoop104 ~]$ netstat -apn|grep 80方法三:查看某个程序是否启动成功?[roo...原创 2018-03-17 22:06:05 · 7954 阅读 · 0 评论 -
使用alias给常用的命令起别名
基于linux系统操作时,有时候我们会使用ls -l 来查看当前目录下的文件和目录了。但是也有人直接使用ll命令来实现此功能。ls -l可以一目了然,命令加参数,那ll又是什么鬼呢?这就要说到alias的命令了。[robot@hadoop103 ~]$ aliasalias egrep='egrep --color=auto'alias fgrep='fgrep --color=a...原创 2018-05-02 23:13:15 · 5885 阅读 · 0 评论 -
文件查找命令find的使用,如何高效地查找要想的文件
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。常用用法:命令 含义 find ./ -name test.sh 查找当前目录下所有名为test.sh的文件 find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件,单引号可以不加 find ./ -name "[A-Z]*" 查...原创 2018-07-17 12:11:30 · 7165 阅读 · 0 评论