博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHCE笔记-学习参考
阅读量:6203 次
发布时间:2019-06-21

本文共 10658 字,大约阅读时间需要 35 分钟。

2012-11-20


一、red hat 发布版的安装


  启动时输入 boot: linux askmethod    选择可以通过硬盘或者网络安装。

     boot:

     linux dd    driver disk 安装   如服务器安装时需首先安装阵列卡驱动

     linux ks     kickstart 安装    无人值守安装方式,原理直接配置文件安装,如:boot: linux ks=nfs:192.168.0.254:/var/ftp/pub/ks.cfg 


2、分区:/boot     200M   必须


  swap 分区为内存的1到2倍


  /   根分区(需求不明确时可以把剩的空间划分为上述分区,如有需求如需安装oracle,可以需划分u01等分区)


上述为三个基本分区!


3、boot loader password   需设置,不然root密码形同虚设。


4、安装过程中,ctrl+alt +F1 ---F7 之间切换 返回命令界面


5、linux 内核位置:/boot/vmlinuz-2.6.9-22.EL 



界面转换:authconfig


二、linux操作系统的基本结构:


1、kernel   内核    

     uname -a   查看kernel的版本号!

2、modules  模块    3、 lib 库    4、app 应用程序


    不同控制台之间发送消息:

      echo AAAAA> /dev/tty1 

     who am i   查看当前登录的用户

     w   查看控制台/或登录用户

     skill 掉某个用户或终端命令:skill -9 pts/2

     默认为6个终端,修改以下配置文件可以更改:vi /etc/inittab

      vi  退出保存 :wq


      启动Xwindow   :startx   启动第一个xwindow

                                 startx -- :1  启动第二个xwindow


三、linux命令:


1、shell 的内部命令:shell 本身提供的功能

    

     提供帮助方法:help 


2、shell 的外部命令:由外部文件提供


     提供简单帮助方法:命令+ --help 

      man   +命令   提供详细的帮助方法

     使用方法 :搜索 /+关键字 或?+关键字     n向下滚动,shift+n  向上滚动    

     man 7 man 查看  共9种类型文件


info 帮助命令,使用得较少,与man类型,但比较详细。


3、linux 命令的习惯:

    1、命令及参数区分大小写;

    2、程序可否执行与扩展名无关;(添加chmod  x 权限即可)

    3、使用tab键来补全命令

    4、善用寻求帮助形式。


一些快捷键:

ctrl +c 直接暂停    ctrl+z  直接丢后台暂停   ctrl +l  清屏


四、文件操作命令:

1、touch 创建文件 ,更新文件,touch /etc/{a,b}   创建两个文件。

    

     mkdir  创建文件夹

     

     rmdir    删除文件夹  (只可以删除空的文件夹)--较少用

    

    查看文件属性详细信息命令:stat   如:stat a


     前面带点的文件为隐藏文件,如.a  ,查看时需这样操作:ls -a

    

      查看当前目录:pwd


2、ls   查看文件

     

     ls -F  查看文件类型,如文件夹为/a ,带@为链接文件 ,带 *号为执行文件。


3、mv  移动或重命名   


      mv  b c  更换b文件为c名


4、 rm 删除


     rm -f  删除一个文件不需要确认

     rm -r  删除一个文件夹

     rm -rf  删除一个文件夹包括里面所有文件,不需要询问


5、. 代表当前目录  ,  .. 代表当前目录的上一级目录, cd -  回到上一目录


6、 cat  查看文件内容,more和less也是查看文件内容

   more可以一页一页查看,但只能往下翻;

   less  也可以一页一页查看,可以上下翻;


7、vi  命令


   q!不保存退出


    u  撤消


    ctrl + r   重做


8、alias  别名


   如定义一个别名:alias ii ="ls -l"

   删除别名:  unalias ii


9、 重要,关于配置文件,vi ~/.bashrc   


10、添加用户:


   useradd ming  (添加用户时需设置密码才可以登录)

   passwd ming  如不加用户名即修改当前用户的密码


