Shell——日常工作常用的命令
来源:互联网 发布:江铃顺达仪表算法 编辑:程序博客网 时间:2024/05/21 11:14
个人来说,shell指令很好很强大。工作中经常用到一些命令,这里总结分享一下。
1 合并文件。
for file in AcAppeal3 ;do cat $file >>AcAppeal2;done
直接在shell命令行输入这一行
2 $?。
$? 返回上一次shell执行返回值$0就是该bash文件名$?是上一指令的返回值$*所有位置参数的内容:就是调用调用本bash shell的参数。$@基本上与上面相同。只不过是$*返回的是一个字符串,字符串中存在多外空格。$@返回多个字符串。$1 调用本bash shell的第一个参数
3 sed替换。
sed -i 's/&mt=//g' oknid_spamzd.txt
4 磁盘命令。
df -Ph du -sh
5 查看cpu核数。
cat /proc/cpuinfo cpu cores
6 查看进程命令。
ls -l /proc/$pid/exe
7 sort指令。
sort -t $'\t’ tab分隔符 sort -k2 -rn -t $'\t’ hotData 按照hotData文件第二列逆序排列 ,分隔符是tab键
8 nohup后台执行。
nohup ./test.sh > /dev/null 2>&1 & ; nohup php ./test.php > /dev/null 2>&1 &
9 ps指令。
ps -aux | grep php-cgi ; pstree -ap arch | grep php-cgi 树状结构
10 cut分割字符串
cut -d ‘_' -f 2 infile > outfile
11 linux环境变量 echo
echo `date +%s`"post work cost: "$cost"s" env 显示所有环境变量 ; echo $HOME 显示环境变量$HOME echo -n 输出后不换行 echo -e 输出中转义字符生效
12 grep指令。
grep "cm='100009'" submit.log | grep "errorNo='0'" | grep -oP "HookafterCommandReady_ms=\d+"
13 增加alias快捷命令。
cd ~ 切换到用户例如iknow主目录下。vim .bashrc, 最后增加 alias php =‘/home/iknow/odp/php/bin/php’;source .bashrc 必须执行这句话。否则命令不生效。
14 账号切换。
root账号切换成work普通帐号: su - work (su work的话,不会带有原来的环境变量)普通帐号切换成root : su 或 su - ,并输入密码。 一般exit可以返回root账号,且不用输入密码。 root账户下想要重置work帐号密码: passwd workroot账户下想要添加账号 /usr/sbin/adduser iknow 或者 /usr/sbin/useradd iknow
15 tar解压缩指令。
压缩: tar -zcvf smartmis.tar.gz smartmis/ 解压缩: tar -zxvf smartmis.tar.gzzip解压缩指令。zip -r mydata.zip mydata #压缩mydata目录unzip mydata.zip -d mydatabak
16 查看端口号占用情况。
1 可以通过"netstat -anp | grep 8777 " 来查看哪些端口被打开。2 /usr/sbin/lsof -i:8777 找到进程号。 ls -l /proc/pid/exe
17 iconv指令。
iconv -f utf-8 -t gbk -c utf8_file > gbk_file
18 awk指令。
两个文件合并。 awk 'NR==FNR{a[$1]=$2}NR>FNR{if(($1 in a)){print $0"\t"a[$1]}else{print $0"\t"0}}' naopinfo nacinfo > na naopinfo文件 cindex,auditflag nacinfo文件 cindex ,audited,pack 根据第一列去重复。 CUST_ID=''; sort -k1 -t'#' out_spamzd | awk -F '#' '{if ($1 == CUST_ID) {} else { CUST_ID = $1; print $0 ; } }' > Target.TXT根据第一列去重复 awk -F '#' '{if(($1 in a)){}else{print $0;a[$1]=1;}}' duid.txt > temp.txtawk -F "\t" '{store[$1"\t"$2]+=$3}END{for(i in store) print i"\t"store[i]}' ./data/$day.final |sort -k3 -k1 -nr > ./data/$day.person//统计训练样本label的分布情况awk '{s[$0]++;}END{for(i in s) print i"\t"s[i]"\n"}' train_label_new19 SVN操作相关**过滤.svn目录 grep-r . "xx" | grep -v .svn删除.svn目录 for file in `find . -name .svn`; do rm-rf"$file"; done find ./ -name .svn -exec rm -rf {} \;
19 find+sed
批量修改文件名 find -type f -exec sed-i 's/newikqb/ikqbnew/g' {} \;rename 修改文件名 rename curNameStr newNameStr ./curFile rename curNameStr newNameStr curDir 例如: rename a b test/* test/a01 替换成 test/b01
20 ln链接
ln -s /path/to/file file 软链接 ln 默认是硬链接,带-s选项是软链接。 用绝对路径方可链接目录。
21 split分割
split -l 1000 inputFile -d -a 2 thread -l 每个文件分成行数,-d使用数字作为后缀,-a 2 指定后缀长度为2 ,thread指定前缀名字为thread
22 if语句 Case语句
if [ 条件表达式 ]
then
command
command
else
command
fi达式
[ -f file ] 如果文件存在
if [ -d … ] 如果目录存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行
- 整数变量表达式
- if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<
- 字符串变量表达式
If [a= b ] 如果string1等于string2
字符串允许使用赋值号做等号
if [string1!= string2 ] 如果string1不等于string2
if [ -nstring]如果string非空(非0),返回0(true)if[−z string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似)
case 值 in
模式1)
command1
;;
模式2)
command1
;;
*)
command1
;;
esac
case $aNum in
1) echo ‘You select 1’
;;
2) echo ‘You select 2’
;;
3) echo ‘You select 3’
;;
4) echo ‘You select 4’
;;
*) echo ‘You do not select a number between 1 to 4’
;;
esac
23 pmap指令
提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。
pmap -d 19694
24 Shell 函数使用示例
function split_file() { thread_num= $1 } thread_num=10 split_file $ thread_num
shift命令用于对参数的移动(左移)
25 PS TOP
ps : 是显示瞬间进程的状态,不动态连续,常用 ps -ef | grep ***top : 对进程实时监控
26 netstat 网络
27 xargs
例如:统计某个目录下php文件代码总行数,去除空行。
find ./* -name '*php' | xargs cat | grep -v "^$" | wc -l
说明: 之所以能用到xargs这个命令,是由于很多命令不支持 | 管道来传递参数,xargs 可以读入 stdin 的数据,并且以空白字元或断行字元作为分隔符,将 stdin 的资料分隔成为 arguments,于是参数列表转换成小块分段传递给其他命令,避免参数列表过长的问题。
grep -v “^$” 是剔除空行。
wc -l `find . -name '*php'` | tail -n1
说明: tail -n 1是显示倒数第一行。 但是此方法没有去除空行。
find -name ‘*php’ -exec wc -l {} \;|awk ‘{a+=$1}END{print a}’
说明:该方法也是不能统计空行。
ps auxw|head -1;ps auxw|sort -rn -k3|head -10 > memory.txt
ps 出来系统所有的应用程序,然后sort 根据第三列CPU使用率逆序排序,取出前十的重定向到文件中便于查看。
Tips:sort -rn -k4 就可以根据Memory使用率来排序。
- Shell——日常工作常用的命令
- 常用的shell命令
- shell 常用的命令
- 常用的Shell命令
- 常用的shell命令
- 常用的shell命令
- 揭秘—高级产品经理的日常工作
- Hbase之——常用Shell命令
- Ubuntu——常用shell命令
- Git从零开始-日常工作不可缺少的命令
- 常用到的shell命令
- 一些常用的shell命令
- 我常用的shell命令
- 一些常用的shell 命令
- 一些常用的shell命令
- 常用的Shell命令汇总
- 常用的Shell命令汇总
- 常用的shell命令整理
- 让思考成为习惯,让学习溶于生活
- 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)
- 从西直门立交桥谈IT架构与重构(干货)
- 线程:CPP lambda表达式与多线程
- swift strinng的扩展
- Shell——日常工作常用的命令
- Linux中Kill进程的N种方法
- FaceBook invalid key hash问题
- 血族 第一季 The Strain Season 1 (2014)
- java程序读取时分秒为00:00:00
- How to load multiple Spring bean configuration file
- Swift之TabBarController中自定义tabbarItem选中效果图片
- strcmp函数实现及分析
- android软键盘把页面挤上去的解决方法