linux常用命令总结

来源:互联网 发布:ubuntu没有中文语言包 编辑:程序博客网 时间:2024/06/04 19:06
1.    
rm   -drf   mydir
mydir下所有东西包括mydir全部删除

2.    
删除文件中某个单词
sed -e '/FAILED/d' result.txt.bak1.FAILED

3.
vi 中如何跳到指定行
:12 跳到12行

4.
 vi面板如何复制一行
1)把光标移动到要复制的行上
2)按yy
3)把光标移动到要复制的位置
4)按p5.

5.
如何用awk输出除第一列外的后面部分
awk '{$1="";print}'
awk '{for (i=2;i<=NF;" ";printf "\n"}'

[lvjun93@localhost SG]$ echo "ABC  D  123.3 233.2"|awk '{$1="";print}'
 D 123.3 233.2
[lvjun93@localhost SG]$ echo "ABC  D  123.3 233.2"|awk '{$1="";$2="";print}'
  123.3 233.2
6. shell 分割字符串存至数组

shell编程中,经常需要将由特定分割符分割的字符串分割成数组,多数情况下我们首先会想到使用awk
但是实际上用shell自带的分割数组功能会更方便。假如
a=”one,two,three,four”

要将$a分割开,可以这样:
OLD_IFS=”$IFS”
IFS=”,”
arr=($a)
IFS=”$OLD_IFS”
for s in ${arr[@]}
do
echo “$s”
done

上述代码会输出
one
two
three
four

arr=($a)用于将字符串$a分割到数组$arr ${arr[0]} ${arr[1]} … 分别存储分割后的数组第1 2 … 项 ,${arr[@]}存储整个数组。变量$IFS存储着分隔符,这里我们将其设为逗号 “,” OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。


7.shell数值计算


[lvjun93@localhost SG]$ a=1

[lvjun93@localhost SG]$ let "a+=1"

[lvjun93@localhost SG]$ echo $a

2


8.


$0就是该bash文件名$?是上一指令的返回值
    一般如果是 0 表示 运行正确, 
    非0 表示运行出错
