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
3、xargs
将标准输入作为xargs后面命令的参数
4、grep:正则,从大量的文件中找出含有特定字符的文件。
http://c.biancheng.net/linux/grep.html
# 使用-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
");
./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
https://blog.csdn.net/linjcai/article/details/80875451
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数。
- -l或--lines 只显示行数。
- -w或--words 只显示字数。
- --help 在线帮助。
- --version 显示版本信息。
$ wc testfile # testfile文件的统计信息 3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
7、nohup后台不中断执行脚本命令
执行./bash_file.sh脚本,
sudo nohup ./bash_file.sh &
查看bash_file.sh的进程运行状态
ps aux | fgrep bash_file.sh
8、进入和退出服务器
进入服务器:
ssh username@ip_address -p port
退出服务器:
ctrl+D
9、linux删除大文件的前n行
tail -n +3 old_file > new_file mv new_file old_file #这样就删除了前2行,速度要比sed命令快
10、linux 如何显示一个文件的某几行(中间几行)
1、从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000
2、显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000
注意两种方法的顺序
分解:
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行
3、用sed命令
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
4、随文件变化显示文件末尾几行
tail -f filename
11、将数据追加到文件末尾:
echo -e 'a 1' >> 1.txt ##-e表示开启转义符号,>>表示追加,如果用>表示写入。
12、让vim显示空格,及tab字符 vim 多行注释(转)
:set list显示tab键
:set nu 显示行数
ctrl + n : vim代码自动补全
13. Linux查找文件内容所在位置
http://blog.chinaunix.net/uid-25266990-id-199887.html
Linux查找文件内容的常用命令方法。
从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件
grep "thermcontact" */*.in
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行
find . -name "*.in" | xargs grep "thermcontact"
14.vim 查找文件某个字符串内容,采用 /
1.按ESC
2、/“关键字” 回车
3、N(next)键
15. local关键字
http://blog.sina.com.cn/s/blog_6433391301013r3x.html
16. ROOT=${1:-abc}
${} 是bash中自带的字符串操作
上面的意思应该是 如果$1有值 那么将$1的值赋予root
否则将abc临时赋予$1 同时赋予root
17. 在bash中,$( )
与` `
(反引号)都是用来作命令替换的。
命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
18.Linux shell if [ -n ] 正确使用方法
https://blog.csdn.net/haogexiaole/article/details/83472890
if [ str1 = str2 ] 当两个串有相同内容、长度时为真
if [ str1 != str2 ] 当串str1和str2不等时为真
if [ -n str1 ] 当串的长度大于0时为真(串非空)
if [ -z str1 ] 当串的长度为0时为真(空串)
if [ str1 ] 当串str1为非空时为真
linux 下shell中if的“-e,-d,-f”的用法
文件表达式
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
19、电脑硬件环境查看
1、查看CPU信息(型号)
1.1 查看CPU个数
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
2 **uniq命令:删除重复行;wc –l命令:统计行数**
1.2 查看CPU核数
# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
1.3 查看CPU型号
# cat /proc/cpuinfo | grep 'model name' |uniq
model name : Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
总结:该服务器有2个4核CPU,型号Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
2 查看内存
2.1 查看内存总数
#cat /proc/meminfo | grep MemTotal
MemTotal: 32941268 kB //内存32G