Linux(1)---常用命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux(1)---常⽤命令
1、将tgz⽂件解压到指定⽬录:
# tar zxvf test.tgz -C 指定⽬录
⽐如将 /lyl/test.tgz解压到 /lyl/linux ⽬录下
# tar zxvf /lyl/test.tgz -C /lyl/linux
2、删除正则匹配的⽂件
⽐如 home下⾯有我备份的⽂件压缩包(是按照每5分钟备份⼀次,⽂件名取⽇期加启动时间为名)
a_20100703174001.tar.gz
a_20100703174501.tar.gz
....
....
a_20100704013001.tar.gz
a_20100704013501.tar.gz
我想把a_20100703这个⽇期的所有备份⽂件删除掉!
这个a_20100704的保留
find . -name "a_20100703*" | xargs rm
将标准输⼊作为xargs后⾯命令的参数
4、grep:正则,从⼤量的⽂件中找出含有特定字符的⽂件。# 使⽤-l选项,从3个⽂件(1.txt,2.txt,3.txt)中找到内容包含first的⽂件
[roc@roclinux ~]$ grep -l "first" *.txt
1.txt
原来只有 1.txt ⽂件中包含有 first 单词。如果我想找出不含 first 单词的⽂件都有哪些,该如何操作呢?
[roc@roclinux ~]$ grep -L "first" *.txt
2.txt
3.txt
我们希望搜索/etc/passwd⽂件中开头是 leo 的⾏:
# ^表⽰⾏⾸
[root@roclinux ~]# grep'^leo' /etc/passwd
leo:x:503:503::/home/leo:/bin/bash
我们希望搜索 /etc/passwd ⽂件中⾏尾是 bash 的⾏呢?
# $ 表⽰⾏尾
[root@roclinux ~]# grep'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
cloud-user:x:500:500::/home/cloud-user:/bin/bash
test:x:502:502::/home/test:/bin/bash
leo:x:503:503::/home/leo:/bin/bash
roc:x:504:504::/home/roc:/bin/bash
grep:快速搜索在⽬录下⾯的含有关键字的⽂件
cd directories
grep -r 关键字
grep搜索⽂件是否包含指定内容并返回⽂件名
第⼀种⽅法:使⽤grep,假设搜索所有的.cpp⽂件是否包含'open'字符串,如果包含了,则显⽰该⽂件,命令如下:
grep -rl 'open' . --include=*.cpp
则执⾏结果如下:
./test/testall/file.cpp
./test/testall/shell_test.cpp
./test/daemontest/main.cpp
但是有时候只显⽰⽂件名,也不知道出现的地⽅到底是什么样⼦的,如果还有顺带查看⼀下那⼀⾏的内容,可以⽤如下命令:grep -rn 'open' . --include=*.cpp
则,执⾏结果如下:
./test/testall/file.cpp:270: FILE *file = fopen(file_name.c_str(),"w");
./test/testall/file.cpp:273: printf("Can't open the file\n");
./test/testall/shell_test.cpp:29: FILE *file = fopen(file_name, "r");
./test/daemontest/main.cpp:53: openlog("daemontest",LOG_PID,LOG_USER);
显⽰了⽂件名,⾏号以及该⾏内容。
第⼆种⽅法:使⽤find命令+grep
假设搜索所有的.cpp⽂件是否包含'open'字符串,如果包含了,则显⽰该⽂件,命令如下:
find -name '*.cpp' -exec grep -l 'open' {} \;
则结果如下:
./test/testall/file.cpp
./test/testall/shell_test.cpp
./test/daemontest/main.cpp
5、对⽐两个⽂件中内容的差别
可以⽤diff命令对⽐⽂档内容。
[语法]: diff [参数] ⽂件1 ⽂件2
[说明]: 本命令⽐较两个⽂本⽂件,将不同的⾏列出来
-b 将⼀串空格或TAB 转换成⼀个空格或TAB
-e ⽣成⼀个编辑⾓本,作为ex 或ed 的输⼊可将⽂件1 转换成⽂件2
[例⼦]:
diff file1 file2
diff -b file1 file2
diff -e file1 file2 >edscript
diff 命令的常⽤参数
a 将所有⽂件当做⽂本⽂件来处理
b 忽略空格造成的不同
B 忽略空⾏造成的不同
q 只报告什么地⽅不同,不报告具体的不同信息
H 利⽤试探法加速对⼤⽂件的搜索
i 忽略⼤⼩写的变化
l ⽤pr对输出进⾏分页
r 在⽐较⽬录时⽐较所有的⼦⽬录
s 两个⽂件相同时才报告
v 在标准输出上输出版本信息并退出
ll -R > dir1.list
ll -R > dir2.list
提取两个列表,再⽤diff⽐较
6、wc命令⽤于计算字数
语法
wc [-clw][--help][--version][⽂件...]
参数:
-c或--bytes或--chars 只显⽰Bytes数。