文档库 最新最全的文档下载
当前位置:文档库 › linux笔记

linux笔记

Linux学习笔记
01. 软件包管理
软件包常用安装方法: 使用RPM软件包管理工具、自行编译源代码、yum、apt
(1)RPM(RedHat Package Manager)软件包管理工具
a.安装与卸载软件包.
# rpm -i packagename.rpm
# rpm -Uvh glibc-2*
# rpm -i --force -nodeps packagename.rpm
# rpm -e packagename
参数: -i install
-U upgrade
-v 显示详细的安装信息
-h 用符号#指示安装进度
-percent 显示已完成的百分比指示安装进度
-nodeps 不检查依赖关系
-test 检查软件包是否能成功安装
-e 卸载软件包

b.查询软件包.
# rpm -qa 列出所有软件包
# rpm -qa | grep -i 'name' 查找软件包名称,grep命令指定名称 -i 区分大小写
# rpm -qa | more 每次一屏显示软件包
# rpm -qf filename 查找文件属于哪个软件包
# rpm -qi packagename 查出已安装的软件包的功能
# rpm -qlp packagename 查看某个软件包有哪些文件

(2)自行编译源代码(以安装ssh为例)
# mv ssh-2.0.13.tar.gz /usr/local/src 把源代码包移到/usr/local/src下
# cd /usr/local/src 进入/usr/local/src目录
# tar -xvzf ssh-2.0.13.tar.gz 解压源代码包
# cd /usr/local/src/ssh-2.0.13 进入/usr/local/src/ssh-2.0.13目录
# ./configure --help 查看软件包的配置选项
# make 编译软件包,将会读入所有configure脚本程序建立的制作文件,告诉make哪些需要编译和编译顺序.
# make install 安装软件包,软件一般都安装在/usr/local子目录中,如有错误信息,一般是访问权限问题,用chmod、chown和chgrp命令更改.
# cd usr/local/src
# rm -rf ssh-2.0.13 清除源代码文件

(3)Yum(Yellow dog Updater, Modified)
Yum是Fedora、RedHat、SUSE、CentOS中的Shell前端软件包管理器,使用python编写,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系

