linux学习笔记2015-12-09


脚本的开头需要用#!/bin/bash   来开始脚本,在脚本中,最好用#注释批注,养成好习惯

在系统里面,默认有一个变量REPLY变量

在declare 可以定义一个变量的类型

 declare -i a    ------定义了a为整型

 可以用echo $?来查找返回值,正确的命令返回值为0,错误的返回正数值

  在linux中,可以用test 来做数值的比较

   语法为: test $aa -lt $bb --------判断aa变量小于bb变量

   也可以用[   ]中括号来进行比较

  语法为:[ $aa  -gt  $bb ]    -----表示变量aa 大于变量bb的对比。如果为真

   返回0,错误则返回非零正数

   判断1 && 判断2  --------“与”连接符,必须两边都必须为真,才返回

                                              如果判断1为假,则不去执行判断2,返回假

                                 总结:&& 必须2边都为真,则返回真

   判断1 || 判断2    -------- “或”连接符,只要有一边为真,就执行返回为真

                                               如果判断1为假,则继续执行判断2,判断2为真

                                                就返回真

                                  总结:|| 一边为真,则返回真

   条件判断语句

    语法:

     if  判断语句; then

                命令

     elif  判断语句;then

                 命令

      

      else  

               命令

      fi


     eg:

     #!/bin/bash

     grep ^$1 /etc/passwd

     if [ "$?" -eq 0 ];then

            echo "这个账号存在"

     else

           echo "这个账号不存在"

      fi

  

       例2:

        #!/bin/bash

        echo "请输入你的年纪:"

        read name

        if [ $name -lt 0 ] || [ $name -gt 150 ];then

             echo "请输入正确的年纪"

        elif [ $name -le 20 ];then

               echo "你好,年轻人"

         elif [ $name -le 50 ];then

               echo "你好,中年人"

         else

                echo "你好,老年人"

           fi

    

    定义一个函数function

     语法

      function  test () {

                      echo "这是一个函数"

         }

        test                 #直接用函数名即可调用执行此函数


      循环 

             while   [判断语句]    ------条件成立,直到不成立结束循环

              do

                  命令

              done

           

       

              until  [判断语句]   ---------条件不成立,直到条件成立结束循环

               do

                      命令

                done



             

           for循环

               for   xx  in 值1 值2 值 3 ...........

                do

                 命令


                done



linux账号管理与ACL权限设置


在linux中,1-499 的UID表示为系统账号

普通USER的UID从500开始

用户信息存储在/etc/passwd里面

密码信息存储在/etc/shadow里面

gpasswd -a 用户名 组名  -----把用户名加入到组中

groups 用户名  -----查找该用户属于几个组

useradd 用户名  -----创建用户,未加参数,使用默认

默认值可以修改/etc/default/useradd 来修改默认值

useradd -D   -----查看用户的默认属性

创建一个账号的例子

useradd -c "i'm bob" -s /sbin/nologin -d /bob -g tom -G cary.qin -u 1000 bob

此例为创建一个bob的账号,并指明了很多选项

-c  描述

-s  指明shell类型

-d  指明家目录位置

-g  指明所属组(主组)

-G  指明从属组

-u  指明UID号


更改相关信息,可以使用usermod命令


修改USER密码命令

passwd 用户名   -----为用户设定密码


passwd -S 用户名 -----查看是否设定密码

passwd -d 用户名  -----删除用户的密码


chage -d   2015-11-09  账号  -----设定账号最后一次修改密码的时间

chage -E 2015-11-09 账号    ------设定账号过期时间

chage -m 10 -M 20 -w 4   账号 ------为账号设定密码最小天数-m,-M 密码最大天数

                                                          -w密码警告天数


对组的操作

groupadd 组名   -----添加组

groupdel 组名    -----删除组

gpasswd -a 用户 组名   -----把用户加入到组

gpasswd -d 用户 组名   -----把用户从组移除

gpasswd -A 用户 组名 ------把用户授权管理组,让此用户可以对这个组进行管理


访问控制列表ACL


getfacl 文件名  -----查看文件的权限


setfacl -m u:tom:rw- xx     ------设置xx文件的访问控制权限,访问控制权限优于ugo的权限

                                                  u表示user的意思

    



