Linux基础命令(三)

1、Linux中软件包的管理方式

第一种:用rpm命令管理.rpm结尾的包
       rpm包:依赖性强,不方便
       示例:挂载光驱
          # mount /dev/cdrom /media/
          光驱是只读的,不可写
       Linux中的软件针对的还是服务器领域比较多
       1、源码包
       2、二进制包(RPM包,系统默认包)
第二种:
       通过yum命令进行管理
       使用yum的前提,必须联接外网
       rpm的包都来自于本地-Packages目录 ls | wc -l
yum命令特点:
自动解析依赖,更方便快捷
列出系统中所有已经安装好的rpm包 # yum list   

Linux基础命令(三)_第1张图片

 列出筛选需要的包
 # yum list | grep httpd-tools
 其中末尾的仓库名前面如果有@符号,表示已经安装在系统上

Linux基础命令(三)_第2张图片

 1、安装命令: install
  选项:-y 加上可以直接确认,不用手动确认

Linux基础命令(三)_第3张图片
Linux基础命令(三)_第4张图片

 2、卸载命令:remove  也可以加上: -y选项

image_1aksiipcv1au9ev75k56t01qqv1t.png-17.2kB

 yum和rpm
 安装和卸载包名后都不需要加.rpm
 但是rpm命令安装卸载就需要加.rpm
 
 yum包的来源都是来自互联网,所以需要连接外网
 比如:mirror.163或者开源中国等镜像网站

 了解yum仓库
 首先下载来的包需要一个仓库(位置)
 # ls /etc/yum.repos.d
 在Linux中以.repo结尾的就是仓库配置文件,前面的名称可以必须.repo才能生效该文件,否则无法识别。
 file://代表本地
 gpgcheck代表是否开启校验
 gpgkey代表是否开启公钥

2、Linux 系统管理命令

  1、ifconfig 查看网卡信息
  2、top查看系统整体资源,包含内存,CPU
     top命令是动态显示当前系统中的进程(CPU,内存),小写q退出
     swap:交换分区,类似windows中的虚拟内存,当物理内存消耗殆尽时,就可以使用虚拟内存。

Linux基础命令(三)_第5张图片

  3、free 查看系统内存信息

image_1akskh3n81k5t1ns0126r1rcm11k72n.png-8kB

     # free -m  默认以M为单位

Linux基础命令(三)_第6张图片
4、查看系统当前进程 # ps -ef | wc -l
其中 -ef 表示查看详细信息

3、shell

  1、概述
    一方面,这是一个命令解释器
    起到了用户与计算机之间的交互作用,将输入的命令转换成计算机能够识别的语言(010101.......),再将返回结果转换成能够识别的字符.
    另一方面,是编程语言(解释执行的脚本语言,如PHP语言,简单理解,不需要再进行单独的编译,直接回车输出结果)
  2、shell语法分为两大类
    B shell
    C shell

Linux基础命令(三)_第7张图片

   # cat /etc/shells,表示它们之间可以任意切换。
  3、变量
    shell中有四种变量
    环境变量
    位置变量
    预定义变量
    自定义变量
  3.1环境变量
     用户变量
    .bash_profile这个是针对某个用户来配置的环境变量配置文件(私有,不共享)
    /etc/profile是针对整个系统来说的
    简单理解:一旦配置就是全局生效(公共的,共享的)
    一般建议配置全局生效的环境变量
    查看用户环境变量位置
    # echo $PATH
  3.2 位置变量
   一般和脚本是联合使用的一种变量。将传递给脚本的参数保存在位置变量中。便于在脚本中引用这些参数。
   系统设置了9个位置变量:$1,...$9
   $0:代表脚本变量
 3.3 编写脚本规范
   #!bin/bash 这是所有脚本开头必须要写的一项。
   作用:声明这是一个脚本
   执行脚本方式:
   # sh 1.sh  sh加脚本名
   示例

Linux基础命令(三)_第8张图片

Linux基础命令(三)_第9张图片

 3.4 预定义变量
   $0:脚本名称
   $1:表示进程的PID号,每一个进程有一个ID号
   $?:简单理解,表示一个判断
      判断结果如果是0,则命令执行成功
      如果是非0,是执行失败。
   $*:整体显示出所有内容
   $#:显示传递的参数的个数
   $$:
   $@:一般工作中,逐个读取
 3.5 自定义变量
      用户自己定义的变量,使用$来取值
      语法格式:name=[value]
      变量等号两边不能有空格。
      变量名相同,值不同,取后一次定义的变量值会覆盖前一次的变量的值

