`

项目部署和维护常用的linux命令使用记录(不断更新中)

阅读更多

一、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

 

九:查看CPU内存使用情况

通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次

top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

第一部分 -- 最上部的 系统信息栏 :

 第一行(top):
“00:11:04”为系统当前时刻;
“3:35”为系统启动后到现在的运作时间;
“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;
“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“59 total”为当前系统进程总数;
“1 running”为当前运行中的进程数;
“58 sleeping”为当前处于等待状态中的进程数;
“0 stoped”为被停止的系统进程数;
“0 zombie”为被复原的进程数;
第三行(Cpus):
分别表示了 CPU 当前的使用率;
第四行(Mem):
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
第二部分 -- 中间部分的内部命令提示栏:
 
    top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
p:根据CPU使用大小进行排序。
t:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
m:根据使用内存大小进行排序。
s - 改变画面更新频率,如s5:每5s刷新一次
 
查看内存我们一般用free命令:
free命令是用来查看内存使用情况的主要命令。
和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
如:free -m -s5
以MB字节查看,会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次
 
我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
 所以 空闲内存=free+buffers+cached=total-used
 
使用free命令查看的信息:
                    total           used         free         shared    buffers     cached
Mem:       3266180    3250004      16176          0       110652    2668236
-/+ buffers/cache:       471116      2795064
Swap:      2048276      80160    1968116
下面是对这些数值的解释:
total:总计物理内存的大小。
 used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
 used:已使用多大。
 free:可用有多少。
第四行就不多解释了。
 区别:第二行(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
分享到:
评论

相关推荐

    linux常用工具

    以下是一些基础但非常实用的Linux命令: 1. **ls**:列出目录内容,帮助用户查看当前工作目录下的文件和子目录。 2. **cd**:改变当前工作目录,用于在不同的路径之间切换。 3. **pwd**:打印工作目录,显示你当前...

    Linux 环境部署脚本,一键配置系统设置,安装常用工具开发环境渗透测试工具等.zip

    3. **安装常用工具**:`apt-get`或`yum`是Linux中常用的包管理器,用于安装和更新软件。例如,`sudo apt-get install build-essential`会安装基础的开发工具集,如gcc和make。 4. **开发环境搭建**:这可能包括...

    LINUX FTP服务器设计

    在项目实施过程中,"源文件"可能包含FTP服务器的配置脚本或源代码,"源程序备份"可能是FTP服务器软件的备份版本,"可执行文件"可能是编译后的FTP服务程序,而"项目文档"则可能详述了服务器的部署和维护指南。...

    测试基础+Linux基础命令+python+monkey基础命令基础合集

    5. **部署与维护**:发布软件,并在使用过程中持续改进和维护。 #### 八、常见的研发模型 1. **瀑布模型**:按照顺序逐步推进,每一阶段完成后再进入下一阶段。 2. **原型模型**:先构建一个简单的原型供用户试用...

    Python-Linux系统初始化工具

    在Linux操作系统中,Python是一种常用的语言,尤其在系统管理和自动化任务中。Python的灵活性和丰富的库使得它成为开发环境配置的理想选择。本主题将深入探讨如何使用Python来初始化和配置Linux开发环境。 **一、...

    finalshell.rar

    用户可以直接在FinalShell的终端中输入Linux命令,执行系统维护任务,如安装软件、查看系统状态、编辑配置文件等。 **项目部署功能** FinalShell的强大之处在于其集成的项目部署工具。它支持批量执行命令,这对于...

    搭建linux c++开发环境1

    但请注意,直接在Linux中使用这些头文件可能会存在问题,最好是将源代码移植到Linux,或者在Linux下找到对应的开源库进行替换。 以上就是搭建Linux C++开发环境的基本步骤,这个过程需要对Linux系统有一定的了解,...

    Linux-根目录介绍

    - **重要性**:对于系统维护和故障排查非常重要,普通用户通常没有执行这些命令的权限。 #### 3. /usr (Unix System Resource操作系统资源文件目录) - **子目录说明**: - **/usr/bin**:存放系统软件安装时形成...

    Linux各种shell的区别

    在Linux操作系统中,Shell是用户与系统交互的接口,它是一种命令解释器,负责解析用户的输入并执行相应的命令。不同的Shell有不同的语法特性和功能,这使得它们在特定场景下各有优势。本文将深入探讨三种常见的Shell...

    zookeeper linux安装文件

    通常,`.tar.gz`是Linux环境下的标准归档格式,可以使用`tar`命令解压。而`.rar`文件是Windows常用的压缩格式,可能需要先用WinRAR或类似工具在Linux上安装unrar来解压。 2. **解压Zookeeper安装包**: - 对于`...

    Redhat Enterprise Linux入门

    - **测试Kickstart**:在实际环境中使用之前,建议先在虚拟机环境中进行测试,确保配置文件无误。 #### 五、Linux启动顺序 - **启动流程**:Linux系统的启动流程一般包括BIOS自检、加载启动加载器(如GRUB)、执行...

    shell必学必会命令

    Shell脚本是通过一系列预定义命令和语法编写的脚本文件,可以在Shell环境中执行。它们是实现自动化任务的重要工具,尤其适用于Linux和Unix环境。 - **创建脚本**:使用文本编辑器创建一个包含Shell命令的文件。 - *...

    linux发行版支持的硬件兼容性列表大全

    用户可以轻松地为所有发行版添加和更新硬件兼容性信息。 #### Linux对HP PC的支持 这个页面提供了一份关于Linux对HP PC及其外设支持情况的概览。它主要是为了已经拥有HP电脑的用户提供信息参考。 #### Tuxhardware...

    sh脚本启动java -jar

    在Linux环境中,`sh`脚本是常用的自动化工具,用于执行一系列命令,特别是在启动Java应用程序时,如`java -jar`。这个标题和描述表明我们要讨论的是如何通过编写一个简单的Shell脚本来启动Java的JAR文件。这通常适用...

    lunix命令集(shell基本语法).pdf

    ### Linux命令集与Shell基本语法知识点详解 #### 一、Linux目录结构 1. **目录树**: - 在Linux中,所有文件和目录都组织成一棵以`/`(根目录)为起点的树状结构,即所谓的“目录树”。 - 每个目录或文件都是这...

    JAVA-项目面试题 (2).docx

    泛型在Java中用于类型安全,常在集合类如List、Map等中使用,确保添加、检索元素时的类型一致性,也可以在类、接口和方法中使用。 16. **Dubbo框架** Dubbo是一个高性能的Java RPC框架,用于服务治理,包括服务...

    ruby开发的基本流程.doc

    - **自动化部署工具**:Capistrano是一款常用的自动化部署工具,它可以简化部署流程,确保每次部署的一致性和可靠性。 - **容器化技术**:使用Docker等容器化技术可以提供一致的运行环境,便于跨平台部署。 - **监控...

    learning the bash shell

    Bash Shell是Unix和Linux操作系统中最常用的一种命令行解释器,全称为Bourne-Again SHell,它是GNU项目的一部分,由自由软件基金会维护。掌握Bash Shell对于提升Linux操作效率、编写自动化脚本以及进行系统管理具有...

    Make命令完全详解教程.docx

    掌握了这些知识后,开发者能够在各种规模的项目中高效地管理源代码的构建过程,实现自动化构建和部署,从而提高工作效率并减少人为错误。此外,熟练运用`make`命令还能帮助开发者更好地理解项目的构建流程,促进团队...

Global site tag (gtag.js) - Google Analytics