2.SAN储存设备

  SAN ------Storage Area network 存储区域网络


  NAS ------Network area storage  网络区域存储




3:网络的配置


    system-config-network     可以通过此命令进行配置

    

     setup     也可以


     vim /etc/sysconfig/network-script/ifcfg-eth0   ----可以编辑此文件


      ls | wc  -------可以用wc命令统计文件的数量


      可以用iptraf工具对linux系统进行抓包。------此工具为文本界面下的抓包工具

       在linux图像下,可以使用wireshark工具进行抓包


        客户端DNS文件为/etc/resolv.conf ,本机指向的DNS服务器在此配置

         主机名的位置保存在/etc/sysconfig/network里面,在此可以修改主机名

         如果为了让自己可以解析自己,可以修改hosts文件里面,让主机名可以

          解析出IP地址

       

         在Linux中,可以用route -n 来查看该机器的路由表情况,可以查看网关地址

          可以通过cat /etc/resolv.conf文件,查看机器的DNS服务器地址是多少

          

          ip link   -----在centos里面可以看网卡的状态




4.在linux服务器中添加新的硬盘并且使用

    具体步骤

     1.关闭Linux服务器,安装上新的硬盘

          在此,我们可以使用fdisk -l 来查看硬盘是否能识别

    

      2.开启linux服务器,对新的硬盘分区

          可以使用fdisk /dev/sdb   命令对新加的硬盘进行分区

            之后可以使用fdisk 此命令进行分区后,

            



      3.对分区格式化

          使用mkfs.ext4 /dev/sdb1      --------对新加的第一块硬盘的第一个分区

             进行格式化

           或者可以使用

             mkfs -t ext4 /dev/sdb1   -----使用此命令也可以格式化磁盘


         

       4.在/ 目录下选择挂载点,并加载,并且同步数据

            mount /dev/sdb1 /share    ------把share挂载到这个分区

             如果需要/share挂载启动自动加载到新硬盘分区,需要修改/etc/fstab这个文件

       5.配置etc/fstab文件,使新的硬盘开机自动挂载



       fdisk -l   ------查看系统的硬盘分区情况

       mount    ------可以查看硬盘使用的分区一些情况

       

        blkid     -------可以查看硬盘的UUID号

   

        linux之间copy数据

         首先要启动SSHD服务

          scp 192.168.1.100:/etc/passwd /root   ---------用scp命令复制192.168.1.100/etc下的

           passwd文件复制到本机的root下


           还可以使用vsftp,安装ftp服务

            启动ftp服务

             


           如何使用SSH工具远程连接管理linux服务器

            /etc/sshd/sshd_config  相关配置信息保存在此文件下面


            netstat -natp  -----查看网络相关端口的信息


            linux系统之间可以直接使用ssh +ip 地址即可登陆


            gnome-terminal 管理linux系统 

            可以使用secureCRT  putty 及Xmanager等软件来通过SSH管理linux系统


            

           如何更改Linux中的语言环境并按照中文输入法


           系统相关默认语言文件存放在/etc/sysconfig/i18n里面,此配置文件管理

            全局语言。

            如果只改自己目录的语言,不影响全局

             ~/.bash_profile文件,编辑此文件,在后面新增如下字符

               export LANG=zh_CN.UTF-8

                export LC_ALL=zh_CN

             如果临时让语言变更生效,直接命令即可

              LANG=zh_CN.UTF-8

           

找回root密码

 

   在linux,账号信息保存在/etc/passwd里面,密码信息保存在/etc/shadow里面


   通常删除掉/etc/passwd里面账号后面的x,则密码就被取消了。


   一般情况下,我们重启进入单用户模式进入系统,即可

    在启动选项时,我们选择e 回车,之后选择kernel选线,继续选择e回车。在后面

    空格输入1,则选择进入了单用户模式了,直接就进入了系统,不需要输入密码即可

     进入系统

    

   /boot/grub/grub.conf 


   如果系统grub设定有密码,并且你不知道该密码,则无法使用single单用户模式进行

   修改密码。则需要使用CD光盘启动密码进入recure救援模式下进行修改

   


你可能感兴趣的:(shell脚本)