Linux学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习相关的知识,希望对你有一定的参考价值。

前言:接着Linux学习(二)vim文本编辑器说

vim 文本编辑器

         u     撤销最近的更改
         /*     撤销之前多次更改
         U?    撤消光标落在这行后所有此行的更改
         按ctrl?+ r    重做最后的“撤消”更改
         .      重复前一个操作
         n.    重复前一个操作n次
         退出模式下
                 e!   直接还原到文件最初打开状态

         v    面向字符选中
         V    面向行选中
         ctrl + v     面向块选中

        配置文件:永久有效
        全局: /etc/vimrc
        个人: ~/.vimrc

        扩展模式:当前vim进程有效
                    set nu   显示行号
                    set ic    忽略大小写

四,shell脚本编程基础

1.shell脚本基础

         格式要求:首行shabang机制
                     "#!/bin/bash"
                     "#!/usr/bin/python"
                     "#!/usr/bin/perl"

2.创建shell脚本

使用文本编辑器(例如vim)创建文本文件
          第一行必须包括shell声明序列: "#!"
                        例如:"#!/bin/bash"
          添加注释
                         注释以 "#" 开头

 shell脚本示例

技术分享图片


 脚本调试
           检测脚本中的语法错误       
                     bash -n
           调试执行
                   bash -x

3.本地变量

变量赋值: name=‘value’
    可以使用引用value:
            (1) 可以是直接字串:name= "root"
            (2) 变量引用: name="$USER"
            (3) 命令引用: name=`COMMAND`  name=$(COMMAND)

 变量引用: ${name} $name
      "":弱引用,其中的变量引用会被替换为变量值
    ‘‘:强引用,其中的变量引用不会被替换为变量值,而保持原字符串

4.退出状态

进程使用退出状态来报告成功或失败
     0 代表成功, 1-255代表失败
     $? 变量保存最近的命令退出状态  (echo执行)

5.算数运算

实现算数运算
        var=$[ 算术表达式 ]
        var=$(( 算术表达式 ))
        echo ‘算术表达式’ | bc

?写脚本时的实用快捷键?
   ctrl + z 写脚本时可以保存到后台
?? fg 回到后台脚本
   bg 查看有多少后台
?? shift +^ 跳到行首
?? shift +$ 跳到行尾
?? :e! 直接恢复到文件最初的状态


6.逻辑运算

!  非,取反向结果( ! 加到前面,后面要有空格)

7.条件测试

 test 
 [ ]            
 [[ ]]

中括号里面前后必须有空白字符

 /usr/bin/[    相当于test
 man test  整理命令选项(解释很详尽,随时用随时查)

执行操作符
       &&    并且,同时为真为真     相当于‘ -a‘
         ||       或者,有一个假为假     相当于‘-o‘

     用于 [[ ]] 中


数值测试
       -gt     是否大于
       -ge    是否大于等于
       -eq    是否等于
       -ne    是否不等于
        -lt     是否小于        
        -le    是否小于等于

     前有空格后有空格


字符串测试
         ==     是否等于
        !=    是否不等于
         =~     左侧的字符串能否匹配右面的模式
         -z      字符串是否为空
         -n      字符串是否为不空

      字符串一般都需要用" " 引起来


文件测试
      文件存在性及类别测试
             -e FILE: 文件存在性测试,存在为真,否则为假
             -f FILE:是否存在且为普通文件
      文件权限测试:
             -r FILE:是否存在且可读
             -w FILE: 是否存在且可写
             -x FILE: 是否存在且可执行
       文件特殊权限测试:
             -u FILE:是否存在且拥有suid权限
             -g FILE:是否存在且拥有sgid权限
             -k FILE:是否存在且拥有sticky权限
       文件大小测试
             -s FILE: 是否存在且非空

8.read命令

read   接受输入
      -p       显示输入的内容
      -s       静默,不显示输入的内容
      -t N     控制输入时间
      -n N    控制输入字符的最大长度
      -d 字符     结束符

通常 -p 放最后


9.bash配置文件

全局配置
      /etc/profile
      /etc/profile.d/*.sh
      /etc/bashrc
个人配置
      ~/.bashrc
      ~/.bashrc_profile
profile 类 
        /etc/profile
        /etc/profile.d/*.sh
        ~/.bashrc_profile
    控制 :    环境变量  ; 运行命令或脚本
bashrc  类
        /etc/bashrc
        ~/.bashrc
     控制 :   命令别名和函数  ;  本地变量
修改配置文件生效方法
         重启shell进程
          . 或 source(后面接文件路径命,中间有空格)

10.俩种登录方式

交互式登录
          直接通过终端输入账号密码登录
          使用“su - UserName” 切换的用户
   执行顺序: /etc/profile  -->  /etc/profile.d/*.sh  --> ~/.bash_profile  -->  ~/.bashrc  -->  /etc/bashrc
 非交互式登录   可以继承
           su UserName
           图形界面下打开的终端
           执行脚本
           任何其它的bash实例
   执行顺序: ~/.bashrc  -->  /etc/bashrc  -->  /etc/profile.d/*.sh

额外可以了解可能会用到的
     -:普通文件
    d: 目录文件
     b: 块设备
     c: 字符设备
     l: 符号链接文件
     p: 管道文件pipe
     s: 套接字文件socket
     wall 发广播
     ping -W1 -c1 只执行一次,并且等待一秒
     stty -echo 敲命令不显示 不换行
     stty echo 解除

以上是关于Linux学习的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段01

[linux][c/c++]代码片段02

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?