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

相关文章

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Linux下修改hostname的三种实现方式

《Linux下修改hostname的三种实现方式》:本文主要介绍Linux下修改hostname的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下修改ho编程stname三种方式方法1:修改配置文件方法2:hFvEWEostnamectl命

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

C#中的 Dictionary常用操作

《C#中的Dictionary常用操作》C#中的DictionaryTKey,TValue是用于存储键值对集合的泛型类,允许通过键快速检索值,并且具有唯一键、动态大小和无序集合的特性,常用操作包括添... 目录基本概念Dictionary的基本结构Dictionary的主要特性Dictionary的常用操作

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A