image_1akuni9r6rsbd6g1c0f5b7135i9.png-5.5kB

4、逻辑符号
      逻辑与:&& 
          示例: cmd1 && cmd2
          # cat /etc/passwd &&  mkdir /tmp/hdfs
          代表前面的命令执行成功了才会执行后面的命令
      逻辑或:|
          示例: cmd1 || cmd2 
           # cat /etc/passwddd ||  mkdir /tmp/hdfs1
          只有当前面的命令执行失败的才会执行后面的命令
      ; :表示无逻辑关系,先后执行,没有任何的逻辑关系
         注:/etc/init.d  存放系统脚本文件
         Linux系统都是由脚本搭建起来的
         在工作中可以命令连用,节省时间,提升效率
   5、shell运算
     $((....))  表达式

Linux基础命令(三)_第10张图片

     $[....]  表达式

image_1akuqg0pe150glqqjb81iln102q23.png-5.1kB

       运算 expr 5 + 2
       注意:运算符两边需要加上空格,否则相当于打印
       自定义变量,运算时必须加上$符号,表示取值

image_1akuqm25s1m8f1l4p1cf21f061pfh2g.png-3.2kB

  6、内置测试判断
     Test测试表达式
     数值比较
         -eq 等于则为zhen
         -ne 不等于则为真
         -gt 大于则为真
         -ge 大于等于则为真
         -lt 小于则为真
     赋值字符串 加上双引号,否则报错 # a="I am"。其实加上单引号也可以。
     示例:
     #  [ $a = $b];echo $?
     a取出的是两个字符串,同样b也是两个字符串
     
     涉及到字符串的就需要加上双引号
     # [ "$a" = "$b"];echo $?
     
     -o 或者,相当于 or
     根据操作行为判断
     示例: # ["$Yn"="Y" -o "$Yn"="y"];echo...
     通过比较字符串,取变量,和真实字符进行比较,判断结果
     
     -o 其中一个条件成立,则整个表达式成立
     -a 所有条件都成立,则整个表达式才成立
    
    文件测试判断
       前提:文件必须存在,格式选项后必须跟上文件名b
       -e 文件名 如果文件存在则为真 # [ -e /etc/passwd ];echo $?。目录也是类似的写法
       -r 文件名 如果文件存在且可读则为真
       -w 文件名 如果文件存在且可写则为真
       -s 文件名 如果文件存在且至少有一个字符则为真
       -d 文件名 如果文件存在且为目录则为真
       -f 文件名 如果文件存在且为普通文件则为真
       -c 文件名 如果文件存在且为字符型特殊文件则为真
       -b 文件名 如果文件存在且为特殊文件则为真
       
    权限测试 根据当前登录的用户进行判断
    # [ -w test10 ];echo $? 
    如果不在当前目录下,需要加上绝对路径
    # [ -r /home/senior02/test10 ];echo $?
    
    and “和”判断
    [ -e /etc/passwd -a 2 -eq 2 ];echo $?
    or “或”判断
    [ -e /etc/passwd -o 2 -eq -2 ];echo $?
  7、时间命令
      查看系统时间 date
      修改时间命令 -s  示例:# date -s "2016-06-11 15:08:28"
      获取时间格式 示例 # date "+%y%m%d%H%M%s"
                                 年月日时分秒
      时间回到7天前     # date -d '7 day ago' '+%y%m%d%H%M%s'
  8、如果命令丢失,需要安装:
      # which man 查找路径
      # rpm -qf /usr/bin/man 查找安装

4、shell控制语句

   #!/bin/bash 
       其中的‘#!’是固定写法,
       /bin/bash 声明的是它的环境
       一般脚本的后缀不一定非要加上 .sh 但最好加上
       脚本的核心内容其实就是一堆命令的集合

简单的脚本示例:

Linux基础命令(三)_第11张图片

执行后:

image_1akv5k54k1krr1jio1svt10v8o6g3a.png-6.5kB

注意: 执行脚本需要有x执行权限

 4.1 for循环

示例:
Linux基础命令(三)_第12张图片
执行结果:
Linux基础命令(三)_第13张图片

循环打印1-50
Linux基础命令(三)_第14张图片

创建50个目录
Linux基础命令(三)_第15张图片
执行结果
Linux基础命令(三)_第16张图片

输出自然数1到10的和
Linux基础命令(三)_第17张图片
或者
Linux基础命令(三)_第18张图片

输出九九乘法表
Linux基础命令(三)_第19张图片
执行效果
Linux基础命令(三)_第20张图片

你可能感兴趣的:(linux)