美文网首页
Linux常用命令

Linux常用命令

作者: 翱翔云端 | 来源:发表于2018-03-02 18:26 被阅读0次

    约定

    1.获取命令帮助胜过死记命令,授人以鱼不如授人以渔。所以,本文不会去逐个选项地解释命令的用法,会把查看命令帮助的方法置于首位。
    2.Linux是命令行操作,表面上需要记住很多命令,实际上没那么恐怖,学会查看帮助,以解决问题为导向,很快就会上手。
    3.操作系统环境:CentOS6.5,Bash。

    $ bash --version
    GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)
    Copyright (C) 2009 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    

    对于LInux基本命令,推荐参考UNIX Tutorial for Beginners

    进程管理

    Linux是多用户、多任务操作系统。这句话的意思是,可以有多个用户同时使用Linux,并且每个用户可以同时执行多个任务。形象一点,就是图1的样子。


    图1 Linux进程树

    显然,所有Linux进程被组织为一棵倒立的树。
    那么,我们如何看这一棵树呢?

    pstree

    查看进程树。

    #查看帮助
    $ pstree -h
    
    #查看进程树,并且显示各进程的PID
    $ pstree -pc
    

    前台进程vs后台进程

    我们在shell下每执行一个命令,比如ls,就会创建一个子进程,并且这个子进程会阻塞父进程的执行,阻塞的表现就是终端不出现命令提示符,我们输入不了命令了。本例中,ls回车后终端会立即出现命令提示符,这是因为ls这个进程瞬间执行完了,不再阻塞父进程。
    在终端下,这种阻塞父进程执行的子进程就是前台进程。
    那如何让子进程不阻塞父进程执行呢?
    解决办法就是后台进程。以后台进程的形式执行一个命令就不会阻塞当前进程。
    Linux中运行后台进程的方法。

    # 方法一:&符号
    $ find / -name *.java &
    # 方法二:nohup命令
    $ nohup  find / -name *.java &
    
    # 查看进程的父子关系
    $ ps -f PID
    

    通过ps -f PID,你会发现后台进程的PPID(父进程标识符)仍然是当前bash的PID(进程标识符),但是当你退出登录以后,他们的PPID变成1了,1是LInux系统进程init的PID。所以,这里的&符号可以简单理解为非阻塞,或者说给子进程找个干爹init。

    前后台进程切换

    bg:将前台任务(进程)移到后台执行。

    #查看帮助
    $ help bg
    

    fg:将后台任务(进程)移到前台执行。

    #查看帮助
    $ help fg
    

    bg和fg命令很简单,看了帮助就知道怎么用了。

    ps

    查看进程“快照”,即执行ps命令时的进程状态。

    #查看帮助
    $ ps --help
    
    #显示所有进程快照,包含PPID信息
    $ ps -Af
    

    ps命令的选项很多、很杂,使用时参考帮助即可。

    top

    实时显示以CPU使用情况为主的进程状态信息。

    #查看帮助
    $ top -h
    
    #进入top
    $ top
    

    输入top,回车,top程序会实时显示进程状态信息,top是可交互的,输入h或者?可以查看交互的命令,输入q退出top命令,使用上类似于vi。
    这个命令对于程序员很有用,我们可以实时监控服务器上的应用进程状态,比如负载,各个线程的状态,CPU等系统资源使用情况。
    程序员必备:

    #实时监控指定进程下的所有线程状态
    $ top H p PID | top -H -p PID
    

    kill

    向指定进程发送信号。

    #查看帮助
    $ help kill
    
    #列出当前系统支持的所有信号
    $ kill -l
    
    #向8888进程发送SIGTERM信号
    #SIGTERM信号将终止所有不能捕获该信号的进程
    kill 8888
    
    #向8888进程发送SIGKILL信号
    #SIGKILL信号不能被进程捕获
    kill -s SIGKILL 8888 | kill -n 9 8888 | kill -9 8888
    

    nice

    以指定优先级(niceness)启动一个进程。

    #查看帮助
    $ nice --help
    

    renice

    改变一个正在运行进程的优先级。

    #查看帮助
    $ renice --help
    

    相关文章

      网友评论

          本文标题:Linux常用命令

          本文链接:https://www.haomeiwen.com/subject/qvvnxftx.html