Linux
香山上的麻雀1008
大数据
展开
-
shell中,将文件内容按照“,“切割,切割后的第一列做分组键,并将第三列加和,然后按照第三列的和倒序排序打印出来
即将Linux中的文件解析,实现。原创 2023-08-10 20:08:14 · 170 阅读 · 0 评论 -
shell中按照特定字符分割字符串,并且在切分后的每段内容后加上特定字符(串),然后再用特定字符拼接起来
【代码】shell中按照特定字符分割字符串,并且在切分后的每段内容后加上特定字符(串),然后再用特定字符拼接起来。原创 2023-07-29 12:39:56 · 1040 阅读 · 0 评论 -
【Linux】文件,每行内容按“\t“切割,筛选出内容包含“;“ 的 或者 切割后字段数小于16的 行
答案:cat file.txt | awk -F "\t" '{if(NF<16 || index($0,";")) print $0}'这里用到了awk工具。主要用到了以下知识点:-F参数:指定分隔符,可指定一个或多个awk中的内置变量常用字符串函数awk的if语句...原创 2022-04-21 10:05:40 · 1397 阅读 · 0 评论 -
shell 数字循环中变量的使用
shell环境,假设有一个变量NUM,需要用一个for循环输出NUM到NUM+n之间的所有值常用做法是for a in {NUM..NUM+n}do echo ${a}done例如:但是引用了变量结果就不一样了:这里{${a}..${b}}被当作一整个字符串了解决方法是用eval*for i in `eval echo {$a..$b}`...原创 2020-01-13 18:51:59 · 2552 阅读 · 0 评论 -
查看主机外网IP地址
命令行查询(详细):UNIX/Linux:# curl cip.ccWindows:>telnet cip.cc >ftp cip.cc命令行查询(纯ip):UNIX/Linux:# curl ip.cip.cc原创 2021-09-28 17:12:03 · 686 阅读 · 0 评论 -
Vim 批量编辑命令
dd:删除游标所在的一整行(常用)ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行d1G:删除光标所在到第一行的所有数据dG:删除光标所在到最后一行的所有数据d$:删除光标所在处,到该行的最后一个字符d0:那个是数字0,删除光标所在到该行的最前面的一个字符x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符(相当于[backspace...原创 2020-01-15 17:38:48 · 317 阅读 · 0 评论 -
yum的repo文件详解、以及epel简介、yum源的更换
一、什么是repo文件repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!YUM的工作原理并不复杂,每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装 哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来转载 2021-09-07 10:41:40 · 7079 阅读 · 0 评论 -
Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 解决方法
背景:我从一台服务器上同步数据到另一台服务器上:# [star-001 root 15:12:14] [五 9月 03] $ rsync fe/ xxx@xxx:/data/software/xxx/Permission denied (publickey,gssapi-keyex,gssapi-with-mic).rsync: connection unexpectedly closed (0 bytes received so far) [sender]rsync error: unexpl原创 2021-09-03 15:27:42 · 2612 阅读 · 0 评论 -
Linux expect 自动输入密码
脚本开头要写上expect的路径#!~/.software/expect5.45/expect 完整脚本demo如下:#!~/.software/expect5.45/expect spawn scp -r dead.letter bigdata@cdh01:/home/bigdata/expect "*password"send "xxxxx\n"expect eof原创 2021-07-20 13:43:26 · 434 阅读 · 0 评论 -
shell 脚本小技巧【持续更新中】
文章目录shell 脚本中,使用vim打开文件非编辑模式下,光标放在数字上,使用 Ctrl+a 组合,可以使数字+1原创 2021-07-17 19:02:59 · 1033 阅读 · 0 评论 -
shell 脚本 每日调度SQL,失败则调度多次,成功则直接退出
$ cat sku_schedule.sh export psimport_sku(){ impala-shell -f xxx.sql ps=$? if [ $ps -eq 0 ];then echo "xxx信息已更新" fi}for ((i=0;i<5;i++))do import_sku if [ $ps -eq 0 ];then原创 2021-07-15 20:02:51 · 423 阅读 · 0 评论 -
sed 删除文件中含有特定字符(串)的行
如:删除文件中含有字符串DRFA的行:sed -i '/DRFA/d' users_2021-07-12.csv原创 2021-07-12 16:11:47 · 1692 阅读 · 0 评论 -
一个循环执行 给hive脚本传参最近一个月的shell脚本
#!/bin/bashif [ $# -ne 1 ];then echo "参数不正确" exit 1fidate_str=`date +"%Y-%m-%d"`fname=`basename $0`pdir=`cd -P $(dirname $0); pwd`ifile=$pdir/$fnamecd $pdirfor i in {1..30};do dt=`date -d "-${i} days" +"%Y%m%d"` fs=$1 #f原创 2021-07-07 11:19:36 · 383 阅读 · 0 评论 -
Linux 打tar包排除某些目录
排除单个目录tar zcvf xxx.tar.gz --exclude=/xxx/xxx/xxx /xxx排除多个目录tar zcvf export_data.tar.gz \--exclude=export_data/order/ads_platform_order_sales_analysis \--exclude=export_data/miniconda3 \--exclude=export_data/eds_org_v2_employee_user_configuration/dt原创 2021-06-29 16:24:07 · 557 阅读 · 0 评论 -
Linux Shell进入文件当前目录
如下:fname=`basename $0`pdir=`cd -P $(dirname $0); pwd`ifile=$pdir/$fnamecd $pdir原创 2021-06-25 17:02:52 · 928 阅读 · 0 评论 -
shell 命令行正则使用小记
我有一些shell脚本:shell脚本文件名打码$ ll总用量 44-rw-r--r-- 1 bigdata bigdata 17921 5月 26 20:40 ivs_co_funnel.java-rwxr--r-- 1 bigdata bigdata 412 5月 14 10:28 sqoop_---o_funnel.sh-rwxr--r-- 1 bigdata bigdata 411 5月 14 10:49 sqoop_h---cnt_once.sh-rwxr--r-- 1原创 2021-05-26 20:50:37 · 243 阅读 · 0 评论 -
如何向expect脚本里面传递参数
比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递ssh.exp#!/usr/bin/expect set timeout 10 set username [lindex $argv 0] set password [lindex $argv 1] set hostname [lindex $argv 2] spawn ssh-copy-id -i .ssh/id_rsa.pub $username@$hostname原创 2021-05-20 11:24:57 · 2511 阅读 · 0 评论 -
Linux环境 tinyproxy安装配置及使用教程【超详细】
安装# centossudo yum install tinyproxy# ubuntusudo apt install tinyproxy配置vim /etc/tinyproxy/tinyproxy.conf需要修改的是:# 注释掉这一行# Allow 127.0.0.1# 修改端口号Port 8787Allow 是允许访问的主机IP,不写就是允许所有主机访问Port 是代理访问端口号启动/停止/查看状态/重启命令systemctl start tinyproxy原创 2021-04-21 19:40:28 · 15778 阅读 · 0 评论 -
shell中冒号的用法
冒号在Linux中是一个空命令,可以认为与shell的内建命令true相同,它的返回值是0.在while循环中 while : 与 while true 的作用是等效的在 if/then 中可作为占位符if conditionsthen: #什么都不做elsetake action fi使用冒号还可以用作注释行的开始,但是如果有语法错误,仍将报错,这一点与使用#号不同...原创 2019-09-19 17:10:22 · 1397 阅读 · 1 评论 -
Linux shell 字符串替换
方法一# [cdh01 root 09:57:39] [Thu Mar 25] $ str="hello world"# [cdh01 root 09:58:09] [Thu Mar 25] $ echo $strhello world# [cdh01 root 09:58:14] [Thu Mar 25] $ echo ${str/o/P}hellP world但是这种方法不能全局替换:# [cdh01 root 09:58:45] [Thu Mar 25] $ ech原创 2021-03-25 10:04:10 · 1595 阅读 · 0 评论 -
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
买的新的腾讯云服务器报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)详细如下:# [cdh02 root 19:44:00] [Tue Mar 16] /data/software$ ssh cdh01The authenticity of host 'cdh01 (172.21.64.11)' can't be established.ECDSA key fingerprint is SHA256:d6/hLeY+Xe原创 2021-03-16 19:50:49 · 515 阅读 · 0 评论 -
3种方法更改Linux系统的主机名(hostname)
本文由 简悦 SimpRead 转码, 原文地址 www.linuxdashen.com这篇文章介绍更改 Linux 系统主机名 (hostname) 的 3 种方法。查看当前的主机名首先我们使用 hostname 命令来查看当前的主机名。hostname也可以使用 hostnamctl 命令hostnamectl更改主机名的第一种方法主机名保存在 /etc/hostname 文件里,所以我们可以打开这个文件,手动编辑主机名。sudo nano /etc/hostname将当.转载 2021-03-10 15:13:16 · 3066 阅读 · 0 评论 -
命令行的艺术( the-art-of-command-line )
命令行的艺术转自 https://github.com/jlevy/the-art-of-command-line前言基础日常使用文件及数据处理系统调试单行脚本冷门但有用仅限 OS X 系统仅限 Windows 系统更多资源免责声明curl -s 'https://raw.githubusercontent.com/jlevy/the-art-of-command-line/master/README.md' | egrep -o '`\w+`' | tr -d '`' |转载 2021-02-08 09:28:45 · 1717 阅读 · 0 评论 -
linux下切换用户出现This account is currently not available
今天在一台新服务器下切换用户的时候出现“This account is currently not available”错误这是因为用户的shell设置的禁止登录解决办法:比如我是 su apache的时候出现的问题用vi看看 apache的帐号信息# cat /etc/passwd | grep apache发现它的shell是“/sbin /nologin”,需要将起改成“/bin/bash”# vim /etc/passwd修改完毕后,保存退出这 样再 su apache就可以很原创 2021-01-04 15:17:42 · 1294 阅读 · 0 评论 -
Linux的tee命令
用于读取标准输入的数据,并将其内容输出成文件。语法:tee [-ai][--help][--version][文件...]参数:-a或--append 附加到既有文件的后面,而非覆盖它.-i或--ignore-interrupts 忽略中断信号。--help 在线帮助。--version 显示版本信息。实例使用指令"tee"将用户输入的数据同时保存到文件"file1"...原创 2020-04-03 09:27:07 · 254 阅读 · 0 评论 -
Linux下split生成的文件按规律命名及添加扩展名
shell下的split命令主要用于分割一些大文件用的,比如经常要用到将一个几十万行的TXT分割为多少行一个的文件,非常有用,唯一坑爹的是,切割后的文件不能自动添加扩展名和按规律命名,刚找到一个还算不错的示例,算是解决了分割后命名无规律的问题,记录如下。今天又用到了split命令,想批量给分割后的文件添加扩展名,终于找到一个靠谱的方法,记录如下:split kws.txt -l 1000 -d...转载 2019-09-11 10:00:33 · 7937 阅读 · 0 评论 -
Linux小工具之axel 快速下载
axel是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载。Axel 支持 HTTP、HTTPS、FTP 和 FTPS 协议。它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为)。它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存。原创 2019-09-05 14:49:07 · 916 阅读 · 0 评论 -
linux命令下jq的用法简介
jq简介jq可以对json数据进行分片、过滤、映射和转换,和sed、awk、grep等命令一样,都可以让你轻松地把玩文本。它能轻松地把你拥有的数据转换成你期望的格式,而且需要写的程序通常也比你期望的更加简短。jq是用C编写,没有运行时依赖,所以几乎可以运行在任何系统上。预编译的二进制文件可以直接在Linux、OS X和windows系统上运行,当然在linux和OS X系统你需要赋与其可执行权...原创 2019-09-02 09:40:26 · 29307 阅读 · 1 评论 -
Centos升级gcc至5.4.0
下载、解压源码包(可从官方镜像地址https://gcc.gnu.org/mirrors.html选择适合自己的下载地址与gcc版本)wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.gztar xvf gcc-5.4.0.tar.gzcd gcc-5.4.0下载依赖包...原创 2019-08-03 16:08:38 · 3005 阅读 · 1 评论 -
Linux学习笔记:什么是挂载?mount的用处在哪?
本文转载自其他博主,原文链接: 刺客五六柒关于挂载的作用一直不是很清楚,今天在阅读教材时看见了mount这个命令,发现它的用处很隐晦但非常强大。奈何教材说的不明朗,因此在网上整合了一些优秀的解释,看完之后豁然开朗。1.提一句Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,…)。比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载...原创 2019-04-11 10:08:27 · 381 阅读 · 0 评论