第十一章11-进程

11.1    进程是怎样工作的
            先启动init进程,然后系统服务以守护程序形式实现
            
11.2    查看进程
            使用ps命令 或 ps x命令 或 ps aux 查看进程
            [seven@localhost 桌面]$ ps
               PID TTY          TIME CMD
              3108 pts/0    00:00:00 bash
              3121 pts/0    00:00:00 ps
            [seven@localhost 桌面]$ ps -x
            Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
               PID TTY      STAT   TIME COMMAND
              3108 pts/0    S      0:00 bash
              3123 pts/0    R+     0:00 ps -x
            [seven@localhost 桌面]$ ps aux
            USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
            root          1  0.6  0.1  19348  1560 ?        Ss   17:52   0:02 /sbin/init
            root          2  0.0  0.0      0     0 ?        S    17:52   0:00 [kthreadd]
            root          3  0.0  0.0      0     0 ?        S    17:52   0:00 [migration/0]
            root          4  0.0  0.0      0     0 ?        S    17:52   0:00 [ksoftirqd/0]
            root          5  0.0  0.0      0     0 ?        S    17:52   0:00 [stopper/0]
            root          6  0.0  0.0      0     0 ?        S    17:52   0:00 [watchdog/0]

11.3    用top命令动态查看进程
            每3秒更新一次
            [seven@localhost 桌面]$ top

            top - 18:01:46 up 9 min,  2 users,  load average: 0.02, 0.15, 0.13
            Tasks: 160 total,   1 running, 158 sleeping,   1 stopped,   0 zombie
            Cpu(s):  5.3%us,  2.1%sy,  0.0%ni, 92.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
            Mem:   1003024k total,   654112k used,   348912k free,    24032k buffers
            Swap:  1572860k total,        0k used,  1572860k free,   285420k cached

               PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
              2419 root      20   0  174m  28m  10m S  8.3  2.9   0:09.52 Xorg              
              3058 root      20   0  339m  16m  11m S  2.3  1.7   0:02.31 gnome-terminal    
              3149 seven     20   0 15028 1276  944 R  0.7  0.1   0:00.14 top               
               407 root      20   0     0    0    0 S  0.3  0.0   0:00.10 jbd2/sda2-8       
              2727 root      20   0  479m  21m  14m S  0.3  2.2   0:01.59 nautilus          
              2793 root      20   0  355m  25m  17m S  0.3  2.6   0:02.36 vmtoolsd          
              3096 root      20   0  336m  25m 8804 S  0.3  2.6   0:00.74 yumBackend.py     
                 1 root      20   0 19348 1560 1240 S  0.0  0.2   0:02.87 init              
                 2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd    

11.4    控制进程
            需要使用root 权限,使用ctrl-c 返回shell操作
            
            [seven@localhost 桌面]$ gedit
            No protocol specified

            (gedit:3308): Gtk-WARNING **: cannot open display: :0.0
            [seven@localhost 桌面]$ su root
            密码:
            [root@localhost 桌面]# gedit
            ^C

11.5    中断一个进程(ctrl-c)

11.6    把一个进程放后台执行
           用法: poccess &,使用 jobs 查看

               [root@localhost 桌面]# ps
               PID TTY          TIME CMD
              3060 pts/0    00:00:00 bash
              3081 pts/0    00:00:01 top
              3107 pts/0    00:00:00 su
              3316 pts/0    00:00:00 su
              3324 pts/0    00:00:00 bash
              3439 pts/0    00:00:00 ps
            [1]+  已杀死               gedit
            [root@localhost 桌面]# gedit
            [root@localhost 桌面]# 
            [root@localhost 桌面]# gedit &
            [1] 3443
            [root@localhost 桌面]# ps
               PID TTY          TIME CMD
              3060 pts/0    00:00:00 bash
              3081 pts/0    00:00:01 top
              3107 pts/0    00:00:00 su
              3316 pts/0    00:00:00 su
              3324 pts/0    00:00:00 bash
              3443 pts/0    00:00:00 gedit
              3444 pts/0    00:00:00 ps
            [root@localhost 桌面]# jobs
            [1]+  Running                 gedit &
            [root@localhost 桌面]# gedit &
            [2] 3448
            [root@localhost 桌面]# jobs
            [1]-  Running                 gedit &
            [2]+  Done                    gedit

