1、Linux和shell编程学习总结

### 1、Linux

#### 1.1、文件或目录操作常用命令

​    cd:切换目录

​    vi/vim文本编辑器

​    ls:列出目录内容

​        -a:查看全部文件

​        -l:列出文件详细信息

​    mkdir:创建目录 

​        -p:创建多级目录

​    rmdir删除空目录

​    rm -rf  递归删除目录,或文件,-r表示递归删除-f表示不用询问直接删除

​    touch:创建文件

​    cp 复制文件或目录

​        -r:表示递归复制

​    mv:移动文件,也可以用于重命名

​    cat、tac倒叙查看、more、less、head、tail都是查看文件内容

​        tail -f表示监控文件更新,常用于flume采集数据使用

​        head -n 表示查看前n行

​    > :覆盖写  >>追加写     

​    ln -s [原文件] [目标文件] 给源文件创建一个软连接放在 目标文件目录

​    date:显示当前日期  -s表示设置日期

​    cal查看日历

#### 1.2、用户管理命令

​    useradd 用户名:添加用户

​    passwd 用户名:设置密码

​    id 用户名:判断用户是否存在

​    su 用户名:切换用户

​    userdel 用户名:删除用户  userdel -r 用户名:删除用户和其家目录

​    sudo :普通用户配置sudo后,在操作前加sudo可以拥有管理员的权限

​    usermod:

​        usermod -g 用户组 用户名:将用户加入用户组中,使其具有某个用户组的权限

​    chmod [-R]  777 文件名/目录:给予某个文件或目录所有权限 -R表示递归

​    chown  [-R] 用户名  文件名 :更改当前文件或目录所有者 -R表示递归更改

​    chgrp  [-R] 用户组 文件名:更改文件所属组

#### 1.3、磁盘分区类

​    df查看磁盘使用量

​        -a:列出所有

​        -h:以人类容易理解的方式显示

​    Du 查看目录空间占用

​        -s:汇总展示

​        -h:以人类容易理解的方式显示

#### 1.4、常用命令

​    find:查找命令

​    grep:过滤常和“|”管道符连用,跟在管道符后,对管道里面的内容进行过滤

​        -e 或的关系匹配用于链接过滤条件

​        -i 不区分大小写

​        -v 取反,取得不符合当前条件的内容    

​    ps -aux或者ps -ef查看所有进程

​    top查看系统进程  执行top命令后可以选择【P】按照cpu使用率排序   【M】按照内存使用量排序 

​        【R】切换升序或降序

​        -d n :每n秒更新一次系统进程情况

​    kill -9 pid进程号:强制杀死进程

​    netstat -anp :显示当前进程网络使用情况

#### 1.5文件压缩和解压缩

​    gzip/gunzip

​        gzip+文件 压缩

​        gunzip+文件.gz 解压缩文件

​        特点:只能压缩文件不能压缩目录,压缩不保留源文件

​    zip/unzip

​        zip [-r]  压缩后文件名.zip  要压缩的文件

​        unzip 压缩文件名.zip [-d 目录] :-d表示解压到指定目录

​    tar打包

​        tar -zcvf 打包后文件名 要打包的内容

​        tar -zxvf  文件包 【-C 目录】:-C表示解压到指定目录

#### 1.6、后台服务管理

​    service 后台服务管理

​        service 服务名 status/stop/start 进行服务状态查看,或停止或启动

​    chkconfig设置后台服务的自启配置

​        chkconfig 服务名 off/on :关闭服务自启或者开启服务自启

#### 1.7 、crond定时任务

​    crond -e 编辑定时任务

​         进入编辑页面,编写定时任务:

​        * * * * * 任务  

​        第一个*代表一个小时的第几分钟 0-59

​        第二个*代表一天的第几小时0-23

​        第一个*代表一个月的第几天 1-31

​        第一个*代表一年的第几月 1-12

​        第一个*代表一周的星期几 0-7 (0和7都代表周日)

#### 1.8、软件安装命令

​    rpm从本地安装

​        rpm -qa 查询所有安装的rpm软件包

