一、cat命令
cat命令用来读取短文件非常方便(如果一个文件非常大的时候,用页命令如more、less、head、tail是比较方便的)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
用法:(1)一次显示整个文件,用cat命令查看文件:$ cat test.log
(2)$ cat -n test.log:在查看的时候加上行号
(3)可以使用通配符:$ cat -n *.log,把所有的log文件都显示出来(顺序显示)
也可以这样:$ cat -n test.log test1.log test2.log;结果用通配符输出结果是完全一样的
(4)与重定向操作符(>)一起使用,用于合并文件:$ cat test.log>> test1.log,这样就把test.log合并到
test1.log后面去了,合并的时候注意顺序,不能搞错。
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)
之后将内容附加到 textfile3 里
(5)从键盘创建一个文件。$ cat > filename 只能创建新文件,不能编辑已有文件
使用cat命令新建一个文件并通过键盘直接向文件中输入内容:$ cat > myfile.php
输入完成以后使用ctrl+d来保存并退出文件
(6)cat /dev/null > /etc/test.txt 此为清空/etc/test.txt内容
二、more命令
显示输出的内容、分页显示、提示文件的百分比
more [参数选项] [文件]
参数如下
+num 从第num行开始显示;
-num 定义屏幕大小,为num行;
-c 从顶部清屏然后显示;
-d 提示Press space to continue, 'q' to quit.(按空格继续,按q键退出,禁用响铃功能);
-p 通过清除窗口而不是滚屏来对文件进行换页。和-c参数有点相似;
-s 把连续的多个空行显示为一行;
+/pattern 从第一个pattern 单词前两行开始显示
参数举例:
more +4 /etc/profile 从profile的第4行开始显示;
more -4 /etc/profile 每屏显示4行;
more -dc /etc/profile 显示提示,并从终端或控制台顶部显示
more +/MAIL /etc/profile 从profile中的第一个MAIL单词的前两行开始显示;
more 的动作指令
退出more的动作指令是q
我们查看一个内容较大的文件时,ctrl+f(或空格键)是向下显示一屏,ctrl+b是返回上一屏
Enter键可以向下滚动显示n行,n自定义,默认为1行
v 调用vi编辑器
三、 less命令
less 与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页
区别:
1)more:以百分比的形式分页显示,提示给用户已经显示了多少内容
less:没有百分比的提示
2)less更加灵活,不仅可以有more的相同的翻页键,还可以通过【page down】【page up】上翻下翻页查看
已经显示出的内容,而more不具备
3)对less显示出的内容中可以使用 /'字符' 输入需要查找的字符或者字符串并高亮显示,而more 不具备
less搜索
当使用命令 less filename打开一个文件后,可以使用下面的方式在文件中搜索。搜索时整个文本中匹配的部分会
被高亮显示。
向前搜索
/ - 使用一个模式进行搜索,并定位到下一个匹配的文本
n - 向前查找下一个匹配的文本
N - 向后查找前一个匹配的文本
向后搜索
? - 使用模式进行搜索,并定位到前一个匹配的文本
n - 向后查找下一个匹配的文本
N - 向前查找前一个匹配的文本
v - 使用配置的编辑器编辑当前文件
退出less命令 按q键
浏览多个文件
方式一,传递多个参数给 less,就能浏览多个文件。less file1 file2
方式二,正在浏览一个文件时,使用 :e 打开另一个文件。less file1 :e file2
当打开多个文件时,使用如下命令在多个文件之间切换
:n - 浏览下一个文件(next下一个)
:p - 浏览前一个文件(prev上一个)
三、head命令和tail命令
head -n 100 test.log 显示test.log前100行,若不加参数-n就默认输出前面十行
tail -n 100 test.log 显示test.log最后100行
tail -f runlog.log 可以实时的显示新追加到文件中的信息,常用来跟踪日志文件
(执行del、ctrl-C、ctrl-X、ctrl-\均可以退出实时显示)
四、grep查找命令
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是
Global Regular Expression Print,表示全局正则表达式版本(打印与指定模式匹配的所有行)
grep [options]主要参数:
-n:显示匹配行及行号
-i:不区分大小写(只适用于单字符 默认情况区分大小写)
- x:输出完全匹配的内容
pattern正则表达式
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
. :匹配一个字符(所有的单个字符)。
* :匹配0或多个字符。
举例:
$ grep ‘test’ d* 显示所有以d开头的文件中包含 test的行。
$ grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的行。
$ more log.txt | grep -i 'error' 显示在log.txt中匹配error或ERROR的行
五、查看进程ps命令
ps命令是linex下查看进程最常用的命令,用于查看和监控后台进程的工作情况
参数:
-e :显示所有的进程
-a :显示终端上所有的进程,包括其他用户的进程(all)
-u : 显示有效使用者 (effective user) 相关的进程
-x :通常与 a 这个参数一起使用,可列出较完整信息
-f :全格式显示(full) 做一个更为完整的输出
-l : 长格式显示(long)较长、较详细的将该 PID
的的信息列出
最常用的参数是aux
举例:
ps aux
显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , STAT , START , TIME , COMMAND
ps -ef|grep java 是用标准的格式显示含有java的进程
显示的项目有:UID , PID , PPID , C , STIME , TTY , TIME , CMD
六、中止进程kill命令
中止进程首先要知道进程ID(PID),用ps -ef查看一下PID,然后kill pid,这是最简单的用法
参数:
-s:指定发送的信号(signal),其中可用的信号有 HUP (1), KILL (9), TERM (15), 分别代表著重跑,
砍掉, 结束; 详细的信号可以用 kill -l
kill -Signal pid
经常看到kill -9 pid,用于强行中止进程(即杀死进程)
这个-9表示什么意思呢?9是信号量,kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个进
程标识号,然后内核对进程标识号指定的进程进行操作。所以kill实际上是用来发送信号量给进程。可以通过
man
kill查看信号量列表。
TERM(或数字9)表示“无条件终止”;因此 kill - 9 表示强制杀死该进程;
而单独的kill则有局限性,例如后台进程,守护进程等;
停止和重启进程
有时候只想简单地停止和重启进程,可以用命令:kill -HUP pid 或者kill -1(数字1) pid
该命令让linux内核和缓地执行进程关闭,然后立即重新启动该进程,在配置应用程序时这个命令很方便
对配置文件做修改后需要使之生效就可以使用该命令重启进程即可。
最好在使用完kill -9命令后,再用free命令回收内存(kill -9突然中止运行的进程
中止后不能自我清理,导致系统
资源无法释放)
例:$ kill -9 XXX
$ free
其中,XXX是无用的进程标识号。然后使用下面命令:$ free 此时会发现可用内存容量增加了。
TERM信号:给父进程发送一个TERM信号,试图杀死它和它的子进程 如 $ kill -TERM pid
Linux下还提供了一个 killall命令
killall 杀死同一进程组内所有的进程,并且允许使用进程名而不是进程ID指定要终止的进程
例如:$ killall httpd
七、who命令
该命令主要用于查看当前在线上的用户情况
这个命令非常有用。如果用户想和其他用户建立即时通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。
who命令显示以下信息
ebpp pts/0 2011-12-26 14:20 (144.131.254.134)
ebpp pts/1 2011-12-26 17:06 (172.16.26.23)
第一列是登录用户的帐号;
第二列是登录所使用的终端;
第三列是登录时间;
第四列是用户从什么地方登录的网络地址,这里是域名。
参数
-m 和“who am i”的作用一样,显示运行该程序的用户名
-q count 只显示用户的登录帐号和登录用户的数量
八、netstat命令
Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连
接情况。利用netstat命令可以得知整个Linux系统的网络情况
常用参数:
netstat -a 本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等
netstat -n 显示所有已建立的有效连接。
例子:netstat
显示结果:
Proto Local Address Foreign Address State
TCP Eagle:2929 219.137.227.10:4899 ESTABLISHED
协议(Proto):指是传输层通讯协议
本地机器名(Local Address):Eagle,俗称计算机名了,安装系统时设置的,可以在“我的电脑”属性中修改,本地打开并用于连接的端口:2929)
远程机器名(Foreign Address):219.137.227.10
远程端口:4899
状态:ESTABLISHED
如何只查询tomcat的连接呢?
netstat -na|grep ESTAB|grep 80|wc -l
netstat -na|grep ESTAB|grep 8080|wc -l