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

相关文章

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Linux之软件包管理器yum详解

《Linux之软件包管理器yum详解》文章介绍了现代类Unix操作系统中软件包管理和包存储库的工作原理,以及如何使用包管理器如yum来安装、更新和卸载软件,文章还介绍了如何配置yum源,更新系统软件包... 目录软件包yumyum语法yum常用命令yum源配置文件介绍更新yum源查看已经安装软件的方法总结软

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Linux:alias如何设置永久生效

《Linux:alias如何设置永久生效》在Linux中设置别名永久生效的步骤包括:在/root/.bashrc文件中配置别名,保存并退出,然后使用source命令(或点命令)使配置立即生效,这样,别... 目录linux:alias设置永久生效步骤保存退出后功能总结Linux:alias设置永久生效步骤

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用