Shell编程、linux命令工作常用,提高工作效率系列,快快收藏

本文主要是介绍Shell编程、linux命令工作常用,提高工作效率系列,快快收藏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

shell编程,linux命令内容清单

  1. shell脚本配置引用
  2. 查看端口
  3. 去掉字符串空格的操作(三种方法)
  4. ls文件查看
  5. 文件转码
  6. 全局查找文件,遍历机器所有目录
  7. 创建软链接
  8. split文件切分命令
  9. 特定位置替换
  10. shell线程并发执行命令
  11. 数值计算
  12. 浮点型数值计算
  13. top命令详解
  14. 压缩和解压详解

详细介绍:

  1. shell脚本配置引用
#!/bin/sh   #!/bin/bash
两者区别:
/bin/sh与/bin/bash虽然大体上没什么区别,但仍存在不同的标准。
标记为#!/bin/sh的脚本不应使用任何POSIX没有规定的特性
------------------------------------------------------
配置文件引用:
执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout 
1 /etc/profile:      此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。 
2 /etc/bashrc:       为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。 
3 ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 
4 ~/.bashrc:          该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。 
5 ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc /profile中的变量,他们是"父子"关系。 
6 ~/.bash_profile   是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
  1. 查看端口
netstat -nap | grep 6625   #查看端口
  1. 去掉字符串空格的操作(三种方法)
echo ${str// /}
echo $str | sed 's/ //g'
echo $str | tr -d " "
  1. ls文件查看
查看文件大小 
ls -Slr -h(从小到大)  
ls -Sl -h(从大到小)
ls -l |grep "^-"|wc -l  --查看目录下文件的个数
  1. 文件转码
cat $DataFile | iconv -f gbk -t utf8 > $DataFileUtf
  1. 全局查找文件,遍历机器所有目录
locate core-site.xml  --显示相关的全部结果
locate core-site.xml | grep -v aa  --查找目录下跳过aa目录下的查找 
  1. 创建软链接
ln -s 源文件 目标文件
  1. split文件切分命令
split命令
语法: split [-bl] 输入文件 输出文件
参数说明
-b :以文件大小来分
-l:以行数来分例如split -l 100 test.txt out
就是把test.txt每100行输出一个文件outaa,outab,outcd以此类推。。。实现了文本文件的分割。
split -b 100k test.txt out
就是把test.txt每100KB输出一个文件outaa,outab,outcd以此类推。
  1. 特定位置替换
--将每行第12个字符替换成逗号(,)
cat all_11.txt | sed 's/./,/12' > all_112.txt
  1. shell线程并发执行命令
mkfifo tmp4
exec 9<>tmp4
THREAD_NUM=15  --并发线程数
for ((i=0;i<$THREAD_NUM;i++))
doecho -ne "\n" 1>&9
done
newline=$'\n'summ=0 --循环计数器
while read line
dosumm=$[summ+1]echo `date +"%Y%m%d %H:%M:%S"`"第$summ行"#进程控制read -u 9 { echo ${line}  --执行主体#hive -e "${line}" >> ${resultfile} echo -ne "\n" 1>&9}&
done<${tmpsql}
wait   --等待所有线程结束
rm tmp4
  1. 数值计算
--bc、expr、let可用于数值计算
echo 3 + 5 |bc    --结果 8
echo 30 - 5 |bc   --结果 25echo 3 /* 5 |bc  --结果15echo 30 / 5 |bc --结果6
----------------------------------------------------
expr 3 + 5     --结果 8
expr 30 - 5    --结果 25
expr 3 /* 5    --结果15
expr 30 / 5    --结果6
----------------------------------------------------
let i=3 + 5  echo $i   --以此类推
----------------------------------------------------
((i=$j+$k))     等价于   i=`expr $j + $k`
((i=$j-$k))     等价于   i=`expr $j -$k`
((i=$j*$k))     等价于   i=`expr $j \*$k`
((i=$j/$k))     等价于   i=`expr $j /$k`
  1. 浮点型数值计算
 expr $a / $b   --结果为整数,只支持整除,保留整数部分,小数点后省略echo "scale=2;$a/$b" | bc   --scale 可以设置保留小数点后几位数awk 'BEGIN{printf "%.2f\n",('$a'/'$b')}'  --结果也是保留小数点后两位小数
  1. top命令详解
top - 13:54:57 up 417 days, 20:48,  1 user,  load average: 4.89, 6.08, 5.52
Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
Cpu(s): 58.4%us,  4.2%sy,  0.0%ni, 25.9%id,  1.0%wa,  0.0%hi, 10.5%si,  0.0%st
Mem:  32882860k total, 32784448k used,    98412k free,   472604k buffers
Swap: 32768092k total,  6157576k used, 26610516k free,  9535136k cachedPID    USER     PR   NI VIRT  RES  SHR S %CPU %MEM TIME+ COMMAND4295 hadoop    25   0 1371m  89m  11m S 148.7  0.3   0:04.48 java                                                                  4207 hadoop    25   0 1370m  87m  11m S 104.2  0.3   0:04.43 java                                                                  4418 hadoop    25   0 1347m  35m  10m S 29.9  0.1   0:00.90 java                                                                   
23975 hadoop    25   0 6172m 2.7g  11m S 21.6  8.7  27273:51 java    
...............1. 第一行是任务队列信息
13:54:57  当前时间
up 417 days  系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 4.89, 6.08, 5.52
系统负载,即任务队列的平均长度。 三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。2. 第二、三行为进程和CPU的信息
Tasks: 213 total 进程总数 
1 running 正在运行的进程数
212 sleeping 睡眠的进程数 
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 58.4%us 用户空间占用CPU百分比
4.2%sy 内核空间占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 
25.9%id  空闲CPU百分比
1.0%wa 等待输入输出的CPU时间百分比3. 第四五行为内存信息
Mem: 32882860k total 物理内存总量 
32784448k used 使用的物理内存总量 
98412k free 空闲内存总量 
472604k buffers 用作内核缓存的内存量
Swap: 192772k total 交换区总量
0k used 使用的交换区总量
192772k free 空闲交换区总量 
123988k cached 缓冲的交换区总量。 
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
  1. 压缩和解压详解
压缩	  --remove-files 参数删除文件
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 
tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar -xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip解压之后重命名 
tar -xzf 2016-11-21.tar.gz -O > a.txt总结
1、*.tar 用 tar -xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar -xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar -xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar -xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

这篇关于Shell编程、linux命令工作常用,提高工作效率系列,快快收藏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1735

相关文章

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库