11.7    进程返回前台
            使用jobs 找到pid 然后使用 fg%1(工作序号)  唤醒

            [root@localhost 桌面]# jobs
            [1]-  Running                 gedit &
            [2]+  Done                    gedit
            [root@localhost 桌面]# fg %2
            bash: fg: %2: no such job
            [root@localhost 桌面]# fg %1
            gedit
            ^C

11.8    停止一个进程
            区分停止和结束的概念
            kill 命令仅仅是提醒程序该关闭了
            使用ctrl-z 停止,使用ctrl-c 结束
            使用 fg 命令 可以把停止的命令恢复到前台运行
            kill+pid 等效用法使用 kill+%1  

            [root@localhost 桌面]# ps
               PID TTY          TIME CMD
              3060 pts/0    00:00:00 bash
              3081 pts/0    00:00:01 top
              3107 pts/0    00:00:00 su
              3316 pts/0    00:00:00 su
              3324 pts/0    00:00:00 bash
              3496 pts/0    00:00:00 ps
            [root@localhost 桌面]# gedit &
            [1] 3499
            [root@localhost 桌面]# kill %1

11.9    通过kill命令给进程发送信号
            【1】挂起 【9】强杀  【28】改变窗口大小

            [root@localhost 桌面]# gedit &
            [1] 3531
            [root@localhost 桌面]# kill -1 %1
            [root@localhost 桌面]# gedit &
            [2] 3533
            [1]   挂起                  gedit
            [root@localhost 桌面]# kill -9 3533

11.10   通过killall 命令给多个进程发送信号
            用法 killall [-u user] [-signal] process1 process2

            [root@localhost 桌面]# gedit &
            [3] 3554
            [2]   已杀死               gedit
            [root@localhost 桌面]# gedit &
            [4] 3555
            [root@localhost 桌面]# killall gedit
            [4]+  Done                    gedit
            
 11.11  更多和进程相关的命令
             vmstat:资源快照,xload: 图像界面,tload:终端图像界面

 

 

第十二章12—shell环境         

12.1    什么存储在环境变量中
            shell环境中存储两种基本的数据
            环境变量 和 shell变量(很少量)
            
12.2    检查环境变量
            bash内部的 set命令 或者 printenv命令(只显示环境变量)

            [root@localhost 桌面]# printenv | less
            [root@localhost 桌面]# printenv USER
            root
            [root@localhost 桌面]# set | less
            [root@localhost 桌面]# echo $HOME
            /root

12.3    一些有趣的变量

            [root@localhost 桌面]# printenv USER
            root
            [root@localhost 桌面]# set | less
            [root@localhost 桌面]# echo $HOME
            /root
            [root@localhost 桌面]# ^C
            [root@localhost 桌面]# set | less
            [root@localhost 桌面]# printenv USER
            root
            [root@localhost 桌面]# echo $HOME
            /root
            [root@localhost 桌面]# alias
            alias cp='cp -i'
            alias l.='ls -d .* --color=auto'
            alias ll='ls -l --color=auto'
            alias ls='ls --color=auto'
            alias mv='mv -i'
            alias rm='rm -i'
            alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

12.4    一些有趣的变量(环境变量表格)
            EDITOR:文本编辑器
            SHELL:shell程序的名字
            HOME:用户主目录
            PATH:默认目录

12.5    如何建立shell环境?
            shell启动,先判断是否需要登录
            需要登录:加载profile/login文件
            不需要登录:加载.bashrc文件

12.6    一个启动文件的内容
            输入一个命令后,shell查找PATH变量寻找目录路径
            PATH变量经常在/etc/profile 启动文件中设置
            如 PATH=$PATH:$HOME/bin(这是参数展开的实例)
            export PATH:    启用配置文件
            
12.7    修改shell环境
            先找到启动文件和它们包含的内容,然后修改它们。

12.8    我们应该修改哪个文件?
            修改.bash_profile文件或.bashrc文件
            除非管理员想修改所有用户默认设置否则只能对自己主目录文件修改
            
12.9    文本编辑器
            文本编辑器分为两种基本类型:图形化和基于文本的编辑器
            
12.10   使用文本编辑器
            gedit some_file: 打开或创建 some_file
            cp .bashrc .bashrc.bak: 创建或覆盖.bashrc.bak

            

 

第十三章13—vi简介

13.1    为什么学习vi
            很多系统预装vi
            vi是轻量级应用
            
13.2    背景介绍