​        rpm -e 安装包 :卸载rpm安装包

​        rpm -ivh 安装包:安装rpm软件包

​    yum网络安装

​        yum install 【-y 】软件名 :-y表示确认安装 特点:会自动安装当前软件所需依赖

### 2、shell编程

​    2.1、echo 输出内容到控制台

​    2.2、脚本格式

​           脚本以  #!/bin/bash   开头,指定用bash来解释我们编写的shell脚本。

​           脚本必须有可执行权限

​    2.3、常用执行方式

​        有可执行权限的直接 在文件路径下输入文件名回车执行

​        没有可执行权限的通过在文件路径下 输入 sh 文件名 回车执行

​    2.4、变量定义时等号两侧不能有空格

​    2.5、··反引号或者$()表示引用 可以将其包含的结果返回给变量

​    2.6、export 变量名=变量值 设置环境变量

​    2.7、脚本中位置参数

​        $n    (功能描述:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数,十以上的        参数需要用大括号包含,如${10}。)

​                 $*    (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)

​             $@   (功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)

​                 $#    (功能描述:这个变量代表命令行中所有参数的个数)    

​    2.8、运算规则

​        $((运算式))或则$[运算式]

​    2.9、条件判断

​        [ 条件语句 ] 前后要有空格

​        常用条件语句:

​            = 字符串比较

​        整数比较:

​            -lt 小于 less than

​            -le 小于等于 

​            -eq 等于   equal

​            -gt 大于great than

​            -ge 大于等于 greant than equal

​            -ne 不等于not equal

​        权限判断:

​            -r 有读的权限

​            -w 有写的权限

​            -x 有执行的权限

​            eq:判断student.txt是否具有写权限断[-w student.txt ]:

​        文件类型判断:

​            -f 文件存在并且是一个常规的文件

​            -e 文件存在

​            -d 文件存在并是一个目录    

​            eq: 判断/root/install.log目录中的文件是否存在断

​             [ -e/root/install.log ] 

2.10、流程控制语句

##### ​    if条件:

​    if 条件

​    then 操作

​    elif 条件

​    then 操作

​    fi

##### ​    case语句:

​    case $变量名 in

​        "值1")

​        操作1;;

​        "值2")

​        操作2;;

​        *)

​        上面全没匹配到执行此操作;;

​    esac

##### ​    for循环:

​        格式一:

​            for 变量 in 值1 值2 值3…

​            do

​                程序

​            done

​        格式二:

​            for (( 初始值;循环控制条件;变量变化 )) 

              do 

​                    程序 

              done

##### ​    while循环:

​        while [ 条件判断式 ] 

          do 

​            程序 

          done

2.11、从控制台读入数据

​    read(选项)(参数)

​         选项:

​        -p:指定读取值时的提示符

​        -t:指定读取值时等待的时间(秒)

​    参数         

​             变量:指定读取值的变量名

2.12、自定义函数

​    格式:

​    [ function ] funname[()]

​    {

​             Action;

​             [return int;]

​    }

​         Funname

### 3、文本处理工具

3.1、cut 不会改变源文件

​    cut [选项参数] filename  **等同于 split**

​        -f  列号,提取第几列

​        -d  分隔符,按照指定分隔符分割列 默认为空格

​        eq: cut -d: -f1 student.txt  

​        -b  按照字符分割

​        eq:切割每一行第 1-5 个字符:cut -b 1-5 cut.txt

3. 2 sed

   ​    sed [选项参数]  '操作逻辑'  filename    

   ​    参数:-i表示修改文件内容 不加则输出到控制台源文件不修改

   ​    操作用于组合成操作逻辑:

   ​        a\表示新增,前面加【行号】后面加【内容】表示在某行后加入内容

   ​        d表示删除:前面加【内容】表示删除所有包含该内容的行 sed -i '/h/d'test.txt

   ​        s表示替换    sed -i 's/h/H/g' test.txt 表示将所有h替换为H g表示全局  /是区分符号

   3.3、awk

   ​    awk -F :  ` 逻辑 ` 文件名   -F表示指定分隔符 

​            

​        

​    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值