当前位置:Linux教程 - Linux文化 - linux 学习笔记

linux 学习笔记


很久前就打算把这些笔记写下来,由于种种原因一直没动,打算从今天起慢慢的把自己学习linux的过程写下来,对与错请CU的各位前辈指点,非常感谢牛海峰(JohnBull)老师,您是我的linux启蒙老师,俗话说“师傅领进门修行靠个人”,非常汗颜,我自打离开长城后就很少拿出精力来研究linux了,磕磕绊绊走过了一年,现在工作有了着落,静下心来把一年的心情整理一番,也把学习笔记拿出来,请CU前辈指正。                                                                      jinscan      linux入门很重要,刚开始自学linux时懵懵懂懂好不容易装好了linux,大喜过后一脸无奈,这是哪跟哪呀~~~~~~里面的所有东西都不知道怎么用,自信对window有研究的我在linux前手足无措,在给linux相了一天面后还是格掉了此后开始看书,慢慢的找感觉~~~~~~~~~~~一直到长城开始系统的学才自以为找到了感觉(也就是入门了)。自我评价:学习linux找感觉最重要,不管是看书还是自己安装后琢磨,坚持着看和做,肯定能成。如果仅仅看了两天书就认为入门了那肯定是自欺欺人。 Linux安装: 安装linux并不是很难,一般用光盘安装,安装时硬盘默认分为三个:引导分区;根分区;交换分区;分区弄明白了安装也就没什么障碍了。还有从硬盘安装,我当初从硬盘安装linux时颇费一番周折,幸亏有platinum和shadowmin老师的及时指点才得以顺利安上,再次感谢一下:)附硬盘安装原文: http://bbs.chinaunix.net/viewthr ... p;extra=&page=1 注:装linux是要写规范主机名。如host.abc.com 作服务器时系统CMOS时间应设为格林威治时间,即国际标准时间 linux基本命令:    挂接:单根文件系统使用多个设备的方法。   mount 设备  挂接点        dmesg  | grep cd  此命令可看光驱在哪 ( 当老师讲到这里的时候机器出了点故障,鼠标不动了,老师用了一个命令就使鼠标复活,第一次感叹linux的神奇啊~~~~~原来鼠标还可以重起(windows下还真没想过)   顺便把老师用的命令也抄了下来,呵呵多学了个窍门    重启鼠标命令: /etc/rc.d/init.d/gpm restart ) 解除挂接:umount 挂接点      软盘写法:  /dev/fd0 SCSI硬盘写法:/dev/sd(a)括号内可以依次排为b cd……. USB硬盘SATA硬盘系统都做SCSI硬盘对待。 SCSI光驱写法:/dev/scd(0)括号内为数字零依次后派 USB口的光驱也被认为SCSI光驱。 注:只有先解除挂接可移动设备才可拿出来 shell和文件系统 shell命令: unix中绝大多数都是外部命令。内部命令常用的有cd  很少 dos      |      shell dir      |       ls type     |       cat cd      |       cd md      |      mkdir rd       |      rmdir del      |      rm copy    |       cp ds      |       dear attrib    |       chown  charp   chmod 此上命令除了cd 全是外部命令 最重要的命令:  man  主题 主题可是shell命令也可是配置文件,还可是C语言函数,但有时shell命令和配置文件相同时打入命令怎么办呢,此时用参数                    man 1.命令 2.系统函数 3.标准库函数  5.配置文件 例:查passwd      默认   man passwd  会查到                         man passwd(1)命令                此时要用 man 5 passwd  可查配置文件 模糊查找(匹配)参数: -k  例 man –k  PPP      和大多数unix中一样k为小写. 第二个重要命令: vi 文件名       (文本编辑器)      它有三种工作模式,缺省为”命令模式”                    输入I 进入”插入模式”   按ESC回到命令模式    常见命令: 删一个字符  x               删除一行   dd               恢复操作   u               复制       yy   (光标在哪一行将复制哪一行)               粘贴       p    (粘贴在光标下面) 在vi重复输入一些命令时,在前面加数字 如插入100个a  则在命令模式下先输入100 按I输入一个a 回到命令模式则会有100个a被插入  5行东西重复3次则输入5yy3p  存盘退出用大写ZZ    “末行模式”常见是搜索字符.用”/”在命令模式下输入 “/”加字符串.在手册中也能用 “;”会引发末行模式.可用”;”跳到某一行”;”加数字可直接到那 “;”还可用与文件操作 “;q”可直接退出 “;q!”强制退出 “;w”存盘不退出 “;wq”存盘退出 “;recover”可在出现以外后修复文件 “;w 文件名”另存为                          shell命令的敲法:       命令   参数1   参数2 参数定界:用到” ‘  ‘”(单引号) 用单引号括起的如’abc  def ‘是告诉shell消除语法歧义 如要建一文件叫  jack’s  daily 却不能用单引号了,此时得用”\”应写为: 例如: touce  jack\’s\ daily “\”为转意字符,取消反斜杠后一个字符的特殊含义 文件系统 在unix中”.”无特殊含义   unix下区分文件类型的命令   file   unix下是靠文件的头部说明来区分文件格式,所以操作系统不会理会扩展名的 (exe文件头两字母是MZ)         mount 直接回车是显示当前所mount的状态 df 察看磁盘利用状态 磁盘分区 du –h +子文件名  检测文件系统子目录所占空间 pwd查看当前子目录 unix下一个文件可以不可读而可执行,对于子目录而言x就是另外一层含义了,称之为检索。对子目录而言r就是列表权 (经验:不要安装基于文本界面的多媒体应用程序) 如何修改权限 修改属主:   chown [-R] 新属主  文件 -R: 将文件夹中的所有文件也更改掉 修改属组:   charp  [-R]  先属组  文件 修改权限:   chmod [-R]  新权限  文件 新权限有两种表示方法: (1)        直观:  如  rw-r—r— 数字        6   4  4             110100100                    (2)字母法:  如  rw-r--r--                                       u  g  o 修改文件的访问权限不必非得是root,文件属主也可以 windows文件权限策略是ACL,侧重与灵活性;  unix文件系统策略是权限位,侧重用效率; linux所有权限都放于一个16位的短整数里 linux特有功能(ext2 ext3所体现的):列出所有权限命令:lsattr                                  设置特殊权限:    chattr 连接: 硬连接:硬连接本质使一个文件有两个文件名和windows不同windows中文件属性和文件名是放在一块的,而linux文件名仅是文件名   命令:ln 原文件名  新文件名       硬连接有两限制:(1)不能给子目录建硬连接 (2)        不能跨文件系统建硬连接(即不能跨分区) 在unix下删除一文件的本质是断开一个硬连接,系统会将硬连接数减一,只要不为0则保留文件体。    符号连接:(路径跳转) 命令: ln –s 跳转去向 连接名   注:建符号连接得用绝对路径。写绝对路径此时可建成的在tem下看到的连接是红色的。“à”后面指向的仅一个services但在当前目录即tem下却没有这个文件此时便出错了。   注: 符号连接可跨分区建立 shell shell 使用:  在unix下常用的是bash 功能:(1)自动完成  按tab键支持路径,在参数位置上按tab会补齐文件名,按两下tab键便可看所有系统命令。 (3)        命令历史:按↑↓ 可查看所打过的历史命令。注:在用户文件夹下有个bash-histroy保存有上次使用的命令。 非shell功能, 虚拟终端功能:按alt+f1~f6切换 鼠标粘贴:左键选择右键粘贴,可跨终端。 *shell如何运行外部命令: 进程:一个正在运行的程序就是一个进程(不严密的解释) 派生:系统的所有进程都是由一个进程派生出来的 shell有一个父进程当接到一个命令时会产生一个子进程,而shell则进入休眠状态,等待子进程结束,子进程完后交给父进程一信息,父进程激活等待。                  后台运行命令:      命令 & 作业控制:ctrl+z 把前台作业挂起(暂停)挂起后都会保存在内存中。         怎么知道有作业呢?用jobs命令 fg + 作业号 是把后台暂停作业调回前台 bg + 作业号 是把前台作业换到后台 shell的基本配置:         bash的基本配置是由配置文件组成的./etc/profile称之为shell的全局配置文件。 另外一个文件在个人的目录下  个人目录/.bash-profile 还有个文件在个人的目录下/etc/bashrc  是第二个全局配置文件,保存的是(函数别名等)在个人目录下也有个配置文件~/.bashrc   etc下的文件是全局文件,一经修改所有的用户设置都改了 shell的具体概念: 环境变量:  变量名=变量值    例: LANG=en 是设置语言为英文                                   LANG=zh-CN.GB18030是设置语言为中文 通过设置shell的变量来决定子进程继承什么样的值。                  {变量名=变量值                   export  变量名 可简化为   export 变量名=变量值   注:export 不能省略,另外此时定义的变量是当前shell的值,一旦注销便没有了,想固化得修改profile文件 命令env 可查看所有环境变量里面有个path非常重要,它定义了shell命令执行的路径。 Linux下命令执行仅搜索path路径,不会搜索当前目录的外部命令,所以在当前目录下要执行当前目录中的命令需要加”./”命令。 3.引用变量的值: $变量名  例:export  PATH= $PATH:/etc/xxx   例如:echo $LANG  echo  回显命令  可察看LANG的值   例    export  CMD =ls                $CMD –l  等于ls –l shell管道与重定向     一个进程的缺省标准输入输出分为标准输入;标准输出;标准错误输出三个管子。 控制终端:缺省情况下进程的三个管子通向控制端 输入重定向:命名  <    文件名    解释:原来要从终端读取的命令改成从文件读取。         例如:cat   <   /etc/hosts    则cat读取的文件不是从键盘而是从hosts文件,cat不知道所要读取的标准输入输出被换成/etc/hosts和cat /etc/hosts不一样,此时是cat直接读取hosts 输出重定向:(1)命名   >     文件名  原来要输出到终端的命令改成输出到文件              (此时叫覆盖式重定向)           (2)命名 >>  文件名                (追加式重定向)   例如: gcc 命令 0:标准的输入                   1:标准输出                   2:标准错误输出 解释linux最精简的一句话是:linux下一切都是文件。    管道:匿名管道,unix传统进程间通信。 写法: 命令1 | 命令2 命令2处经常出现的是more 或  grep 例如: cat /etc/services  | grep  ‘http’ 意思是包含有http的输出