11、su ming  在当前界面切换帐户,

       su - ming  切换到另一帐户


6-3 系统命令初步


查看计算机信息:

1、hostname   查看计算机名,更改时直接后面加上计算机名(重启不生效),更改以下配置文件永久生效:/etc/sysconfig/network


2、更改IP信息:

ifconfig eth0 192.168.1.80    (重启不生效)

vi /etc/sysconfig/network-scripts/ifcfg-eth0   (更改配置文件)


netconfig  

service network restart   (netconfig 后重启服务生效)


3、id


root 的id为0  组id也是为0


4、date


   date +%d    显示日期

    date +%m%d   显示月份日期

如创建  一个以时期命名的log:touch `date +y%m%d%`.log


5、file  查看文件类型(详细)

    file  a


6、mount   加载  


    mount  /dev/sda2 /mnt  把sda2 加载到mnt


     umount  取消加载


    加载u盘使用:mount  /dev/sdb1  /file1

    加载光驱使用: mount /dev/cdrom /mnt

    加载共享:mount -t cifs //192.168.0.2/tools /mnt

                    mount //192.168.0.2/tools /mnt

                     mount -o username=administrator //192.168.0.20/tools /mnt


   加载nfs   :mount 192.168.0.20:/var/ftp/pub  /mnt


7、cat /dev/cdrom > a.iso   

 mount -t iso9660 -o loop a.iso /mnt

查看光盘内容


8、du   查看文件的大小

    

     du a.tar  查看文件大小

     du -s a 查看文件夹大小

     du -sh a 


9、df  显示分区大小情况


    df -h   显示分区大小使用量


10、ssh  远程登录


    ssh 192.168.0.20 

    ssh  scott@192.168.0.20  以什么用户远程登录


11、exit   退出当前shell

       logout  退出登录shell


12、关闭系统:

   shutdown -h now   关闭服务再关机

   init 0  直接关机 或: halt -p -f   或 poweroff  

       

13、重启:


   shutdown -r now 

    init 6

    reboot 


6-4 用户及组管理


1、useradd  添加用户    用户信息存放在以下文件: /etc/passwd


例: useradd oracle –g oinstall –G dba –d /home/oracle –p ora123 

系统将创建一个用户 oracle,oracle用户的首要组为 oinstal,次要组为 dba。Home 目录为/home/oracle,密码为 ora123 。


      userdel  删除用户   彻底删除包括home下的目录文件:userdel -r ming

     usermod  更改用户属性

    如,把ming用户更改属性添加到多个组里:

   usermod -G root,bin,todd ming 


  把多个用户加入到root组里:

 gpasswd -M ming,todd,ttt root


  用户密码文件:  vi /etc/shadow

  用户组密码文件 : vi /etc/gshadow 较少用

  用户组文件 : vi /etc/group 

如:做一个用户迁移,把上述文件移动另一个系统


 注:加入root组并就是有root权限,uid为0才是root


2、修改以下文件也可以更改用户属性一般常用:

   vi /etc/login.defs


3、向控制台发出信息:


   write

   mesg

   wall  给所有登陆在本机用户发出信息

   last   查看登录日志

   lastlog 查看全部登录日志


6-5  linux系统文件的存储及权限


1、-代表普通文件,d 代表目录类型文件,l代表链接文件

      b c s p 管道文件   共7种文件


2、备份整个硬盘到一个加载u盘上:

    dd if=/dev/sda of=/mnt/a.img

    或者其中一个分区:dd if=/dev/sda1 of=/mnt/a.img


3、文件授权:

    644  二进制为: 110 100 100 即权限为:rw- r-- r--

   chmod 644 A

  如不用数字授权为:

  chmod ugo+x A   所有设置为都增加一个执行权限  u 代表拥有者,g代表拥有组,o代表其它

  chmod a-x A    同理减小一个X

  chmod a=rw A  都为rw权限


  chmod -R 777 /tmp/work   大写R参数表示把整个目录所有文件都设置为上述权限


