LSA-读书笔记

第一章:linux系统安装及基本操作

一、linux起源和发展

1.linux作者:芬兰赫尔辛基大学的 Linus Torvalds(李纳斯?托沃兹),标志是企鹅。

2.Linux内核版本:XX.YY.ZZ 即“主版本号.次版本号.末版本号”,次版本号是奇数为开发版,次版本号为偶数为稳定版。开发版增加功能,稳定版修改错误。

3.GNU/GPL/LGPL

 GNU:是GUN is not Unix的缩写,目标是编写大量兼容于unix的自由软件。

 GPL:是General Public License的缩写,意思是通用公共许可证,目标是保证软件自由。

 LGPL:是Lesser General Public License的缩写,意思是次级公共许可证,目标是保证软件自由,但允许作者使用GNU库时不公开自己那部分的源代码。

4.Linux发行版

Red Hat公司:Red Hat Enterprise Linux 5

Novell公司:Suse Linux 11

Debian社区:Debian Linux 5.0

二、安装linux操作系统

1.linux如何表示分区

  hdXN:hd代表IDE硬盘,X代表第几块硬盘,N代表分区号,逻辑分区从5开始

  sdXN:sd代表非IDE硬盘,如SATA,SCSI,移动设备

2.Linux文件系统:默认是ext3文件系统

3.Linux目录结构:

 所有的分区、目录、文件都是从根目录(/)开始

 /boot:存放启动文件

 /bin:存放普通命令,所有用户都可执行

 /sbin:存放管理命令,管理员可以执行

 /home:存放所有普通用户的默认工作目录(宿主目录)

 /root:是管理员(root)的宿主目录

 /etc:存放各种配置文件

 /dev:存放设备文件

 /var:存放经常需要变化的文件

 /usr:存放其他应用程序

 /tmp:存放临时文件

4.安装

(1)安装程序列引导方式:USB引导,光盘引导

(2)软件包读取方式:光盘,硬盘,网络服务器(http,ftp,nfs)

(3)安装界面:直接回车为图形界面安装,输linux text回车为文本界面安装

三、基本操作

1.控制台切换

Ctrl+Alt+F1~F6  进入虚拟控制台1-6

  Ctrl+Alt+F7      回图形界面

2.关机及重启

shutdown  -r/-h  now

halt �Cp    init 0

reboot     init 6



第二章:管理文件和目录

