linux步步为营(3)--常用命令

简单易控为主。

 

1、程序/进程管理命令____________________________________________________________

 

        su切换用户

                切换回来用su - river("-"后面也有空格,和其他的ls -l不同。)

                认证失败时用sudo passwd重新设置下密码,即可su了

        sudo: 是当前命令按照su的root权限来执行,执行完后,还是当前用户的权限

        reboot/shutdown 重启/关机

        uname显示系统信息

        who/whoami登录的用户,一个账号可以登录多个

                root     pts/0        2013-01-30 19:33 (192.168.22.113)//ssh登录

                river    tty7         2013-01-30 19:39 (:0)//gnome登录

                river    pts/1        2013-01-30 19:40 (:0)//shell Terminal

                river    pts/2        2013-01-30 19:40 (:0)//shell Terminal,即使su到root,还是river

        

        系统进程/任务管理命令: fg, bg, jobs, &, ctrl + z

                1, & 用在一个命令的最后, 把这个命令放到后台执行

                2, ctrl + z 将一个正在前台执行的命令放到后台,并且暂停stopped.

                3, jobs/josbs -l 查看后台远行的任务

                4, fg %jobnumber(jobs 显示的命令序号) 将后台中的命令调至前台继续运行

                5, bg 将一个在后台暂停的命令,变成继续执行

        

        linux进程状态:

                R (TASK_RUNNING),可执行状态。

                S (TASK_INTERRUPTIBLE)可中断的睡眠状态。(等待socket连接、信号量),当这些事件发生时(由外部中断触发、或由其他进程触发),对应的等待队列中的一个或多个进程将被唤醒。

                用ps命令这个是最多的状态,因为cpu有限。

                D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态。

                不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。

                read系统调用最终执行到对应设备驱动的代码,并与对应的物理设备进行交互,需要特殊保护,避免进程与设备交互的过程被打断,造成设备陷入不可控的状态

                T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态

                        向进程发送一个SIGSTOP信号-->STOPPED

                Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程。

                X (TASK_DEAD - EXIT_DEAD),退出状态,进程即将被销毁

                参考http://hi.baidu.com/shining_pc/item/21abcb32a4d2d484c3cf2950        

        

        processes snapshot(进程快照)        

            ps - report a snapshot of the current processes.

                ps -aux | more ,显示部分,按回车下一行,按q退出

        

        TOP 动态显示CPU,内存,执行时间等,独占前台,接受用户按键指令, 

                load average: 0.06, 0.60, 0.48//1,5,15分钟系统平均负荷

                22052k buffers: 用作内核缓存的内存量

                大写P, 按cup使用率排序

                大写M, 按内存使用率排序

                大写NR,按PID排序,降序升序,切换到P/M/T排序

                大写T, CPU时间累积排序

                f键可以选择显示的内容和简写的全称。按a-z即可显示或隐藏对应的列,按回车键确定。

         

        

        free命令,内存查看,比top更精准

                              total       used       free     shared    buffers     cached

                Mem:       4049424    3006472    1042952          0     239800    1763188                

                -/+ buffers/cache:    1003484    3045940

                Swap:      1046524      25116    1021408

                ##解释:

                Mem:物理内存统计; used:已分配的内存; free:未被分配的内存(操作系统可用); buffers:系统分配但未被使用的buffers; cached:系统分配但未被使用的cache

                        buffers(be "written" to disk),cached(been "read" from the disk),为了提供I/O性能。

                -/+ buffers/cached:物理内存的缓存统计; used实际使用的内存; free实际(应用程序)可用内存=第一行的free+buffers+cached.  

                Swap:硬盘上交换分区统计(虚拟内存),

 

        vmstat (Virtual Memory status)

                查询 进程、内存、内存分页、堵塞IO、traps及CPU活动的信息

        

        lsof(list open files) linux下任何事物都以文件的形式存在:常规数据,网络连接和硬件。

                略        

                

2、文件系统管理____________________________________________________________

        mkdir/rmdir

        mount/umount

        chmod 变更文件或目录的权限。

        chown 变更文件或目录的拥有者或所属群组

        cp copy

        mv move /a.txt ./

        rm -rf dirName //删除非空目录, r目录,f强制, -R递归(通用多个命令)

        touch 创建文件,改变文件或目录时间

        find find / -name "ker"

        whereis 查找文件,不能用模糊搜索,通配符,速度快

        | 管道,会把输出到console的东西(不再输出),传递给下一个命令,输出最终结果到console

        unzip 解压zip格式的

        tar解压/压缩tar/tar.gz格式的,

                tar czvf usr.tar.gz /home 目录

                tar -zxvf soft.tar /home

        cat/tac/more/less/head/tail 查看文本

                cat -n t1.txt > ta.txt,显示并把t1的内容加上行号,输入到ta.txt中(">"类似"|"管道)

                按"/"键,底行搜索,按enter/n键,more不支持

                more ctrl+f 翻页,ente键r下一行,q键退出,=显示行号

                

                    

        sort 将文本内容加以排序

                -k 2//第二列,-n //numerical value, -r //降序

        wc word calculator

 

        ls-ll命令                

                ls -ild //ls -i -l -d//

                ll | grep "^d"        // ll<==>ls -al, a隐藏文件(.开头的文件),d目录

                ls -l | grep "^-" | wc -l//统计普通文件数(wc是行数)

                ll输出详解:

                        total 12        (12*1024字节)                                        

                        drwx------  3 root root 4096 Apr 12 10:51 ./        (当前目录,父目录,子目录各占用4096B)

                        drwxr-xr-x 19 root root 4096 Apr 12 10:43 ../        

                        -rw-r--r--  1 root root    0 Apr 12 10:54 .yincang         .隐藏文件

                        -rw-r--r--  1 root root    0 Apr 12 10:50 a.txt        (空文件占用4096B)

                        drwxr-xr-x  2 root root 4096 Apr 12 10:51 bin/

 

        du(disk usage)查看文件大小,对比ll的total

                du [OPTION]... [FILE]...

                du -sm * | sort -n //统计当前目录内各文件的大小,单位M(sk单位K) 并安大小排序

                du -sk //统计当前目录的大小

                du -sm jdk

               ” du -h --max-depth=1 .“查看当前目录下的子目录大小

                                32K        ./.mylyn

                                694M        ./.plugins

                                694M        .      .

        df -h (disk filesystem)   

                        查看硬盘信息,/dev/sda1挂载media。

        

        grep (globally search for a regexp and print)

                cat squid.conf.default | grep -v ^$ | grep -v ^# //-v 排除

        

        Awk 样式扫描和处理语言

                ps -ef | grep "root" | awk '{print $1, $2}'         //print只显示第一二列(域)

                

        xargs 构造参数列表并运行命令,避免参数列表过长的问题.

                1,ls | xargs -n 10 rm -fr

                        ls输出所有的文件名(用空格分割),xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数

                1.统计demo目录下,js文件数量:

                        find demo/ -name "*.js" |wc -l

                2.统计demo目录下所有js文件代码行数:

                        find demo/ -name "*.js" |xargs cat|wc -l        //文件连接

                        find demo/ -name "*.js" |cat|wc -l                        //文件名连接,等同于没有"|cat"        

                3.统计demo目录下所有js文件代码行数,过滤了空行:

                        find /demo -name "*.js" |xargs cat|grep -v ^$|wc -l                //-v invert-match

 

 

 

 

猜你喜欢

转载自luckywnj.iteye.com/blog/1716352
今日推荐