linux shell脚本命令
sort命令
sort #按照字典序排序
sort -n #以数值来排序,避免10比2小的情况
sort -k #如果文件有多列,指定排序的列
sort -r #逆序排列
uniq 命令
一般结合sort命令,出去文件中重复的行
sort testfile | uniq #删除文件中重复出现的行
sort testfile | uniq -c #删除文件中重复出现的行,并在行首显示该行重复出现的次数。
awk 命令
NF 浏览记录的域的个数,亦统计的是每行列的总数
NR 已读的记录数,亦有多少行
$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。
$NF是number finally,表示最后一列的信息
# 输出包含"re" 的行
$ awk '/re/ ' log.txt # 输出第二列包含 "th",并打印第二列与第四列
$ awk '$2 ~ /th/ {print $2,$4}' log.txt $ awk '$1==2 {print $1,$3}' log.txt
#输出第一列等于2,并打印第一 和第三列 取出某一列中包含_的列
$ awk 'BEGIN{FS = " "}{for (f=1; f <= NF; f+=1) {if ($f ~ /_/) {print NR,$f}}}' pride.txt >output
$ awk -F ' ' '{for (f=1; f <= NF; f+=1) {if ($f ~ /_/) {print $f}}}' result1 > file.out
grep 命令
grep表达式的格式:grep [选项] ”模式“ [文件]
常用选项
- -E :开启扩展(Extend)的正则表达式。
- -i :忽略大小写(ignore case)。
- -n :显示行号
正则表达式
- . #匹配任意一个字符。
- [abc] #表示匹配一个字符,这个字符必须是abc中的一个。
- [a-zA-Z] #表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。
- [^123] #匹配一个字符,这个字符是除了1、2、3以外的所有字符。
- [0-9] #匹配一个数字
- {m,n} #匹配其前面出现的字符至少m次,至多n次。
- ^ #锚定行首
- $ #锚定行尾。^$ 用于匹配空白行。
- a|b #匹配a或b,注意a是指 | 的左边的整体,b也同理。比如 C|cat 表示的是 C或cat,而不是Cat或cat,如果要表示Cat或cat,则应该写为 (C|c)at
grep key file.txt #输出file.txt包含key的行
tr 命令
用于转换或删除文件中的字符。
tr -d '\t' #删除文件中'\t'字符
tr -s ' ' '\n':缩减连续的空格为换行符
cat testfile |tr a-z A-Z #将文件中的小写字符转化为大写字符
wc命令
一般是统计行数或者是字数
-c 只显示Bytes数。
-l 只显示行数。
-w 只显示字数。
文件拷贝命令
scp [可选参数] 源文件 目标文件
scp -r /home/steve/music/ antonio@172.168.13.34:/home/antonio/file 将本地文件夹music拷贝到远程file路径下
scp -r antonio@172.168.13.34:/home/antonio/file /home/steve/music/ 将远程文件file拷贝到本地文件夹music下 cp -r source target
查看目录相关操作
du -sh * #查看当前目录下各个文件及各目录占用空间大小
du -sh #查看当前文件夹占用大小
df -f #查看硬盘大小及使用情况
ll |wc -l #计算文件的数量
其他命令
wget link #下载文件
ps -ef| grep get_mp3.py #打印get_mp3.py进程的信息
解压
*.tar 用 tar –xvf 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.tar.bz2用tar –xjf 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
压缩
zip -r 1.zip *to #压缩以to结尾的文件,压缩文件名为1.zip,递归压缩当前目录下的文件
linux shell脚本命令的更多相关文章
- linux 基础 shell脚本命令
#########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- linux shell 脚本攻略学习20--awk命令入门详解
awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell 脚本入门
linux shell 脚本格式 #!/bin/sh#..... (注释)命令...命令... 使用vi 创建完成之后需设置权限 chmod +x filename.sh 执行命令: ./filena ...
- Linux Shell脚本攻略 读书笔记
Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...
- 阿里Linux Shell脚本面试25个经典问答
转载: 阿里Linux Shell脚本面试25个经典问答 Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命 ...
随机推荐
- BoW算法及DBoW2库简介(二)
一.BoW算法 用OpenCV实现了最简单的BoW算法进行了一次小规模的图像检索任务,使用UKbench数据库,算法原理和网上的描述差不多,使用K-means算法进行聚类,这里使用KDTree算法进行 ...
- Paper | Highway Networks
目录 1. 网络结构 2. 分析 解决的问题:在当时,人们认为 提高深度 是 提高精度 的法宝.但是网络训练也变得很困难.本文旨在解决深度网络训练难的问题,本质是解决梯度问题. 提出的网络:本文提出的 ...
- 通过yum在centos安装mysql并配置远程登录
前言 前天按照Oracle上的文档装了一遍mysql,选了最新8.0的版本,后来出现一些问题,网上搜答案,出来的基本还是5.x版本的解决方案,并不适用8.0版本.然后我就去看了一下公司的正式环境买的阿 ...
- 一站式解决Mac--socket.gaierror: [Errno 8] nodename nor servname provided, or not known
socket.gaierror: [Errno 8] nodename nor servname provided, or not known 原因:hostname 没有写在/etc/hosts里 ...
- spring cloud 2.x版本 Gateway熔断、限流教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...
- pytorch-argparse的用法
import argparse def parse(): parser = argparse.ArgumentParser() parser.add_argument('--scales',help= ...
- SpringBoot系列之profles配置多环境(篇二)
SpringBoot系列之profles配置多环境(篇二) 继续上篇博客SpringBoot系列之profles配置多环境(篇一)之后,继续写一篇博客进行补充 写Spring项目时,在测试环境是一套数 ...
- Long类型数据前端精度丢失
问题描述 后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况.例如:201511200001725439这样一个Long类型的整数,传给前端后会变成201511200001725440 相 ...
- laravel项目本地数据库连接错乱原因和解决方法
由于在本地建了两个laravel项目,test.me 和 api-test.me,当我在 test.me 中调用 curl 去请求 api-test.me 的方法,试图获取数据时, 接口一直返回没有找 ...
- 在windows实现nginx滚动日志
nginx自身并不能够切分或滚动日志,因此只能用一个bat脚本按天切割日志,并删除三天前的日志 @echo off rem nginx滚动日志 rem nginx工作目录 set workspace= ...