Linux(1)---常用命令 1、将tgz文件解压到指定目录: 2、删除正则匹配的文件 3、xargs 4、grep:正则,从大量的文件中找出含有特定字符的文件。 5、对比两个文件中内容的差别 6、wc命令用于计算字数 7、nohup后台不中断执行脚本命令 8、进入和退出服务器 9、linux删除大文件的前n行 10、linux 如何显示一个文件的某几行(中间几行) 12、让vim显示空格,及tab字符 vim 多行注释(转) 13. Linux查找文件内容所在位置 14.vim 查找文件某个字符串内容,采用 /  15. local关键字 16. ROOT=${1:-abc}  17. 在bash中,$( )与` `(反引号)都是用来作命令替换的。 18.Linux shell if [ -n ] 正确使用方法 linux 下shell中if的“-e,-d,-f”的用法 19、电脑硬件环境查看

# 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  关键字

Linux(1)---常用命令
1、将tgz文件解压到指定目录:
2、删除正则匹配的文件
3、xargs
4、grep:正则,从大量的文件中找出含有特定字符的文件。
5、对比两个文件中内容的差别
6、wc命令用于计算字数
7、nohup后台不中断执行脚本命令
8、进入和退出服务器
9、linux删除大文件的前n行
10、linux 如何显示一个文件的某几行(中间几行)
12、让vim显示空格,及tab字符 vim 多行注释(转)
13. Linux查找文件内容所在位置
14.vim 查找文件某个字符串内容,采用 /  
15. local关键字
16. ROOT=${1:-abc}
 17. 在bash中,$( )与` `(反引号)都是用来作命令替换的。
18.Linux shell if [ -n ] 正确使用方法
linux 下shell中if的“-e,-d,-f”的用法
19、电脑硬件环境查看

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

Linux(1)---常用命令
1、将tgz文件解压到指定目录:
2、删除正则匹配的文件
3、xargs
4、grep:正则,从大量的文件中找出含有特定字符的文件。
5、对比两个文件中内容的差别
6、wc命令用于计算字数
7、nohup后台不中断执行脚本命令
8、进入和退出服务器
9、linux删除大文件的前n行
10、linux 如何显示一个文件的某几行(中间几行)
12、让vim显示空格,及tab字符 vim 多行注释(转)
13. Linux查找文件内容所在位置
14.vim 查找文件某个字符串内容,采用 /  
15. local关键字
16. ROOT=${1:-abc}
 17. 在bash中,$( )与` `(反引号)都是用来作命令替换的。
18.Linux shell if [ -n ] 正确使用方法
linux 下shell中if的“-e,-d,-f”的用法
19、电脑硬件环境查看

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

https://www.cnblogs.com/li-shuai/p/11076727.html

可以用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比较