`一、linux命令概述

1.命令格式: 命令  [选项] [参数]

  选项:对命令的执行要求,不同的命令选项也会不同,选项可以同时使用多个

  参数:是命令作用的对象

2.操作技巧

  可以用tab补全命令或文件名

  可以用\强制换行

  可以用Ctrl+U快速删除光标前面所有内容

  可以用Ctrl+K快速删除光标后面所有内容

  可以用Ctrl+L快速清除屏幕内容

  可以用Ctrl+C快速取消当前命令行的编辑

3.如何查看命令帮助

  help  内部命令  /  命令  --help  /  man  命令  /   info   命令

二、文件和目录管理

1.目录操作命令

(1)pwd    ?查看当前工作目录

(2)cd  [目录][-][~]

    什么都不加回主目录,“-”回前一个目录,“~”回主目录

(3)ls  [-ladhR] [目录或文件]    ?查看文件或目录

-l  显示详细信息

-a  显示所有文件,包括隐藏文件

-d  显示目录本身

-h  显示文件大小时,给出存储单位

-R  以递归方式显示子目录内容

(4)mkdir  [-p]  目录     ?创建目录

    -p  如果上级目录不存在,自动创建

(5)du  [-ahs] 目录    ?统计文件及目录的空间占用情况

    -a   统计所有文件      -h   显示存储单位     -s   只显示总大小

2.文件操作命令

(1)touch  文件名    ?创建空文件

(2)file  文件名   ?查看文件类型

(3)cp  [-fipr] 源文件或目录  目标文件或目录     ?复制文件

     -f  覆盖同名的目标文件时不提醒

     -i  覆盖同名的目标文件时提醒

     -p  保留源文件权限其其它属性不变

     -r   复制目录时必须使用此选项

(4)rm  [-fir]  文件或目录名   ?删除文件或目录

    -f  删除时不提醒

    -i  删除时提醒

    -r  删除目录时必须使用此选项

(5)mv  源文件或目录   目标文件或目录    ?移动文件、目录或重命名文件、目录

(6)which  命令名     ?显示命令位置及别名

(7)find  目录  [-type  文件类型]  [-name  文件名] [-size  +/-文件大小] [-user 用户名]  ?查找文件

(8)ln  [-s ]  源文件或目录取  链接文件或目录     ?建立链接

    -s  建立符号链接

3.文件内容操作

(1)cat  文件名      ?显示文件内容

(2)more  文件名       ?显示文件内容,分页显示

(3)less  文件名      ?显示文件内容,分页显示,能向前翻页

(4)head  [-n ]  文件名   ?只显示文件开头的n行

(5)tail  [-n ]  文件名   ?只显示文件结尾的n行

(6)wc  [-clw]  文件名   ?统计文件字符数、行数、单词数

-c   只统计字符数    -l   只统计行数     -w  只统计单词数

(7)grep  [-vi]  “内容” 文件名      ?只显示或不显示文件中带指定字符的行

    -i   不区分大小写         -v   不显示带指定字符的行

4.压缩文件管理

(1)gzip [-Nd] 文件名    ?压缩或解压文件

    -N是一个数字,代表压缩级别          -d  代表解压

(2)bzip2 [-Nd] 文件名    ?压缩或解压文件

    -N是一个数字,代表压缩级别         -d  代表解压

(3)tar  [-tcxzjpvC]  文件  [文件]    ?查看压缩文件内容、创建压缩文件、解压文件

-t   查看压缩文件内容     -c   创建压缩文件    -x    解压文件    -z    使用gzip

-j    使用bzip2   -p    打包时保留权限   -v    显示详细信息   -C    解压时指定位置

三、VI的使用

1.三种模式

命令模式--(a或i或o)-?输入模式------(Esc)-?命令模式

命令模式―(:)-?末行模式------(Esc)-?命令模式

2.命令模式命令

(1)移动光标

  hh   nG    nL   nH  M

(2)复制粘贴删除

nyy    p/P     ndd

(3)查找

    /string     ?string

(4)撤销与保存退出

  u/U    ZZ

3.末行模式命令

(1)保存与退出

  :w     :wq    :w  file     :q    :q!

(2)打开新文件,读入其他文件内容

:e   file            :r   file

(3)查找与替换

:m,ns/string1/string2/g


第三章:安装及管理应用程序

一、linux应用程序基础

1.应用程序组成

  普通程序文件:一般放在/usr/bin

  管理程序文件:一般放在/usr/sbin

  配置文件: 一般放在/etc

  日志文件:一般放在/var/log

  参考文档:一般放在/usr/share/doc

  帮助文件:一般放在/usr/share/man

2.软件包类型

RPM包:扩展名为.rpm,需要RPM包管理器安装

DEB:扩展名为.dep,需要DPKG管理器安装

源代码软件包:一般扩展名为.tar.gz或.tar.bz2,需要解压后安装,安装时需要GCC工具

提供安装程序的软件包:只需要运行安装脚本即可。

绿色免安装包:解压后即可使用

二、RPM包管理工具

1.查询

rpm  [-q] [-qa] [-qi] [-ql] [-qf] [-qc] [-qd] [-qpi] [-qpl] [-qpc] [-qpd] 软件名/软件包名/文件名

-q  查询软件是否安装

-qa  查询系统中已安装的所有软件包

-qi  查询软件包安装信息

-ql   查询软件包安装的文件信息

-qf   查询文件属于哪个软件包安装的

-qc 查询软件包安装的配置文件信息

-qd  查询软件包安装的文档文件信息

-qpi  查询安装包准备要安装信息

-qpl   查询安装包准备要安装的文件信息

-qpc 查询安装包准备要安装的配置文件信息

-qpd  查询安装包准备要安装的文档文件信息

2.安装

rpm  -i[vh] [--force] [--nodeps] [-U] [-F]  软件包名

-i安装  v显示安装信息  h用#号显示安装进度 --force强制安装,替换已安装过的软件包

   --nodpes安装时不检查依赖关系 -U 若软件包没有安装,则安装,若已安装,则升级安装

-F 若软件包没有安装,则不安装,若已安装,则升级安装

3.卸载

rpm �Ce [--nodeps] 软件名

-e 卸载    --nodeps 忽略依赖关系

4.维护RPM数据库

重建RPM数据库:  rpm  --rebuilddb/--initdb

三、软件编译安装

1.获取程序源代码

2.解压 (一般使用tar命令)

3.编译前的配置 (./configure  [options])

4.编译成安装文件  ( make )

5.安装  (make install)

第四章:管理用户和文件权限

一、管理用户和组账号

1.用户和组账号概述

用户账号:超级用户(root,权限最大)、程序用户(用于运行应用程序)、普通用户

组账号:是多个账号的集合,组不可以加入组

UID/GID:用户账号和组账号的数字标识

2.用户账号管理

(用户账号使用两个文件,/etc/passwd   /etc/shadow)

(1)/etc/passwd文件格式 ? teacher:x:500:500:teacher:/home/teacher:/bin/bash

含义:  用户名:密码:UID:GID:全名或描述信息:主目录:使用的shell

(2)/etc/shdows文件格式  ?teacher:$1$7…….:14374:0:99999:7:::

含义:用户名:已加密密码:密码上次修改时间:密码最少使用天数:密码最长使用天数:密码过期警告天数:密码过期后账户禁用天数:账号无效日期:末规定

(3)添加用户

   useradd  [-u  用户UID]  [-d  宿主目录]  [-e  账号无效日期]  [-g  主要组]  [-G  附加组]

[-s  使用的shell]  [-M]   用户名

   注:-M意思是不创建主目录

(4)为用户设置密码

passwd   [-dluS] 用户名

-d  清除用户密码,用户可以不用密码直接登录头  �Cl锁定  -u解锁  -S查看用户是否被销定

(5)修改用户

usermod  [-u  用户UID]  [-d  宿主目录]  [-e  账号无效日期]  [-g  主要组]  [-G  附加组]

               [-s  使用的shell]  [-M]  [-l 新名]  [-L] [-U]  用户名

-M不创建主目录     -L锁定     -U解锁

(6)删除用户

userdel  [-r]  用户名

-r  同时删除宿主目录

(7)用户配置文件

/etc/skel/    创建用户宿主目录时,以这个目录的文件为模板

/etc/bashrc   为所有用户设置环境

/etc/profile    为所有用户设置环境

~/.bashrc     只对当前用户有效,每次打开bash时执行一次

~/.bash_logout    只对当前用户有效,用户每次退出登录时执行一次

~/.bash_profile    只对当前用户有效,用户每次登录时执行一次

2.组账号管理

(组账号文件有两个:/etc/group,/etc/gshadow)

(1)添加组

 groupadd  [-g  组GID号]  组名

(2)添加、删除成员

 gpasswd  [-a  添加的成员名] [-d  删除的成员名]  [-M  要添加的多个成员名]

(3)删除组

  groupdel  组名

3.用户账号与组账号查询

groups /id  查询用户属于哪些组

finger/users/w/who    查询当前已登录用户的详细信息

二、管理文件/目录的权限和归属

1.文件权限查看

drwxr-xr-x  5   root   root   12288  10-07  12:15   /etc

对应含义为:

类型.拥有者权限.拥有组权限.其他人权限   引用数   拥有者   拥有组   大小   创建日期   名称

权限:r(4)读取    w(2)修改    x(1)执行

2.修改权限

chmod  [-R] [ugoa][+-=][rwxst]  文件或目录

-R  递归修改子目录  u拥有者  g拥有组  o其他人   a所有人

+增加权限   -去掉权限    =赋予权限

r读取  w写入   x执行    s执行者临时变为属主或属组   t只有属主可以删除


chmod  [-R]  Xnnn  文件或目录

X=1  设置t位,2,4,6设置S位

nnn   分别代表属主、属组、其他人权限的数字形式

3.修改文件/目录的归属

chown  [-R]  属主   文件或目录

chown  [-R]  :属组   文件或目录

chown  [-R]  属主:属组   文件或目录





第五章:管理磁盘和文件系统

一、管理磁盘分区

1.查看现有硬盘及分区

  fdisk  -l

2.给硬盘分区

fdisk  /dev/硬盘名

m 查看帮助  n创建新分区  d删除分区  t改变分区类型(82 swap 83 ext3 8e lvm)  w保存退出   q不保存退出

3.让系统重新探测分区信息

partprobe  [/dev/硬盘名]

4.格式分区,创建文件系统

  mkfs[.文件系统]   分区名     或    mkfs   -t  文件系统    分区名

  对于swap分区,使用如下命令操作

  mkswap   分区名             swapon   分区名       swapoff   分区名

二、挂载/卸载文件系统

1.挂载文件系统

mount  [-t  文件系统] [-o  loop]  分区名/ISO镜像   挂载位置

挂载镜像时必须用-o loop

2.卸载文件系统

umount   挂载位置/设备文件名    \    对于光驱还可以用  eject  [-t]

3.分区自动挂载         修改/etc/fstab,文件格式如下

分区名或卷标 挂载位置 文件系统 挂载选项 (01)是否可以让dump自动备份 (012)是否可以让fsck自动检查

4.查看已挂载分区的使用情况

df  -hT

三、设置磁盘配额

1.磁盘配额限制类型:用户限制与组限制、磁盘容量与文件数限制、硬限制与软限制

2.磁盘配额管理

(1)在挂载选项上添加usrquota(用户配额)、grpquota(组配额)

(2)检测磁盘配额并生成配额文件

quotacheck  -augcv  

-a扫描所有分区  -u检测用户  -g检测组  -c创建   -v显示详细信息

(3)编辑用户或组的磁盘配额

edquota  [-u  用户名]  [-g  组名]

FileSystem     blocks       soft           hard           inodes        soft          hard

分区名      已用空间   空间软限制   空间硬限制    已使用文件数   文件数软限制  文件数硬限制

(4)启动磁盘配额

quotaon  -avug  [分区挂载位置]

     -a所有分区  -v显示详细信息  -u用户   -g组

(5)查看用户或组分区磁盘配额使用情况

quota  [-u  用户名]  [-g  组名]

四、逻辑卷管理

1.基本概念

PV(物理卷)  VG(卷组)   LV(逻辑卷)

思路:把一个或多个物理卷加入到一个卷组,卷组大小是所有加入该卷组的物理卷大小之和

    在卷组上创建逻辑卷,创建时不受物理卷限制,卷组就好像是一个大的硬盘

2.PV物理卷管理

先用fdisk把分区类形改成8e,然后使用下面命令管理物理卷

pvscan     ?查看并显示类形为8e的分区信息

pvcreate  分区名        ?创建物理卷

pvdisplay  [物理卷名]    ?显示物理卷详细信息

pvremove    分区名     ?移除物理卷

3.VG卷组管理

vgscan     ?查看并显系统中已建立的卷组

vgcreate 卷组名  物理卷     ?创建一个新卷组

vgdisplay  [卷组名]   ?显示卷组详细信息

vgremove 卷组名     ?删除卷组

vgextend  卷组名  物理卷     ?扩展卷组

4.LV逻辑卷管理

lvscan     ?查看并显示逻辑卷

lvcreate �CL 逻辑卷大小 �Cn逻辑卷名  卷组名     ?创建新的逻辑卷

lvdisplay  [逻辑卷名]     ?显示逻辑卷详细信息

lvextend �CL +大小 逻辑卷名     ?扩展逻辑卷空间大小

lvremove  逻辑卷名     ?删除逻辑卷

第六章:管理进程和计划任务

一、linux 引导流程

1.引导流程总览

(1)开机自检  (2)执行MBR   (3)执行GRUB   (4)加载内核/boo/vmlinuxz-版本

(5)执行init进程,init是系统中第一个进程,(PID)进程号永远为1

    init进程执行/etc/inittab   init进程执行/etc/rc.d/sysinit    init进程执行/etc/rd.d/rc,/etc/rd.d/rc根据指定的级别,进入到/etc/rd.d/rc.n/中执行该目录所有文件

(6)执行/etc/rc.d/rc.local

2./etc/initab文件

 文件格式:   id字段:运行级别:动作类型:运行的程序或脚本

3.运行级别控制

(1)查看系统运行级别      runlevel    

(2)改变系统运行级别   init  级别

(3)查看服务在各运行级别启动状态    chkconfig   --list   [服务名称]

(4)改变服务在各运行级别启动状态

chkconfig  [--level  级别]  服务名称   on/off     或     ntsysv  [--level  级别]

二、进程管理

1.查看进程

(1)ps  [-auxelf]

   a显示当前终端下所有进程  u显示用户名  x显示当前用户所有进程

 -e显示系统内所有进程  -l显示进程详细信息  -f用完整格式显示进程信息

(2)top

动态显示占用资源较多的进程,M按内存,N按启动时间,P按CPU,q退出

(3)pgrep  [-l]  进程名

只显示指定名称的进程,-l显示进程号

(4)pstree  [-aup]

显示进程树,-a列出命令完整信息,-u显示进程是哪个用户运行的  -p显示进程号

2.控制进程

(1)启动进程直接放后台运行          完整命令   &

(2)暂停    Ctrl+z

(3)前台放后台   bg  jobs号

(4)后台放前台   fg  jobs号

(5)终止进程   Ctrl+c      kill  [-9]  进程号      killall   [-9]  进程名

三、任务计划

1.at   (一次性任务)

(1)定制   at   时间

(2)查看   atq

(3)删除   atrm  任务号

2.Crontab(周期性任务)

(1)编辑任务      crontab  [-u  用户名]  -e

(2)查看          crontab  [-u  用户名]  -l

(3)删除          crontab  [-u  用户名]  -r

(4)任务保存位置   /var/spool/cron/用户名

(5)任务格式

分   时   日   月   周     任务|指令

第七章:编写shell管理脚本(一)

一、bash常用功能

1.历史记录

(1)查看与清除      history  [-c]    -c清除

(2)使用历史记录    使用上下光标键    !n     !string

(3)设置历史记录条数   export  HISTSIZE=历史记录条数  或  把这个命令放入配置文件/etc/profile或者~/.bash_profile永久生效

2.命令别名

(1)查看     alias  [别名]

(2)设置或修改   alias  别名=’命令’

(3)取消别名  unalias [-a] [别名]      -a取消当前环境中所有别名

3.标准输入输出和重定向

(1)设备文件类型:  标准输入(STDIN),文件号是0,默认设备是键盘

标准输出(STDOUT),文件号是1,默认设备是显示器

标准错误输出(STDERR),文件号是2,默认设备是显示器

(2)输入输出重定向操作符

<输入重定向   > 输出重定向     >> 追加输出重定向

 2>错误输出重定向   2>>错误输出追加重定向  &>把标准输出与错误输出到同一文件

4.管道操作

 “|“  把前一个命令的执行结果,传给后一个命令,做为后一个命令的输入

二、shell变量应用

1.用户自定义变量

(1)定义     [export]   变量名=值

(2)引用变量的值      $变量名

(3)为变量赋值常用方法   双引号,解释特殊字符;单引号,不解释特殊字符;read,从键盘读取;

反撇号,允许执行命令,把命令执行结果作为变量的值

(4)查看变量:  set

(5)清除变量:  unset  变量名

(6)运算符:expr   +     -     \*     /      %

2.环境变量

$USER、$LOGNAME   代表当前用户登录名称

$UID 代表当前用户的UID号

$SHELL  代表当前用户所使用的shell

$PWD  代表当前工作目录

$PATH  代表命令的搜索路径

3.位置变量

$1~$9  分别代表用户输入的第1至9个参数

4.预定义变量

$0当前的进程名   $#参数个数     $?上一个命令是否成功      $$当前的进程号

三、编写并执行脚本

1.如何执行脚本

(1)可以直接执行带x权限的脚本,如果脚本文件不在PATH所指定的路径,执行时需给出绝对路径

(2)使用shell解释器执行,不需要有可执行权限        bash  脚本文件名  或  sh  脚本文件名

(3)使用“.”命令执行,不需要有可执行权限           .  脚本文件名

(4)使用“source”命令执行,不需要有可执行权限      source   脚本文件名


第八章:编写shell管理脚本(二)

一、使用if条件语句

1.条件测试([ 条件表达式 ]  或  test  条件表达式)

(1)测式文件状态

-d是否是目录 �Ce是否存在  -f是否为文件  -r是否可读  -w是否可写  -x是否可执行  -L是否是链接

(2)整数值比较

-eq等于  -ne不等于  -gt大于  -lt小于  -le小于等于  -ge大于等于

(3)字符串比较

 =等于    !=不等于    !取反

(4)逻辑测试

 &&/-a 并且     || /-o或者    ! 取反

2.if语句的结构

if   条件测试命令     |     if  条件测试命令               |  if  条件测试命令1
then                  |       then                         |   then 
条件成立时的命令 |           条件成立时的执行命令     |     条件1成立时的执行命令
fi                    |        else                         |   elif  条件测式命令2
                     |           不成立时执行的命令       |     then
                    |     fi                              |     条件测式2成立时执行的命令
                                                             else
                                                             条件测式2不成立时执行的命令
                                                           fi

二、使用循环语句

for   变量名   in  取值列表  | while  条件测试命令   |  until  条件测试命令
do                          | do                   |  do 
命令序列                |   命令序列          |    命令序列
done                        | done                 |  done




你可能感兴趣的:(linux,读书笔记,源代码,general,赫尔辛基)