老师在讲shell中穿插讲了硬盘分区和格式化    磁盘的分区格式化     分区:  fdisk    -l 列出分区表             fdisk   磁盘而不是某分区  (/dev/had)       command  :p 看分区                   n 新建分区                   d 删除分区                   q 不保存退出                   w 保存退出 生成文件系统(格式化)       mkfs  (make file system)       mkfs  -t  ext2  /dev/hda5       mkfs  -t  ext2 –j /dev/hda5       :格式化成ext3格式 挂接:mount /dev/hda5 shell  脚本本身就是程序,是用shell命令构成的,小规模、结构化、模块化、程序设计。 命令:  echo   输出信息用         read   输入信息     read+ 变量名         sleep   休眠        sleep+ 秒数 在终端上算数表达式写法: echo $ ((1x2x3))这是整数运算不能带小数点。 /  :除 % :余 shell脚本格式: 第一行必须是     #!/bin/sh 有三种结构  顺序结构   分支结构   循环结构   顺序结构    wait 命令 保证进程同步 等待一个子进程结束 多个并发就用多个wait 例如:    #!/bin/sh            echo “1”            sleep 5&            echo “3”            echo “4”            wait            echo”5” 分支结构           if 判断  ;  then                   T块                 Else                   F块                 fi 判断        test语句   test 表达式 =  [表达式] 表达式进行文件判断   -f  文件名(检测该文件是否存在且为普通文件                      -d 目录名                      -r  可读                      -w 可写                      -x 可执行 这些例子由于年久失修(笔记上标注不完备,过后有忘了的地方)错误之处请多多包涵 例如:         #!/bin/sh         echo “file”         read  FileName         if  [-f $FileName]; then              echo “yes”           else          echo “no”   fi 字符串比较   相等    串A =串B              不等    串A!=串B              -z   判断字符串是否为零 空为真 非空为假 数值比较: 大于 等于 小于  不等于        a > b       $A –gt $B        a≥b       $A –ge $B        a≤b       $A –lt $B        a=b        $A –le $B        a≠b       $A –ne $B 逻辑比较: 条件A –a  条件B(与)             条件A-o 条件B  (或)            !条件            (非) 例如:         #!/bin/sh         read MARK  <  /proc/sys/net/ipv4/ip_forward         echo  $MARK          if  [ $MARK = “0” ]; then            else  echo “host”                 echo “GATEWAY”          fi ‘ ‘ 反单引号: 如果反单引号后面有语句则将里面的语句运行完后将结果替换此处       例如:        #!/bin/sh        u=id –u         if  [$u = ‘0’] ; then                 echo “hello”          else                 echo “permission denied”         fi 再例如:       #!/bin/sh       echo  “username”       read  userNAME      MARK = ‘cat /etc/passwd | grep ‘$userNAME:’       积极if  [ -z $ MARE] ; then                 echo “NO”              else                 echo “YES”            fi 多分支结构            case  字符串   in 串1) 块1        ;; 串2) 块2        ;; . . . *)       esac 例如:     #!/bin/sh         echo  “command”           read  CMD          case $CMD  in        start)                  /etc/rc.d/init.d/named  start                 ;;        stop)                 /etc/rc.d/init.d/named  stop                 ;;        estart)                /etc/rc.d/init.d/named stop                /etc/rc.d/init.d/named start                 ;;                *)                 echo  “usage : $0 {start|stop|restart}                 ;;             esac *知识点:  . 脚本  让shell不打开子进程,在当前shell进程中运行脚本      看脚本切忌一行一行的看,要一层一层的看,就像剥玉米. Shell脚本 循环  1)当形循环       2)条件循环    while  判断;  do           循环体    done 例如:      #!/bin/sh        i = 0 while  [ $i –lt $n] ; do       j=0       while [ $j –lt $ (($i+1))] ;  do         echo “\*”           j=$(($j+1))         done        echo       i=$(($i+1))     done 定时循环  00:00:00: 1970-01-01 utc   称之为unix元年        data +%s 是取从unix元年至少过了多少秒        date +%H:%M:%S    显示时分秒格式 例如:             #!/bin/sh        intime = ‘date +%S’ –le $ [ (intime+5)] ; do             echo “.”          ##echo后面加-n 输出就不回车了,横向输出         done    利用date命令可以方便的实现定时循环     shell风格的循环     for 循环       (枚举循环) 格式       for   变量名  in  值列表  ;  do                  循环体             done ##值列表:核心部分,一系列由空格分开的字符串 例如:   #!/bin/sh          for n in asd 4r3 56h er34 657 tr ger ; do             echo  $n          done 要自动下载列表中的东西编shell的     #!/bin/sh              cd /tmp/dl       for url in  cat /etc/urls ; do             wget $url           done             >/etc/urls 补充知识:     参数传递       命令  参数1  参数2 …………     例如:           #!/bin/sh              n=$1               i=0             while ($i-lt $n); do                echo    “xxxx”                 ii= $ (($$+1))                   done       $0       $0就是命令本身 编后:此处讲的都是基本的shell应用,老师推荐看《bash编程》 Linux系统管理 1.        用户管理 添加账户   useradd 用户名            passwd 用户名 groupadd   组名              usedel    -r    用户名   /etc/group          /etc/passwd            /etc/shadow            三个重要文件 group 文件  格式:  组名:x :组ID:组成员 passwd文件 格式:  用户名:x:用户ID:组ID::用户目录:shell 用户在passwd文件中体现的组关系称为用户组属组,而在group组中体现的是额外组。    false:运行起来就是个恒假。正确利用false给用户,将false添加到/etc/false下用户名字后这样用户就被拒之门外。如mail用户 通过修改用户的shell来限制用户登陆提高网络安全性。    top命令:察看机器负载情况    which命令:查看外部命令的路径 top被弄成用户shell时切记在linux下可用,因在linux下top是安全模式的,而在其他unix中并不一定安全,通过敲击热键可能会打出一shell。 shadow文件  shadow里面的口令是散列,散列是不可逆的 批量添加150个用户      u001—u150 #!/bin/sh i=1   while [$i–le 150] ; do                 if [ $i -lt  10] ; then                 uname =u00$i    else                 uname=u$i      fi              useradd $uname       i = $(($i+1)) done    passwd 命令规定只能在终端上手动输入,只有用stdin参数便可解决 作业: 从一表中将已知用户名导入useradd 2.网络配置 linux 下有两套网络配置,第一套为BSD方式,另一套是linux方式。linux中高级网络功能只能用linux方式。    BSD方式:1.查看  ifconfig   网卡名     BSD中必须指定网卡名               注释:                    collisions 冲突             txqueuden  发送包的长度                 网卡工作模式       mii-tool   媒体无关接口    ethtool+网卡名    查看命令更详细(需要网卡驱动支持)    netstat –r  查看路由 查看网络连接状态               netstat    -ant   查看TCP的所有网络连接                          -anu   查看UDP的所有套接字 一条TCP连接会产生两个套接字,两台机器均开。 ARP  -n    -n意思是不要进行反解 不转成名字   查看DNS  cat /etc/resolv.conf          2.配置IP                   ifconfig  网卡名   ip地址 配置路由   route add   -net  网络地址  netmast x.x.x.x  gw 网关            route add   -host 网络地址  netmast x.x.x.x  dev 网卡            route del   -net  网络地址  netmast x.x.x.x  gw 网关            route del   -net  网络地址  netmast x.x.x.x  dev 网卡 缺省写法: route add  default gw 网关            route add  default dev网卡    静态ARP     arp  -s  IP地址  MAC地址 linux 方式:      ip 命令             ip addr show  查看IP地址 简写为 ip ad sh          ip route sh    查看路由    简写为 ip ro sh          ip neigh sh    查看静态ARP  简写为 ip ne  sh ipv6中取消了ARP  改用ICMP 具体配置:          ip  ad add dev ip地址/掩码长度          ip route add ip地址/掩码长度  dev 网卡       ip route  add ip地址/掩码长度   via  网关地址 激活/禁止某网卡         ifconfig  dev   down/up    linux下的:          ip link  set up dev eth0          ip link  set down dev eth0 此设置都是临时的,固化网络配置,在linux下 主机名/缺省网关: 修改路径 /etc/sysconfig/network         如果修改主机名顺便把hosts文件也得改    /etc/hosts否则有时服务会启动时挂起死等~~~~~~~~~~~~~~~~    固化IP 地址   /etc/sysconfig/network-scripts下的ifcfg-网卡名 例如: /etc/sysconfig/network-scripts/ifcfg-eth0          bootprotocol= static  ##如果用动态IP则改成DHCP          ONBOOT=yes           ##启动时激活,设置思想:作为外网网卡应该为NO,因防火墙启动之前将网卡先期启动会有被攻击的危险           静态ARP固化            /etc/ethers         写法:    mac  ip   例如 : 01:02:03:04:05:06  10.0.0.2   (小知识点: 万用脚本:/etc/rc.local 不管什么命令只要加在此,下次开机后便会自动运行,相当于autoexec.bat。在用户登陆之前便已经运行,注:在此文件中加命令时不可阻塞,如果命令执行时间过长则加“$”将其弄到后台执行。 3.计划任务  在linux和unix下是cron服务来实现的,每隔一分钟检查一次任务列表。    /etc/crontab crontab 命令  -l (list) -e (edit) 写时间格式:时分日月周  命令   例如:       05 5 * * 1,3,5 ##每周一三五运行 技巧:计划任务可用”,”“_””/”给分开 如果计划任务不执行此时主要原因是路径不对,看crontab便可知,PATH写的便是,第二原因是终端:不能读标准输入和写标准输出,但可用重定向往文件中写可以,不能使用终端如果要修改crontab文件则需要先停止cron服务。        /etc/rc.d/init.d/crond stop       修改~~~~~~~~~~~~~~~~~       /etc/rc.d/init.d/crond  start linux配置:4.top 命令详解&进程管理           top 命令查看系统的资源状况    load average  表示在过去的一段时间内有多少个进程企图独占CPU    zombie  进程 :不是异常情况。一个进程从创建到结束在最后那一段时间遍是僵尸。留在内存中等待父进程取的东西便是僵尸。任何程序都有僵尸状态,它占用一点内存资源,仅仅是表象而已不必害怕。如果程序有问题有机会遇见,解决大批量僵尸简单有效的办法是重起。kill是无任何效果的    stop模式:与sleep进程应区别,sleep会主动放弃cpu,而stop是被动放弃cpu ,例单步跟踪,stop(暂停)的进程是无法自己回到运行状态的。    cpu states : nice: 让出百分比           irq :中断处理占用 idle:空间占用百分比        iowait:输入输出等待(如果它很大说明外存有瓶颈,需要升级硬盘(SCSI))    Mem: 内存情况             设计思想:把资源省下来不用便是浪费,如添加内存后free值会不变,buff值会增大。    判断物理内存够不够,看交换分区的使用状态。 ps命令  列进程。列出所有进程 ps ax     :tty值为“?”是守护进程,叫deamon 无终端,大多系统服务是此进程,内核态进程是看不到的,例木马 看进程树,以树形方式现实进程列表敲  ps  axf             init是1号进程,系统所有进程都是它派生的,杀不掉   ps axm   :会把线程列出来   在linux下进程和线程是统一的,是轻量级进程的两种方式。   ps axu  :显示进程的详细状态。          vsz:说此进程一共占用了多大物理内存。          rss:请求常驻内存多少 终止进程:   kill  pid       本质是协商退出!(并不是强制退出)               全:     kill  -信号    pid kill –KILL  pid    是强制退出。 例如编写一kill杀不掉的程序 #!/bin/sh      while true j do            echo –n “.”            sleep 1    done #!/bin/sh     trap “”15    ##捕获15号进程,kill就是15号进程    while true j do     echo  -n “.”     sleep 1     done 修改进程优先级:     nice 命令  每个进程都有优先权,权值越小优先级越高。     nice –调整值  命令               ##范围“-20~19” linux图形界面的优先级并不是最高的,它仅是一进程   nice命令在root下可随意调整,在普通用户状态下只能调低不能提高,不过还是可以恢复回去的。   局限性:必须敲命令之前敲nice ,它无法更改已经运行的程序的优先级。 如果要更改已经运行的用     renice   调整值   pid      即在线调整。 killall 命令:  杀死一系列进程,即杀死一系列由一个相同命令产生的进程例如killall   fam killall是根据命令名来杀的,kill以pid 来区别。     在top 里面可以直接杀死进程,按“K“输入PID可杀      按“R“可调整优先级         BSDunix 定义了32个信号         linux定义了64个信号。 5. 启动管理               启动顺序:  BIOS -> MBR -> 启动扇区 MBR : 扫描分区表看哪个是可启动分区,再将那个扇区放入内存。 GRUB有两种装法: 1. MBR 2.启动扇区 GRUB有两个基本技巧:         (1). 单用户启动模式:  见到GRUB启动菜单时按“e“选”“kernel“打头的那一行,再按“e”,然后在/  rhg后面加空格+“1” 再按“b”便以单用户模式启动了,输入init 3便进入正常启动模式。 在单用户模式下可以更改root口令,有很大危险。 防护方法: 给grub加口令       vi   /etc/grub.conf     ##在timeout后添加一行          password=1234567     ##密码 使生效:敲grub回车   等待一会  再敲quit (2).        GRUB—> linux内核 -> init进程 ->                                                                   1.进程指令运行级                                             2./etc/rc.local                                                                   3.虚拟终端          init配置文件     /etc/inittab 里面有一说明  0 –halt 1-        single 3-        full mutiluser 5-        X11         id:5:initdefault     ##缺省进入5   X11模式         si::sysinit:/etc/rc.d/rc.sysinit               ##系统启动以后调用的第一个脚本,即init进程所调用的          trap           ctrl – alt –delete ca:ctrlaltdel:/bin/    在文字界面下敲init –q 来使配置 立即生效 注:屏蔽三键热启动是非常重要的 虚拟终端的添加/减少也在此修改(数量修改) 如果想把linux弄成指纹识别的替换掉getty和bgin即可。 6.文件包管理     文件包有    RPM包    源码包    二进制包 rpm包格式:  软件名-版本.平台.rpm 在http://rpmfind.net几乎可以搜索到所有的rpm包 rpm包的安装:   rpm  - i  软件名.rpm    rpm  -i –nodeps  软件名.rpm  ##不考虑依赖关系的安装 检查某个rpm包是否安装用此命令: rpm –qa | grep 包名 删除已安装rpm   rpm  -e 强制删除:       rpm –e –nodeps  软件名 源码包: 格式:  软件名-版本.tar.gz/软件名-版本.tar.bz2 在进行源码处理的时候都要将源码拷在此处:/usr/load/src 解包:        tar –zxf  名称    ##gz解压        tar –jxf  名称    ##bz2的解压 运用: 进源码包 à第一步      ./configure    ##配置             第二步      make           ##编译             第三步      makeinstall    ##安装 大多书软件都安装到了/usr/local下 二进制包: 大多数都给制成一可执行文件,直接运行即可,而大多数都要求在X11下安装 例:java虚拟机的安装     (不是开放源码的包) 7.GUI linux下的图形界面和windows图形界面的区别有哪些 linux X是一协议,规定了unix下图形终端,至今为X11R6  用XFree86软件包来实现的,分为图形终端和图形主机,图形终端为X服务器 大写X回车便启动一个图形终端,监听6000端口 X协议是可以基于TCP工作的,也可不基于TCP工作 XFree86提供了一个完整的服务器和几个常用的基本程序 主机配置à在系统设置->登陆屏幕->把XDMCP启用,注销一次 主机   netstat –anu  查看177/udp 终端上敲: X –query 10.0.0.1回车 如广播域中有好几台X主机则用X –broadcast 在文字界面想进如图形界面敲 init5 快捷键        ctrl + alt + “ +”                  “-”可动态调整分辨率     ctrl + alt + “←”可强制退出图形界面,在linux下X也仅仅是一个进程。     ctrl + alt + “F1~~~F6”回到文字界面 8硬件管理   查看CPU类型:   /proc/cpuinfo   查看pci设备:   lspci  表中能看到但linux不一定能驱动   查看usb设备:   lsusb   -v  显示详细列表,甚至电压都有   设备驱动情况: dmesg 在proc目录下有很多常用命令,在此还有以进程号为名的目录,可在目录中查看进程路径,在纯unix中仅有以进程名的子目录,在linux中多些系统配置 9.磁盘配额 基本要点:1.针对某个分区(ext2、ext3、reiser、…fat不支持)2.对于块的使用/文件个数限额 步骤:1.不考虑限额情况下把分区挂好       2.进入挂接点 做 : 目的: 对u1限10M  1000个文件。 对两个文件    touch  aquota.user    aquota.group  加个“a”即高级 将两个文件属性改成600    chmod 600 aquota.user aquota.group      3.修改etc下的fstab   vi /etc/fstab     在hda5这一行的defaults后面加一逗号写上usrquota,grpquota ##基于用户和组的限额。      4.重新挂接该点  mount  -  o remount /home ##不关机的前提下重新挂接一次      5.启用限额    quotacheck –u –g /home  ##意思是启用之前检查此点的使用情况(经验:做限额要拿新分区来做)                     quotaon   -u –g /home(前五步是一次性的做完即好)      6.设置限额     edquota –u u1  回车后出现一表          解释表:                 block – 以块为单位,已用了多少          soft/hard   软/硬限额 inodes    文件实体 修改后存盘退出即可。 edquota命令还有一种非交互性的         edquota –p 原型用户  -u 用户名  ##即将原型拥护的限额复制给新用户。 10.日志管理 1./var/bg/messages  此为主日志文件。注:出现服务器异常时要去看日志文件,调试服务器失败第一反应应去查看日志,而不是重装系统 2.syslog服务   命令:  logger   例如:logger hello 便向日志文件添加一行“hello” 日志配置文件:/etc/syslog.conf    格式:   消息分类     消息去向 来源.级别    /var/log/ 常用技巧:就地打印日志  将日志写到/dev/lp0    行式打印机打印出去   *远程日志:       syslog服务器 配置syslog服务器 例如:  10.0.0.1为syslog服务器        10.0.0.111 为客户机 步骤: 1.服务端配置 vi /etc/sysconfig/syslog                   sysLOGD_OPTIONS = “-r –m 0”   ## -r 意思是接受远程的日志         重起/etc/rc.d/init.d/syslog    restart        2.客户端配置           vi /etc/syslog.conf           在消息去向处添加  @10.0.0.1             存盘退出重起服务           /etc/rc.d/init.d/syslog  restart        (知识点:直接查看日志尾部:    tail   /var/log/messages) 日志服务使用的端口是:514/udp syslog日志服务器端不能根据源地址过滤,为了防止外网向日志服务器写垃圾信息要在网络拓扑中解决,网关上做限制外网访问514端口。


摘自:chinaunix.net