linux命令行入门(三) 《The Linux Command Line》
第十一章11-进程11.1进程是怎样工作的先启动init进程,然后系统服务以守护程序形式实现11.2查看进程使用ps命令 或 ps x命令 或 ps aux 查看进程[seven@localhost 桌面]$ psPID TTY...
第十一章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 桌面]$ toptop - 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 cachedPID 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 kthreadd11.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
^C11.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 gedit11.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
^C11.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 %111.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 353311.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
/root12.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为line13.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
更多推荐
所有评论(0)