4、修改文件的拥有者:

    chown ming a 把a文件的拥有者更改为ming用户

    如果加大写R参数跟chmod一样用法


5、改变文件的拥有组

    chgrp root a   用法跟上述一样,也可以带大写R参数


6、新建一个软链接:


   ln -s file1 file2    建立file1的软链接file2   ,如是硬连接则不加-s


4、linux下文件权限不叠加,如某用户对这个文件没有权限,但它所属的用户组有权限,最后权限是没权限,跟win不一样



7--- linux 文件夹及文件的权限


   1、文件夹权限:X为重要权限,如果没有x权限则不能cd进去。

     r权限对应为 ls查看执行

    x   cd

    rx  cd   ls

   wx  cd  touch  rm   vi (自己的,其它人的)

   wxt  cd  touch rm  vi(只可以修改自己的)


    注:文件夹W权限很重要,如果一个用户对此文件夹有写的权限,那么对文件夹里面的权限同样可写!   

  : wq!   强制修改保存退出


  /tmp  权限为1777    ,1为sticky  权限

   umask  

   关于不同用户创建文件或文件夹的权限:

    文件夹:777-umask

     文件:666-umask



8---linux 编译器及vim初步:


1、rhel5  把vi省去,需直接输入vim


2、u   撤销undo  ,ctrl+r   重做


3、"a3yy 复制      "ap  粘贴     自定义剪贴板 a,可以为b,c等,3代表复制3行。


4、:set nu  显示行数



9--文件查找与压缩:


1、which  查找可执行命令  如: which  ls  注:只可以查找命令


    echo $ PATH    输入路径为which查找的路径


2、whereis   跟which 相似 


3、locate 查找东西比较快,且查找所有目录 ,查找前需更新db:updatedb


   ls ‘which locate’-l

   locate aaa.tar.gz

   locate -r '.*newfile.*'


cat  /etc/cron.daily/   计划任务里的内容


4、find  命令(比较慢):

   语法:find /etc -name newfile.txt 

             find /etc -name "*newfile*" 

  直接加文件名为在当前目录查找。


   find /etc -name "*network*" -exec ls { } \ ;   把查找出来的内容再执行ls命名

    find /etc -name "*network*" -ok rm { } \ ;   把查找出来的内容再执行ls命名,但需确认,exec不需交互。


     find /etc -等等  参数。


    find / -perm -777 -type d -ls     从根目录下开始查找所有权限为777的目录


5、grep  对指定文件内容进行查找(只查找文本文件):

   

    grep -R -l shrek /etc    查找所有带shark字母内容的文件关ls出来



6、压缩工具:


   gzip  压缩

    gunzip   解压缩


   bzip2    压缩 ,跟gzip差不多,但压缩比较高

   bunzip2  


7、tar  打包:

   

   tar cvf  /tmp/root.tar /etc/network   把network 打包到tmp下 

    tar rvf  /tmp/root.tar /etc/network /etc/passwd

    tar xvf  /tmp/root.tar -C /tmp/dd/  解压到指定目录下xvf

    tar tvf  /tmp/root.tar   预解压文件tvf


  tar cvfz  /tmp/root.tar.gz /etc/network    打包后再压缩cvfz

   rvf不可以加z使用

  tar xvfz  /tmp/root.tar.gz -C /etc/network   解压解开到   xvfz


注释:c  创建新的档案文件

          r  把要存档的文件追加到档案文件后面

          t  列出档案文件的内容,查看已经备份了哪些文件

          u 更新文件

          x  从文档文件中释放文件

          v  详细报告

          f  使用档案文件或设备

   


8、history  查看历史命令



10--文本处理及正则表达式----


1、对文本文件操作命令:cat,more(只能往下),less


  head 显示文件的头部内容,默认显示前十行,参数-n 指明显示行数

  如;head -n 20 /etc/passwd 显示passwd的前20行。


  tail  显示文件结尾部分,用法与head一样。


