在测试的过程中,我们有时候需要访问服务器,查看日志,上传文件等,这里是Linux系统一些常用命令小结(我个人使用得比较多的)。
- 切换目录
- cd [目录名称]
- cd -命令:返回到上一次所处的目录
- cd..命令:进入上级目录
- “cd ~”命令:切换到当前用户的家目录
- “cd ~username” 切换到其他用户的家目录
- “cd 路径”的方式 切换进/etc目录中
- 查看日志
- tail:
- -n 是显示行号;相当于nl命令;例子如下:
- tail -100f test.log 实时监控100行日志
- tail -n 10 test.log 查询日志尾部最后10行的日志;
- tail -n +10 test.log 查询10行之后的所有日志;
- head:
- 跟tail是相反的,tail是看后多少行日志;例子如下:
- head -n 10 test.log 查询日志文件中的头10行日志;
- head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
- cat:
- tac是倒序查看,是cat单词反写;例子如下:
- cat -n test.log |grep "debug" 查询关键字的日志
- tail:
- less
- less [参数] 文件
- 参数说明:
- -b <缓冲区大小> 设置缓冲区的大小
- -e 当文件显示结束后,自动离开
- -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
- -g 只标志最后搜索的关键词
- -i 忽略搜索时的大小写
- -m 显示类似more命令的百分比
- -N 显示每行的行号
- -o <文件名> 将less 输出的内容在指定文件中保存起来
- -Q 不使用警告音
- -s 显示连续空行为一行
- -S 行过长时间将超出部分舍弃
- -x <数字> 将"tab"键显示为规定的数字空格
- /字符串:向下搜索"字符串"的功能
- ?字符串:向上搜索"字符串"的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- b 向上翻一页
- d 向后翻半页
- h 显示帮助界面
- Q 退出less 命令
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
- 实例
- 1、查看文件
- less log2013.log
- 2、ps查看进程信息并通过less分页显示
- ps -ef |less
- 3、查看命令历史使用记录并通过less分页显示
- [root@localhost test]# history | less22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft23 cd ..24 scp -r web root@192.168.120.203:/opt/25 cd soft26 ls……省略……
- 4、浏览多个文件
- less log2013.log log2014.log
- 说明:
- 输入 :n后,切换到 log2014.log
- 输入 :p 后,切换到log2013.log
- 1、查看文件
- grep
- grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。grep命令的参数及其作用如表2-15所示。
- grep命令的参数及其作用
- 参数 作用
- -b 将可执行文件(binary)当作文本文件(text)来搜索
- -c 仅显示找到的行数
- -i 忽略大小写
- -n 显示行号
- -v 反向选择—仅列出没有“关键词”的行
- ps -ef|grep java
- grep 'chatTiming id' catalina.2020-07-29.log
- ps
- ps命令用于查看系统中的进程状态,格式为“ps [参数]”。
- 估计读者在第一次执行这个命令时都要惊呆一下—怎么会有这么多输出值,这可怎么看得过来?其实,刘遄老师通常会将ps命令与第3章的管道符技术搭配使用,用来抓取与某个指定服务进程相对应的PID号码。ps命令的常见参数以及作用如表2-6所示。
- ps命令的参数以及作用
- 参数 作用
- -a 显示所有进程(包括其他用户的进程)
- -u 用户以及其他详细信息
- -x 显示没有控制终端的进程
- Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自含义如下所示。
- Ø R(运行):进程正在运行或在运行队列中等待。
- Ø S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
- Ø D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
- Ø Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
- Ø T(停止):进程收到停止信号后停止运行。
- 当执行psaux命令后通常会看到如表2-7所示的进程状态,表2-7中只是列举了部分输出值,而且正常的输出值中不包括中文注释。
- 表2-7 进程状态
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- 进程的所有者 进程ID号 运算器占用率 内存占用率 虚拟内存使用量(单位是KB) 占用的固定内存量(单位是KB) 所在终端 进程 状态 被启动 的时间 实际使用 CPU的时间 命令名称与参数
- root 1 0.0 0.4 53684 7628 ? Ss 07 :22 0:02 /usr/lib/systemd/systemd
- root 2 0.0 0.0 0 0 ? S 07:22 0:00 [kthreadd]
- root 3 0.0 0.0 0 0 ? S 07:22 0:00 [ksoftirqd/0]
- root 5 0.0 0.0 0 0 ? S< 07:22 0:00 [kworker/0:0H]
- root 7 0.0 0.0 0 0 ? S 07:22 0:00 [migration/0]
- ………………省略部分输出信息………………
- 注:
- 如前面所提到的,在Linux系统中的命令参数有长短格式之分,长格式和长格式之间不能合并,长格式和短格式之间也不能合并,但短格式和短格式之间是可以合并的,合并后仅保留一个-(减号)即可。另外ps命令可允许参数不加减号(-),因此可直接写成ps aux的样子。
- 查看内存
- 在Linux下查看内存我们一般用free命令:
- $ free
- total used free shared buffers cached
- Mem: 3266180 3250004 16176 0 110652 2668236
- -/+ buffers/cache: 471116 2795064
- Swap: 2048276 80160 1968116
- 下面是对内存查看free命令输出内容的解释:
- total:总计物理内存的大小。
- used:已使用多大。
- free:可用有多少。
- Shared:多个进程共享的内存总额。
- Buffers/cached:磁盘缓存的大小。
- 第三行(-/+ buffers/cached):
- used:已使用多大。
- free:可用有多少。
- 第四行就不多解释了。
- -/+ buffers/cache含义与区别:
- 第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别在于使用的角度来看:
- 第二行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
- 第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
- 所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
- 如上例:
- 2795064=16176+110652+2668236
- 查看CPU的使用情况
- 1、top 这个命令很常用,在第三行有显示CPU当前的使用情况。
- # top -bn 1 -i -c
- top - 14:19:51 up 138 days, 7:15, 1 user, load average: 0.20, 0.33, 0.39
- Tasks: 115 total, 1 running, 114 sleeping, 0 stopped, 0 zombie
- Cpu(s): 4.5%us, 3.8%sy, 0.0%ni, 91.0%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
- Mem: 1014660k total, 880512k used, 134148k free, 264904k buffers
- Swap: 262140k total, 34788k used, 227352k free, 217144k cached
- PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- 12760 root 20 0 15084 1944 1632 R 2.0 0.2 0:00.01 top -bn 1 -i -c
- 如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。 %us:表示用户空间程序的cpu使用率(没有通过nice调度) %sy:表示系统空间的cpu使用率,主要是内核程序。 %ni:表示用户空间且通过nice调度过的程序的cpu使用率。 %id:空闲cpu %wa:cpu运行时在等待io的时间 %hi:cpu处理硬中断的数量 %si:cpu处理软中断的数量 %st:被虚拟机偷走的cpu
- 移动文件
- cp
- 移动A到B
- cp A文件夹 B文件夹
- 这种方法会直接在B中创建一个A文件夹
- 复制A中的所有文件到B中
- cp A/* B
- 这种方法不会创建A文件夹
- cp命令
- 命令:cp dir1/a.doc dir2 表示将dir1下的a.doc文件复制到dir2目录下
- cp -r dir1 dir2 表示将dir1及其dir1下所包含的文件复制到dir2下
- cp -r dir1/. dir2 表示将dir1下的文件复制到dir2,不包括dir1目录
- 说明:cp参数 -i:询问,如果目标文件已经存在,则会询问是否覆盖
- 移动A到B
- cp
- 创建文件
- touch 文件名
- 如touch ceshi.txt
- vi 文件名
- 如vi ceshi.txt
- touch 文件名
- chmod +x ./test.sh
- 赋予权限
- 从Linux服务器下载文件夹到本地
- 1、使用scp命令
- scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
- scp work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
- scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
- scp -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数
- 服务器切换用户
- su - 用户名
- 比如:su - deploy(切换到deploy用户)
- 解压压缩包:unzip 文件名.zip -d file /解压 unrar x 文件名.rar
- 删除文件:rm -rf 文件夹名称
- rz -E上传压缩包