软件包管理
软件包管理机制:
Debian Linux首先提出“软件包”的管理机制——Deb软件包
Redhat Linux基于这个理念推出了自己的软件包管理机制——Rpm软件包
软件包:
二进制包:它包含可执行文件、库文件、配置文件、man/info页面、版权声明和其它文档
源码包: 包含软件源代码、版本修改说明、构建指令以及编译工具等
软件包的命名规则:
eg:
rxvt_1%3a2.6.4-14_i386.deb
软件名
版本号
修订版本号(次版本号)
软件包管理工具:
作用:安装、查询、卸载…
[1]. dpkg:
dpkg -i <package> 安装一个在本地文件系统上存在的Debian软件包
dpkg -r <package> 移除一个已经安装的软件包
dpkg -P <package> 移除已安装软件包及配置文件(P是大写的)
dpkg -L <package> 列出安装的软件包清单
dpkg -s <package> 显出软件包的安装状态
[2]. APT:APT系列工具是Deb软件包管理工具中功能最强大的。
Ubuntu采用集中式的软件仓库机制
镜像服务器站点列表:/etc/apt/sources.list
镜像服务器站点软件包列表:/var/lib/apt/lists
使用apt下载的软件存放的位置:/var/cache/apt/archives
更新软件包信息:
sudo apt-get update
apt工具相关命令:
apt-get:用于管理软件包,包括安装、卸载、升级等操作;
格式:apt-get subcommands [选项] 操作对象
子命令:
update 更新软件源列表
install 安装
remove 卸载
clean 删除缓存中的软件包
check 检测依赖关系
upgrade 更新所有的软件
选项:
--purge 和remove一起使用,卸载软件的时候将配置文件一起删除
--reinstall 重新安装软件包
-f 修复系统中存在的软件包依赖性问题
apt-cache:用于查询软件包信息;
子命令:
showpkg 获取二进制软件包的常规描述信息
showsrc 获取源码包的详细描述信息
show 获取二进制软件包的详细描述信息
depends 获取该软件包的依赖信息
rdepends 获取所有依赖于该软件包的软件包
policy 获取软件包当前的安装状态
shell命令
- shell是什么
命令行解释器
- shell有什么作用:
[1]. 解析命令
[2]. 保护内核
-
shell的种类:
Bourne Shell(简称sh)
Bourne Again Shell(简称bash)- shell命令行格式:
命令行提示符:
linux @ ubuntu : ~ $/#
登录用户的用户名 主机名 路径 $:普通用户
#:超级用户(root用户)
格式:
命令 [选项] [操作对象]
-
shell执行过程:
用户在命令行提示符下键入命令文本,开始与Shell进行交互。
接着,Shell将用户的命令或按键转化成内核所能够理解的指令
控制操作系统做出响应,直到控制相关硬件设备。
然后,Shell将输出结果通过Shell提交给用户。- shell命令体验:
shell关机、重启命令
sudo shutdown -h +45 “That is all, game over.”
-h :关机
+45:关机时间(45min后)
“string”:关机提示
sudo shutdown -r +60
-r : 重启
+60: 重启时间(60min后)
-
查看命令行的历史记录:
history!编号 —>>> 执行编号所对应的命令
!命令的首字母 —>>> 执行最近匹配到的命令
修改历史命令行数:
修改家目录下.bashrc配置文件
HISTSIZE=100
HISTFILESIZE=2000
- shell的特殊字符:
[1]. 通配符:
*: 匹配所有长度的字符串
?: 匹配一个长度的字符
[…]: 匹配方括号中列举的所有字符
[2]. 管道 |
命令1 | 命令2
将命令1 的输出作为命令2 的输入
wc
选项:
-l:行数
-w:单词数
[3]. 输入输出重定向
标准输入:键盘、鼠标
标准输出:终端
输出重定向:
: 覆盖的方式进行重定向
: 追加的方式进行重定向
输入重定向:
< file:将file文件重定向为输入源
错误重定向:
2> / &>
[4]. 命令置换
``
命令1 命令2
命令2 的 输出作为命令1 的参数
eg: ls pwd
- shell常用命令
man : an interface to the on-line reference manuals
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
passwd: change user password
格式:passwd [选项] [要修改的用户登录名]
su: change user ID or become superuser
su 普通用户用户名
sudo su 切换超级用户
echo:display a line of text
eg:echo “字符串”
date:
显示或修改日期
clear: 清屏 <==> ctrl + l
df: 查看磁盘使用情况
-a: 显示所有的文件系统所用情况
-T: 显示文件系统类型
-h: 大小以方便读的方式显示
eg:df -Tah
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 29G 9.6G 18G 35% /
du: 列出目录和文件所使用的磁盘块数,每块占512个字节
-a :仅列出空闲的文件数
-k :列出磁盘的使用情况(KB)
-s :列出总的空闲空间(KB)
- 用户管理
/etc/passwd
linux : x : 1000 : 1000 : linux, : /home/linux :
用户名 密码 用户ID 组ID 用户信息 linux用户的家目录
/bin/bash
命令行解析器
/etc/shadow
root: ! : 15605 :0 : 99999 : 7 : : :
用户名 密码 创建时间 密码修改间隔 密码有效期 警告时间 密码过期后的宽限天数 账号失效时间
0:立即失效
-1:不会失效
/etc/skel —>>> 模板目录
/etc/adduser.conf —>>> 添加用户配置文件
[1]. 创建用户:
adduser [options] [–home DIR] [–shell SHELL] [–no-create-home] [–uid ID]
[–gid ID] user
[2]. passwd 命令修改密码:
-S :查询用户状态
-l :暂时锁定用户
-u :解锁用户
–stdin:可以通过管道输出的数据作为用户的密码
echo “123” | passwd --stdin xxx
[3]. usermod:修改用户属性
-u UID
-G 组名 //eg:usermod -G linux usr2 将usr2用户添加到linux组
-L 暂时锁定用户
-U 解锁用户
举例用户oldname改名为newname,注意要同时更改家目录:
usermod –d /home/newname –m –l newname oldname
sudo usermod -G linux,usr1,usr2 usr3
- 删除用户deluser
deluser --remove-home user1
–remove-home : 同时删除家目录
- 进程管理
进程:程序的一次执行过程
a.out —>>> ./a.out
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
用户名 进程ID CPU占用率
D uninterruptible sleep (usually IO)
R running or runnable (on run queue) 正在运行或可运行(在运行队列上)
S interruptible sleep (waiting for an event to complete) 可中断睡眠(等待事件完成)
T stopped, either by a job control signal or because it is being traced. 停止,要么是由于作业控制信号,要么是因为它正在被跟踪。
X dead (should never be seen) 死亡(不应该被看到)
Z defunct (“zombie”) process, terminated but not reaped by its parent. 终止的进程,但其父进程未收割。
top 查看进程实时的信息
kill : send a signal to a process
-l:查看当前系统支持的信号类型
- SIGKILL
kill -9 pid
pstree 显示进程的关系