注意:tail -f /var/log/message 实时监控日志文件更新信息,非常重要

-f 如果文件的大小在增长的话,tail 将跟随文件的增长而显示。


    sort -t : +2 -n  /etc/passwd  排序以:分隔 +2第三列,-n数字  (默认从大到小,加-r 即从小到大)

    sort -t : +2 -n  /etc/passwd  > /tmp/a  排序后并输出到a文件

  

    sort -t : +2 -n  /etc/passwd  | head -n 3 输出前3行


2、抓取文本中的一部分内容:

      cut -d: -f1 /etc/passwd    以:为分隔符抓取第1行


       cut -d: -f1 /etc/passwd | grep shrek  以:为分隔符抓取第一行,再取出带shrek的行

     

       cut -c1-3 /etc/passwd   取第一至三个字符下来


3、常见参数:

     grep -v -l -R -c -A2 -B2    -v不包含

     cut -d:  -f2-4   -c1-5  

     sort -n -r -t: +2


   注:grep执行时需加‘’号,如: grep 'ming' /etc/passwd


4、wc  统计文件的行,词,字数

   可以加以下参数: wc -l -w -c /etc/passwd


5、uniq  只显示不同的单词:


6、diff  两个文件作对比:


    diff a b 


7、正则表达式:

     .  表示任意一个单一字符


     .* 表示任意多个单一字符


     ^a 表示以a为首的行


    a$  表示以a为尾的行

   

    \<good 表示以good开头的单词


   good\>  表示以good结尾的单词


    [abc] 表示当前位置 a、b或c


    [^abc] 表示除了a、b、c以外的字符


   a*  表示多个a


    a?  表示一个或单个单独的a


  a+   表示a、aa、及至更多个a


   a\{n\}   表示重复了n次的a



11---输入输出重定向及管道:


  1、标准重定向输出:>   ls /etc/passwd > /tmp/a  

       >号只输出正确的信息,如果 是错误信息则是 2>

      如:ls /etc/afdsafdaf   2> /tmp/a


    注:上述重定向都会把a文件清空后再写入。利用此可以对文件删除清空。

           &>  表示错误正确的消息都写入

           >>  追加到文件后面

           &>>表示正确错误都追加到文件后


cat /dve/cdrom > /tmp/a.iso    将光盘做成iso镜像  


2、两个<< 

     cat << aaa    等待输入


    tr “a-z” “A-Z”< /etc/passwd     把passwd全部输出变成大写


      cat  > b.txt << DDD   当输入DDD时 中断退出


    ls /etc/  | wc -l    统计有多少文件示例


    ls /etc -l  | grep '^d' | wc -l   统计有多少个文件夹应用


3、 tee  复制



12----进程控制

 

1、hostname   主机名,注当更改完主机名时一定要更改相关IP:

    vi /etc/hosts   更改里面的相对应 IP地址,如window 里的hosts文件


2、free 查看内存使用情况


3、proc  内核的一个小窗户,里面的文件都是虚的


4、日志  /var/log        查看相关日志 message(系统日志) ,secure,(安全日志) wtmp(安全加密日志),maillog(邮件日志)


5、查看进程:top   或 ps   ,ps -aux 显示所有进程,-f 查看进程树


    终结进程:kill  -l   可以查看相关号,如:kill -9    ,kill -11


   直接结束进程:kill  4811   强制结束:kill -9 4811


  杀掉所有httpd进程:  killall httpd -9

   

   杀掉某个用户的进程: skill -9 ming   


   关于进程状态:s  代表睡觉,T代表暂停,R代表 运行 ,Z 僵持进程,D深度睡眠进程,<:高优先级进程,N:低优先级进程

    

6、关于优先级:


   -20 到19    最大优先级 为-20


  top里面使用 r 来修改优先级。


   nice -n -20 updatedb   以高的优先级执行命令

    renice -20 1  把进程1的优先级更改为-20