13.3    启动和停止vi

13.4    编辑模式
            ~:表示该行不存在文本
            插入模式(i)
            保存(:w)
            
13.5    移动光标
            $:移动到当前行末
            0:移动到当前行首
            G:移动到尾行
            
13.6    基本编辑
            u:撤销操作
            a:右移一位追加
            A:行末追加
            o:当前行下方打开一行
            d$:删除 当前位置到行末
            dG:删除 当前行到文件末
            yy:复制当前行
            p:粘贴
            J:连接下一行

13.7    查找和替换
            f:例如 fa 表示 在该行查找 a,用 分号 移动光标到下一个
            /:类似于 less 命令 表示 全文搜索,用 n 移动光标到下一个
            高级操作 (:%s/Line/line/g) 全局替换 Line为line
            高级操作 (:%s/Line/line/gc) 带询问的全局替换 Line为line

13.8    编辑多个文件
            vi file1 file2:打开2个文件
            n/N:移动到下一个/上一个
            :buffer 1(跨文件编辑)
            :r file3(插入指定文件)
            

第十四章14—制作shell提示符

14.1    解剖一个提示符
            echo $PS1 (含义是 prompt string one)

            [root@localhost ~]#echo $PS1
            [\u@\h \W]#

            
14.2    尝试使用其他提示符
            [root@localhost ~]$PS1="[\u@\h \W]\#"
            [root@localhost ~]7PS1="[\u@\h \W]#"

            
14.3    添加颜色

14.4    移动光标
            每当提示符出现的时候,会在屏幕的那个位置

14.5    保存提示符
            保存到.bashrc文件,并应用配置

 

第十五章15—软件包管理

15.1    打包系统
            两大包管理技术阵容(.deb 和 .rpm)

15.2    软件包管理系统是如何工作的
            通过包文件的形式或源代码形式安装

15.3    包文件
            包文件是一个构成软件包的文件压缩集合

15.4    资源库
            由发行商和感兴趣的第三方创建,通常有几个不同的资源库,
            用户在中心资源库获得软件包
            
15.5    依赖性
            如果一个软件需要共享资源,就有一个依赖
            
15.6    上层和底层软件包工具
            软件包管理系统由两种工具类型组成:底层工具和上层工具
            .deb(底层工具 dpkg,上层工具 apt-get)
            .rpm(底层工具 rpm ,上层工具 yum )

15.7    常见软件包管理任务
            底层工具和上层工具都可以支持软件包文件的创建

15.8    查找资源库中的软件包
            Debian(apt-get update)  
                    apt-cache search search_string                      
            Red Hat(yum search_string)

15.9    从资源库中安装一个软件包
            Debian(apt-get update)  
                    apt-get install package_name                      
            Red Hat(yum install package_name)

            实验例子:apt-get update;apt-get install emacs

15.10   通过软件包文件来安装软件
            如果下载了软件包文件,可以使用底层工具来直接安装(无依赖)
            Debian (dpkg --install package_file)
            Red Hat (rpm -i package_file)

            例子:rpm -i emacs-22.1.7.fc7-i386.rpm

15.11   卸载软件
            Debian (apt-get remove package_name)
            Red Hat (yum erase package_name)

            实验例子:apt-get remove emacs

15.12   经过资源库来更新软件包
            Debian (apt-get update; apt-get upgrade)
            Red Hat (yum update)

            实验例子:apt-get update; apt-get upgrade

15.13   经过软件包文件来升级软件
            注意:dpkg命令不能指定升级某个app
            Debian (dpkg --install package_file)
            Red Hat (rpm -U package_file)

            实验例子:rpm -U emacs-22.1-7.fc7-i386.rpm

15.14   列出所安装的软件包
            Debian (dpkg --list)
            Red Hat (rpm -qa)

15.15   确定是否安装了一个软件包
            Debian (dpkg --status package_name)
            Red Hat (rpm -q package_name) 

            实验例子: dpkg --status emacs

15.16   显示所安装软件包的信息
            Debian (apt-cache show package_name)
            Red Hat (yum info package_name) 

            实验例子: apt-cache show emacs

15.17   查找安装了某个文件的软件包
            Debian (dpkg --serch file_name)
            Red Hat (rpm -qf file_name) 

            实验例子: rpm -qf /usr/bin/vim

             

       


            

 

 

 

                        
        

  
  

Logo

更多推荐