$*所有位置参数的内容:就是调用调用本bash shell的参数。
$@基本上与上面相同。只不过是
“$*”返回的是一个字符串,字符串中存在多外空格。
“$@”返回多个字符串。
9.shell 字符串截取
[lvjun93@localhost SG]$ str="20130328"[lvjun93@localhost SG]$ echo ${str:0:4}2013[lvjun93@localhost SG]$ echo ${str:4:2}03[lvjun93@localhost SG]$ echo ${str:6:2}28[lvjun93@localhost SG]$ echo ${#str}8
10.求指定日期的下一天
#date -d "20110228 1 days" "+%Y%m%d"
20110301
#date -d "20110830 1 days" "+%Y%m%d"
20110831

获取当前时间---年月日时分秒
[@djt_6_3 script]$ date +%Y%m%d%H%M%S
20130401173145
求指定日期的前一天
date -d "20110228 1 days ago" "+%Y%m%d"

date -d "`date +%Y%m%d` 1 days ago" "+%Y%m%d"


11. bash echo 换行
echo -e "abc"


12.
lzop 解压命令 
lzop -d recommender.err.log.2013-03-28_23.lzo -o recommender.err.log.2013-03-28_23
13 定时运行脚本命令
[@djt_6_3 etc]$ crontab -l
no crontab for lvjun
14
[@djt_6_3 script]$ cat  recom_UIDlist_stat_2013-03-29|awk -F"UID=" '{print $2}'|awk -F"_L" '{print $1}'

15.

16.重定向标准输出到标准错误
[@djt_12_228 tools]$ ./test2.sh 2>&1 |tee test2.log

17.mkdir创建多级目录
mkdir -p

18.grep  的时候取反
awk '{print $3}' log_push_20130330.txt | grep "9774d56d682e549c_[^0-9a-z]"

19.
如果是要删除第三行:
sed -i '3d' 1.txt
 
如果删除以Love开头的行
sed -i '/^Love/d' 1.txt
 
删除包含Love的行
sed -i '/Love/d' 1.txt

-i选项就是作用到源文件,否则输出到标准输出
sed '/^.\{1,20\}$/d' file
sed  -i '/^.\{1,35\}$/d' testfile

[@djt_12_228 ~]$ wc -l recom_click_uidlist_20130330 
15448 recom_click_uidlist_20130330
[@djt_12_228 ~]$ sed  -i  '/^.\{1,38\}$/d' recom_click_uidlist_20130330
[@djt_12_228 ~]$ wc -l recom_click_uidlist_20130330                    
15434 recom_click_uidlist_20130330

20.文件每行结尾追加内容
sed -i 's/$/&[____]20130330_12:30:15/' testfile

sed  's/$/&\t20130330 12:30:15/' recom_click_uidlist_20130330.bak

21. sort 排序
$ sort -t = -k 2 query_log_20130330-20130331 >query_log_20130330-20130331.sorted

cp  /search/wangpan/tools/recom_click_uidlist_20130330 .

21. 编码
set encoding=utf-8

22.
sort 1.txt | uniq -c | sort -k1nr>3.txt
[@djt_12_228 new_diff_case]$ echo "adBGF" |tr a-z A-Z         
ADBGF
[@djt_12_228 new_diff_case]$ echo "adBGF" |tr  A-Z  a-z
adbgf
# 过滤掉所有标点符号(.、,、?、!)
$ sed 's/\.//g' -e 's/\,//g' -e 's/\?//g' -e 's/\!//g' myfile


cat zuqiu_query_org_col1 | tr  A-Z  a-z > zuqiu_query_org_col1.xiaoxie
sort zuqiu_query_org_col1.xiaoxie | uniq -c | sort -k1nr>zuqiu_query_org_col1.sorted
head -50 zuqiu_query_org_col1.sorted |awk '{print $2}' > zuqiu_query_org_col1.case

23.vi 如何跳到最后一行
shift +G
24.
scp -r root@10.10.122.76://search/zhangk/ontology_edit ./

25.
awk ' BEGIN{FS="\t"} { if (length($2) != 1)print $1"\t"$2}' ./sample1.txt >sample2.txt

26.程序后台运行
nohup 命令 &awk -F

27 .    cat id_schema.txt |awk -F"\t" '{print $2}'|awk -F"_" '{print NF}' |grep 1
28.
cat id_schema.txt |awk -F"\t" '{print $2}'|awk -F"_" '{if(NF>=2) print $(NF-1)}'
cat id_schema.txt |awk -F"\t" '{print $2}'|awk -F"_" '{if(NF>=2)print $1$(NF-1);else print "abcd" }' > lei.txt

29. vim撤销 U 反撤销ctrl +r

30
命令行选项 -F"[:/]"  告诉awk / 和 : 都是字段分隔符
31.
awk '{if ((($1==$2)||($2==-1))&&($3==$4)) print $5}' 16354.txt > yuhuo.txt
32
sort -t $'\t' -k2,2 bingyu_schema.txt.rmat > bingyu_schema.txt.rmat.sort

33.  压缩  tar -czvf lvjun.tar.gz lvjun
解压 tar -xzvf lvjun.tar.gz
34.更改目录或文件的用户权限
chown -R www-data:www-data lvjun
grops 查看用户所在组
35.编译boost多线程程序
g++ -o 1.out 1.cpp -I$BOOST_INCLUDE -L$BOOST_LIB -lboost_thread
36. 按行打乱一个文件
  shuf -n 10 zhanxian.txt.20130715 -o out.txt

36. 取出两个文件的交集(只留下同时存在于两个文件中的文件)

    cat file1 file2 | sort | uniq -d

37.获取指定行

sed -n '1,2p'  sogou.html.20130724

3042110 

sed -n ' 3042010, 3042210 p' sogou.html.20130724 >1.txt

38.把输出重定向到文件和屏幕

echo "abc" | tee a

39.编码转换

iconv -c -s -f utf8 -t gbk inputfile -o  outputfile

原创粉丝点击