7、jobs  查看后台任务,bg %1  把后台第一个进程运行起来,fg %1把后台第一个进程转到前台并停止,kill %1  结束第一个进程。ctrl + z  停止一个任务并丢到后台。


   nohup updatedb &   在shell退出后,后台进程仍在执行,作为系统进程



----13 bash 使用详解:


set  查看所有的变量,env  查看全局环境变量


1、  vi ~/.bash_profile    设置bash命令


定义一个变量,取出其值

   AA=aaaaaaaa

   echo AA

上述为普通变量,只可以在相应的bash下使用,下面定义全局变量使用:


export AA=aaaaaa


2、history -c  删除全部历史纪录


   如果想每次退出时清除命令历史纪录:

 

  vi   .bash_logout   在上述文件中加入history -c


 调用命令历史:ctrl + r



3、关于bash的字符(注:跟正则表达式不一样):


  ! 表示执行等,~表示 主目录,( ) 声明一个函数如:a() 


   "" 号只能把空号的意义的屏蔽,‘ ’把全部特殊符号屏蔽,`` 可以先执行``里面的命令,如:touch  `date + %y%m%d`log  (反引号是指~里下面的)


\  脱义符号  ,如touch  一个$的文件: touch \$   


;  可以连续执行两个命令: echo aaaa ; ls /etc -l


4、查看上述命令是否正常执行:echo $ ?  正常执行输出0。


5、两个&&号的使用:[   -f /etc/passwd   ]   &&  echo ok  如果前面为正确时执行后面的命令


6、两个||  号的使用 : [  -f /etc/passwdddd    ]  || echo ok   与上面命令相反,如果不正确时才执行。

(注:上述-f 代表查找文件,-d代表查找目录,-l 代表一个链接,-x代表是否可以执行,-r是否可以读,-w是否可写,-e  表示文件是否存在,-s  文件大小不为零)


同时需注意上述加空格代表判断,如:[  $USRE  =  root  ]  && echo it is root



7、定制bash


shell 脚本里一般初始化会执行以下几个参数配置文件:


     1、/etc/profile     针对所有用户的 ,公用 的

     2.   ~/.bash_profile  当前目录下的

     3.  ~/.bashrc         4.   /etc/bashrc  针对所有用户的



8、更改为中文界面


   查看当前系统语言:echo  $LANG


  vi ~/.bashrc   打开上述文件添加以下:

  export LANG="zh_CN.UTF-8"

  export LC_ALL ="zh_CN.UTF-8"


上述只针对当前用户,如更改整个系统的语言则更改以下:

vi /etc/sysconfig/i18n    添加以上即可



-----14.shell 脚本编程详解:


1、声明一个bshell 脚本以:#!/bin/sh


2、重设shell环境  :reset     ,man bash  录求帮助


3、在当前的shell里来执行:   .  ./backup



4、查看脚本的执行:bash -vx  ./b  可以查看脚本的一步步执行(调试使用), bash -v ./b  查看脚本的执行   



5、if 语法:

以下为一个bash 示例:


#!/bin/bash


read AA


if [  $AA = root ]  then echo 'hello root'

       elif  [  $AA = ming ]  then echo 'hello ming!!'

     else

              echo 'you are a bish!'

fi


6、case……in 语法:


#!/bin/bash 


read AA


case $AA in

            ming)  echo 'hello ming, welcome to here!!'

              ;;

            root)  echo 'hello root ,i miss you so mush !!'

            ;;

        *) echo 'you are a bish ,get out here!!'

            ;;

esac



7、/etc/rc.d/init.d/   上述为系统初始化时的shell路径


8、file1  -nt  file2   文件file1 比文件file2更新

     file1  -ot   file2   文件file1比文件file2 更老


9、数值运算符比较:


相同  -eq  =

不同  -ne  !=

大于  -gt   >

小于  -lt   <

大于或等于  -ge

小于或等于  -le

为空  -z

不为空  -n