,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum的命令格式:
yum [options] [command] [package …]
[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
[command]为所要进行的操作,
[package …]是操作的对象。
yum的配置文件:/etc/yum.conf
常用命令
# yum list 列出目前yum所管理的所有的软件名称与版本
# yum list package 显示指定程序包安装情况
# yum info p

ackage 显示指定程序包安装情况和详细信息
# yum info installed 列出所有已安装的软件包与详细信息
# yum install package 安装指定的安装包package
# yum groupinsall group 安装程序组group
# yum update 全部更新
# yum update package 更新指定程序包package
# yum check-update 检查可更新的程序
# yum remove package 删除程序包package
# yum groupremove group 删除程序组group
# yum deplist package 查看程序package依赖情况
# yum clean packages 清除缓存目录下的软件包
# yum install yumex 安装yum图形窗口插件

(4)apt
apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。
apt-get命令一般需要root权限执行,所以一般跟着sudo命令
# sudo apt-get xxxx
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令。
常用命令
# vi /etc/apt/sources.list 编辑/etc/apt/sources.list,可以添加源地址
# apt-get update 更新源
# apt-get install packagename 安装一个新软件包
# apt-get install package=version 安装指定版本的软件包
# apt-get remove packagename 卸载一个已安装的软件包(保留配置文档)
# apt-get remove --purge packagname 卸载一个已安装的软件包(删除配置文档)
# apt-get autoremove packagename 卸载一个已安装的软件包
# apt-get source packagename 下载该包的原代码
# apt-get -u install packagename 升级软件包
# apt-get -u upgrade 更新已安装的包.
# apt-get dist-upgrade 更新已安装的包.
# dpkg --force-all --purge packagename
# apt-get autoclean 仅仅清理旧版本的缓存文件
# apt-get clean 清理所有的缓存文件
# apt-cache search xxx 在本地缓冲里查找和xxx有关的软件

02. 用户管理.
在Linux中,每个文件和程序必须属于某一个用户,每个用户都有一个唯一的身份标识用户ID(User ID,UID),每一个用户至少属于一个用户分组,用户分组也有唯一身份标识用

户分组ID(Group ID,GID).用户可以归属多个用户分组.
/home 用户登录子目录
/root 根用户的登录子目录
/var/spool/mail 用户电子邮件位置
/etc/passwd 口令文件,全部用户可读,保存登录名,加密口令,UID,GID,姓名,登录使用的shell
/etc/shadow 加密口令文件,只对具有根用户优先权的程序可读
/etc/group 用户

分组文件

用户管理
a. 添加用户.
useradd [-c comment] [-d homedir] [-e expire date] [-f inactive time]
[-g initial group] [-G group[,...]] [-m [-k skeleton dir]] [-M]
[-s shell] [-u uid [-o]] [-n] [-r] login
# useradd username 添加用户,使用默认参数
# useradd -D 查看默认参数
# useradd -c "H.D.core" -g admin -G support -s /bin/tcsh hdc

b. 删除用户
userdel [-r] username 删除用户,-r指示删除用户归属的文件.

c. 修改用户
usermod [-c comment] [-d homedir] [-m] [-e expire date] [-f inactive time]
[-g initial group] [-G group[,...]] [-l login]
[-s shell] [-u uid] login
# usermod -c "H.D.Core" hdc
-l 允许改变用户的登录名

d. 分组管理
groupadd [-g gid] [-r] [-f] group
groupdel group
groupmod -g gid -n group-name group

03. BASH的使用.
作业控制
# jobs 跟踪作业

环境变量
# printenv 查看用户的环境变量
# printenv OSTYPE 查看某个环境变量
# variable = value 设置环境变量
# export variable 使环境变量立即生效
# export variable = value 设置环境变量,并立即生效
# unset variable 取消已设置的环境变量

管道:通过它可以把一个程序的输出发送到另一个程序作为输入
# printenv | grep "LOGNAME"

重定向:输出到文件(>)、附加到文件末尾(>>)、发送文件作为输入(<)
# ls > /tmp/directory-listing
# echo "Directory Listing" >> /tmp/directory-listing
# grep 'root' < /etc/passwd

04. 文档工具
# man program_name 查看使用手册(manual)
# info emacs

05. 文件列表、所有权和访问权限
列出文件清单 # ls
改变文件所有权 # chown [-R] username filename 参数[-R]包含子目录
改变文件的用户分组 # chgrp [-R] groupname filename
改变文件属性 # chmod

06. 文件管理和操作
a. 拷贝文件命令cp
参数: -f 强制性拷贝;不要求确认
-i 交互式拷贝;在每个文件被拷贝之前要求用户确认
b. 移动文件命令mv
c. 链接文件ln
d. 查找文件命令find
e. 转换并拷贝文件命令dd, 可以用来生成磁盘镜象
# dd if = /dev/fd0 of = /tmp/floppy_imaage
参数: if=infile 指定输入文件
of=outfile 指定输出文件
f. 文件压缩命令gzip , 原文件会被删除
# gzip myfile
# gzip -d myfile.gz
参数: -c 把压缩后的文件写到stdout标准输出(这样可以使输出经过管道送入其他程序)
-d 解压缩
-r 递归找出全部需要压缩的文件
-9 最大压缩效果
-1 最快压缩时用
g.

建立特殊文件命令mknod
# mknod name type [major] [minor]
# mknod /tmp/mypipe p 建立一个名为/tmp/mypipe的命名管道
name -- 文件名称
type -- 块设备b,字符设备c,命名管道p.
h. 建立子目录命令mkdir
i. 删除子目录命令rmdir
j. 显示当前工作子目录命令pwd (print working directory)
k. 磁带文件归档命令tar
# tar [commands and options] filename
参数: -c 建立一个新的档案文件
-t 查看档案文件的内容
-x 释放档案文件的内容
-f 定义档案文件所在文件(或者设备)的名字
-v 操作过程中显示流程信息
-z 使用gzip进行压缩
# tar -cvzf apache.tar.gz /usr/src/apache 将包含/usr/src/apache子目录的全部文件打包并压缩成apache.tar.gz文件
# tar -xvzf apache.tar.gz
l. 显示文件内容合并文件命令cat
# cat /etc/passwd 显示文件/etc/passwd的内容
# cat /etc/passwd /etc/group 显示文件/etc/passwd和/etc/group的内容
# cat /etc/passwd /etc/group > /tmp/complete 把文件/etc/passwd和/etc/group合并到/tmp/complete中
# cat /etc/passwd >> /tmp/orb 把文件/etc/passwd添加到/tmp/orb的末尾
m. 分屏显示文件命令more [使用输入文件每次一屏显示,输入文件可以来自标准输入stdin,也可以来自命令行参数]
# more /etc/passwd 每次一屏显示文件/etc/passwd的内容
# ls | more 每次一屏查看用ls命令显示的子目录清单
n. 磁盘操作工具命令du [disk usage]
# du -sh /home/*
o. 查找文件保存的子目录which
p. 查找命令的保存位置、源文件及使用手册的位置whereis
q. 查看磁盘空间命令df
# df -hl
参数 -h 以易理解的数字给出自由空间大小
-l 只对本地挂装的文件系统进行操作,不显示网络挂装文件系统的信息
r. 同步磁盘命令sync
s. cpio.gz文件解压
# gunzip 10201_database_linux_x86_64.cpio.gz // 得到10201_database_linux_x86_64.cpio文件
# cpio -idmv <10201_database_linux_x86_64.cpio //在当前目录下解压出来

07. 进程管理
a. 列出进程清单命令ps [processes snapshot]
# ps -auxww
参数: -a 列出带有控制终端的全部进程,不仅仅是当前用户的进程
-r 只列出正在运行中的进程
-x 列出没有控制终端的进程
-u 列出进程的所有者
-f 给出进程的归属关系
-l 按长格式显示清单
-w 显示进程的命令行参数(最多半行)
-ww 显示进程的全部命令行参数,不管其

长度是多少
输出内容标题
USER 谁拥有进程
PID 进程标识号
%CPU 进程占用CPU的百分比
%MEM 进程占用内存的百分比
VSZ 进程占用的虚拟内存总量
RSS 进程占用真实(内存)的总量
TTY 进程的控制终端
STAT 进程的状态
S 休眠中
R CPU正在处理
D 不可中断休眠
T 正在被纠错程序跟踪或已被终止
Z 昏迷的进程
W= 内存中没有驻留页面(全部交换出内存)
<= 高优先权进程
N= 低优先权进程
L= 内存页面被锁定(通常表示需要实时操作功能)
START 进程开始时间
TIME 进程已经使用的CPU时间
COMMAND 进程名称和它的命令行参数
b. 交互列出进程清单命令top
top命令是一个交互式操作的ps命令版本,它不是给出一个静态的输出,top命令每隔2-3秒(用户可调)就会刷新进程清单的显示画面,从这个进程清单中,用户可以重新安排优

先权,或者终止它们.
缺省情况下,每个人都可以使用top命令. 可以用以下命令修改限制只能由根用户使用.
# chmod 0700 /usr/bin/top
c. 向某个进程发送消息命令kill
kill [信号代码] 进程ID
# kill -STOP pid 发送SIGSTOP(17,19,23)停止一个进程,而并不消灭这个进程.
# kill -CONT pid 发送SIGCONT(19,18,25)重新开始一个停止的进程.
# kill -KILL pid 发送SIGKILL(9)强迫进程立即停止,
# kill -9 -1 终止你拥有的全部进程
SIGKILL和SIGSTOP信号不能被捕捉、封锁或者忽略,但是,其它的信号可以.

08. 其他工具
a. 显示系统名称命令uname
# uname -a
参数: -m 给出机器的硬件类型
-n 给出机器的主机名
-r 给出操作系统的发行名称
-s 给出操作系统的名称
-v 给出操作系统的版本
-a 列出以上全部的信息资料
b. 查看用户命令的who
c. 改变用户登录身份
$ su 以自己的身份切换为根用户,系统会提示输入口令
# su sshah 以根用户身份登录系统,切换到其它用户
# su - sshah 以根用户身份登录系统,切换到其它用户,并具备这个用户的登录和Shell配置情况
b. 编辑器程序
vi, emacs, joe, pico

09. Linux系统的文件目录
/ 根目录
/bin 存放用户可执行的程序
/boot 操作系统启动时所需要的文件
/dev 设备接口文件目录
/etc

有关系统设置与管理的文件目录
/home 一般用户的主目录或FTP站点目录
/mnt 装置的文件系统加载点.如光驱、软盘等.
/proc 目前系统核心与程序执行的信息.
/root 管理员的主目录
/sbin 此目录存放系统启动时所需要执行的程序
/tmp 临时文件目录
/usr 存放用户的使用系统的命令和应用程序等信息
/var 具有变动性质的相关程序目录.log

10. Linux的开机引导
a. 引导管理程序Grub,LILO
b. 开机引导步骤
1> 加载内核
2> 执行内核
3> init进程
init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID总是1. init读它的配置文件/etc/inittab,决定它需要启动的运行级别(runlevel).
运行级别: 0 停止系统运行
1 进入单用户模式(不激活网络功能)
2 多用户模式,但是没有网络服务
3 完全的多用户模式(正常操作)
4 保留
5 与运行级别3相当,但是使用x-windows登录程序代替文本登录程序
6 重启动系统
常用运行级别是3和5.
c. rc命令脚本程序
当运行级别发生改变时,将由/etc/inittab文件定义需要运行哪一个命令脚本程序。这些命令脚本程序负责启动或者停止该运行级别特定的各种服务.
因为需要管理的服务数量很多,因此需要使用rc命令脚本程序。其中最主要的一个是/etc/rc.d/rc,
/etc/rc.d/rcX.d/ 此目录存放运行级别X的所有脚本程序(实际是符号链接,大多指向/etc/rc.d/init.d下的)
/etc/rc.d/init.d/ 此目录存放服务程序.


相关文档