10、下述为kill 掉httpd的例子:


AA="`pgrep httpd`"


[  -z  "$AA"  ]  &&  echo 'httpd is not running !!'  && exit

for i in $AA

    do  

          kill -9 $i

    done

echo  'httpd has killed'


11、循环100次:


for   i  in `seq 1 100`


12、while 循环:


  AAA=0


while [ $AAA -lt  100 ] 

      do

             AAA =$[$AAA+1 ]

             echo \ "$AAA"

    done 

 

13、编写一个输入某个数循环:

     

14、sed  使用:


sed -n -e '/ming/p'   /etc/passwd  默认输出带ming的项 ,-e表示执行后面的命令,-n表示默认输出,p打印


sed -n -e '/\<ming\>/s/bash/nologin/p'  /etc/passwd   把bash替换成nologin ,s表示替换 。


sed -e 's/nologin/login/' /tmp/ddd/passwd   把所有nologin 替换成login


sed -n -e '/ming/s/bash/nologin/g' /tmp/passwd > /tmp/ddd/a 替换后并输出,g代表全部替换。


sed -e '/^\#/d' -e '/^$/d' /tmp/ddd/squid.conf  > /tmp/ddd/bb 

删除以#开头以及为空的行, d代表删除


15、把 '' 里面的命令写成一个文件ss,然后再sed执行:

sed -f ss /tmp/ddd/passwd 


16、软件安装:


   1、rpm -ivh   ....i386.rpm     安装某个rpm软件包,-i表示安装,v表示显示百分比,h显示过程。

   强制重新安装:rpm -ivh --force  ...i386.rpm

   强制安装:rpm -ivh --nodeps  ...i386.rpm     --nodeps 强制安装不管其它关联关系

   安装:rpm -ivh --aid  ...i386.rpm   --aid  解决一层关联关系,只有rhel4之前系统有。

   强制删除rpm:rpm -e --nodeps httpd                --nodeps是强制删除不管其它关联关系


2、rpm -q httpd 查看httpd安装的包 

   

     rpm -qa   查看所有已经安装的包。

   

     rpm -qi       查看已经安装的包的详细信息


     rpm  -ql   查看包的安装路径


     rpm -qpi   a.rpm    查看未安装的包的信息



3、解压出来的原代码进行编译安装:


./configure   --prefix=/usr/local/httpd  --with-mpm=worker

 (指定安装在哪一个目录下面)


make  


make install



17------xwindow 图形界面


ctrl+alt + 退格    :关闭x-window界面


18------安全方面:


nmap -sS -O -P0  www.baidu.com

扫描端口


更改ssh端口: vi /etc/ssh/sshd_config 

                    service sshd restart


 

本文转自pimg200551CTO博客,原文链接: http://blog.51cto.com/pimg2005/1182919,如需转载请自行联系原作者

你可能感兴趣的文章
Android数据适配-ExpandableListView
查看>>
iOS:多线程技术GCD的使用
查看>>
Google 最新的 Fuchsia OS【科技讯息摘要】
查看>>
SEO博客
查看>>
Logic-算法-八个箱子找一个最轻的
查看>>
坚持学习WF(8):本地服务之调用外部方法
查看>>
javascript中对变量类型的推断
查看>>
在.NET中使用SMTP发送邮件
查看>>
ZJUT 地下迷宫 (高斯求期望)
查看>>
Lambda表达式的前世今生
查看>>
PHP绘制3D图形
查看>>
Unity Camera的两种模式
查看>>
在VirtualBox里复制VDI文件[转]
查看>>
在datatable中,在指定位置插入列
查看>>
linux下安装php的swoole扩展模块(安装后php加载不出来?)
查看>>
单播、广播、组播(多播)
查看>>
3.5. Ticket
查看>>
越狱第一至五季/全集迅雷下载
查看>>
安装Windows更新程序遇到错误:0x80070422
查看>>
微信JS-SDK选择相册或拍照并上传PHP实现
查看>>