Linux就该这么学--第四章

  • Vim文本编辑器

    Vim是Vi的升级版,升级的功能之一为颜色标注

    • 三种模式:
    ◇ 命令模式(进入编辑器时的模式):控制光标移动,复制粘贴删除查找
    ◇ 输入模式(命令模式通过a、i、o键进入,通过esc回到命令模式):正常的文本录入
    ? a :光标后面位置进入
    ? i :光标当前位置进入
    ? o:光标的下面再创建一个空行
    ◇ 末行模式(命令模式通过:进入,通过esc回到命令模式):保存或退出文档,以及设置编辑环境

    • 常用命令:
    ◇ dd 删除(剪切)光标所在行
    ◇ 5dd 删除(剪切)从光标处开始的5行
    ◇ yy 复制光标所在整行
    ◇ 5yy 复制从光标开始的5行
    ◇ u 撤销上一步的操作
    ◇ p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面
    ◇ n 显示搜索命令定位到的下一个字符串
    ◇ N 显示搜索命令定位到的上一个字符串
    ◇ 在命令模式下,首先执行gg,这里是跳至文件首行,再执行:dG
    ◇ 末行模式可用命令:
    ? :w 保存
    ? :q 退出
    ? :q! 强制退出(放弃修改)
    ? :wq! 强制保存退出
    ? :set nu 显示行号
    ? :set nonu 不显示行号
    ? :命令 执行该命令
    ? :整数 跳转到该行
    ? s/one/two 将当前光标所在行的第一个one替换成two
    ? s/one/two/g 将当前光标所在行的所有one替换成two
    ? %s/one/two/g 将全文中所有one替换成two
    ? ?字符串 从文本中从下至上搜索字符串
    ? /字符串 从文本中从上至下搜索字符串

  • 配置主机名、网卡、yum源

    • 配置主机名称:
    ◇ 修改文件/etc/hostname,然后重启

    • 配置网卡信息:
    ◇ 文件位置:
    ? /etc/sysconfig/network-scripts/ifcfg-*
    ◇ 网卡配置文件中的共同参数:
    ? 设备类型:TYPE=Ethernet
    ? 地址分配模式:BOOTPROTO=static
    ? 网卡名称:NAME=eno1
    ? 是否开机启动:ONBOOT=yes
    ? IP地址:IPADDR=192.168.10.10
    ? 子网掩码:NATMASK=255.255.255.0
    ? 网关地址:GATEWAY=192.168.10.1
    ? DNS地址:DNS1=192.168.10.1
    ? MAC地址:HWADDR=00:0c:29:44:7F:DC (可以通过ifconfig或者ip addr命令查看 此选项可以换成uuid)

    • 配置yum源
    ◇ 文件位置:
    ? /etc/yum.repo.d/*.repo
    ◇ 参数说明:
    ? [rhel-medir]:yum源软件仓库唯一标识符,防止与其他库冲突
    ? name=linuxprobe:yum源软件仓库的名称描述,易于识别仓库用处
    ? baseurl=file:///*** (or ftp://*** or http://***):仓库提供的方式,注意:文件方式里面有三个///
    ? enabled=1:yum源是否可用,1可用,0不可用
    ? gpgcheck=1:设置此源是否需要校验文件,1需要,0不需要
    ? gpgkey=file:///*** (or ftp://*** or http://***):校验文件位置
    ◇ 后续操作:
    ? (本地源) yum clean all && yum makecache
    ? (网络源)
    - yum clean all
    - yum makecache
    - yum install httpd -y(尝试安装一下,看看好不好使)

  • 编写shell脚本

    • 脚本声明:
    ◇ #!/bin/bash:使用哪种shell解析器执行该脚本

    • 逻辑运算结果,符合为0,不符合为1
    ◇ 例如:[ $USER = root ],当前登录用户为root,则结果为0,否则为1。
    ◇ 如果想要当前登录用户为root时,输出为1,则需要非一下 [ ! $USER = root ]
    ◇ shell终端中的与、或、非
    ? 命令1 && 命令2 命令1成功执行后才会执行命令2
    ? 命令1 || 命令2 命令1执行失败后才会执行命令2
    ? ! 命令 将命令的结果取反

    • 文件测试所用参数(使用方法[ -d /etc/fstab ])
    ◇ -d 是否为目录
    ◇ -e 文件是否存在
    ◇ -f 是否为一般文件
    ◇ -r 当前用户是否有权限读取
    ◇ -w 当前用户是否有权限写入
    ◇ -x 当前用户是否有权限执行
    ◇ -z 测试变量是否被用过,例如[ -z $LANG ],如果返回1,则已经用过,0则代表这个变量没用过
    ◇ 补充:
    $? 可以获取上条指令的返回值,若要显示在终端上,可以使用echo $?
    $0 文件名称
    $# 参数个数
    $* 参数分别是什么

    • 可用的整数比较运算符:
    ◇ -eq 等于
    ◇ -ne 不等于
    ◇ -gt 大于
    ◇ -lt 小于
    ◇ -le 小于等于
    ◇ -ge 大于等于

    • 常见的字符串比较运算符:
    ◇ = 比较字符串是否相同
    ◇ != 比较字符串是否不同
    ◇ -z 判断字符串是否为空

    • 流控制语句
    ◇ if条件测试语句(then单独一行,那么if后不加分号;then和命令序列同行,也不需要加分号)
    ? 模式一:
    - if 条件测试操作;then
    命令序列
    fi
    ? 模式二
    - if 条件测试操作;then
    命令序列1
    else
    命令序列2
    fi
    ? 模式三
    - if 条件测试操作1;then
    命令序列1
    elif 条件测试操作2;then
    命令序列2
    else
    命令序列3
    fi

    ◇ for条件循环语句
    ? for 变量名 in 取值列表
    do
    命令序列
    done

    ◇ while条件循环语句
    ? while 条件测试操作
    do
    命令序列
    done

    ◇ case条件测试语句
    ? case 变量值 in
    模式1)
    命令序列1
    ;;
    模式2)
    命令序列2
    ;;
    ......
    *)
    默认命令序列
    esac

    • 命令补充
    ◇ ping [参数] [IP地址]:测试网络是否联通
    ? 参数:
    - -c 尝试次数
    - -i 每个数据包的发送间隔
    - -W 定义等待超时时间

    ◇ read [参数] [变量]:获取用户输入
    ? 参数:
    - -p 要显示的文字
    - -t 设置等待输入的秒数
    - -s 隐藏方式读取(输入密码是使用)
    ? 例子:
    - 基本读取
    → echo -n "Enter your name: "
    read name
    #生成提示的echo命令使用了-n选项。该选项不会在字符串末尾输出换行符,允许脚本用户紧跟其后输入数据,而不是下一行。这让脚本看起来更像表单。
    → read -p "Please enter your age: " age
    → read -p "Enter your name: " first last
    输入:Enter your name: Rich Blum
    #read命令会将提示符后输入的所有数据分配给单个变量,要么你就指定多个变量。输入的每个数据值都会分配给变量列表中的下一个变量。如果变量数量不够,剩下的数据就全部分配给最后一个变量。
    - 超时
    → read -t 5 -p "Please enter your name: " name
    - 隐藏
    → read -s -p "Enter your password: " pass
    - 读取文本
    → cat test.txt | while read line

    ◇ let 算数运算 :执行一个算数运算并将结果赋予一个变量

  • 计划任务

    • 一次性计划任务
    ◇ 命令:
    ? at 时间:交互式设置一次性任务
    如果不想使用交互式,可以使用管道符进行参数传递,例如:
    echo “systemctl restart httpd” | at 23:30
    ? at -l:查看已经设置好但是还未执行的任务
    ? atrm 任务序列号:删除一次性任务

    • 周期性计划任务
    ◇ 命令:
    ? crontab -e 创建或编辑计划任务
    ? crontab -l 查看当前计划任务
    ? crontab -r 删除某条计划任务(全部删除)
    ? crontab -u 用户名 编辑其他用户任务(如何使用????)
    ? 格式:
    - 分 时 日 月 星期 命令
    ? 配置文件:
    - /etc/crontab
    /var/spool/cron/“username”
    ? 注意事项:
    - 使用,来分别表示多个时间段(8,10,12),使用-来表示一段连续的时间(8-12),使用/表示执行任务间隔(*/2)
    - “分”字段必须有数值,绝对不能为空或者*;“日”和“星期”字段不能同时使用,否则会发生冲突
    - 手动执行成功而crontab不能执行的时候,是执行环境的问题,例如相关路径的设置问题。
    解决方案:在代码最前面执行 source /home/user/.bash_profile
    - 脚本中涉及文件路径时写全局路径
    - 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
    cat start_cbp.sh
    #!/bin/sh
    source /etc/profile
    export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
    /usr/local/jboss-4.0.5/bin/run.sh -c mev &
    - 在crontab中%是有特殊含义的,表示换行的意思。
    如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’。

    ? 执行环境配置:
    - 参数
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    - 解释
    SHELL变量指定了系统要使用哪个shell
    PATH变量指定了系统执行命令的路径,即使用哪些环境变量
    MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户
    HOME变量指定了在执行命令或者脚本时使用的主目录

原文地址:https://www.cnblogs.com/JYLCSS/p/10545005.html

时间: 2024-10-31 23:31:51

Linux就该这么学--第四章的相关文章

Linux读书笔记第三、四章

第三章 主要内容: 进程和线程 进程的生命周期 进程的创建 进程的终止 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的. Linux中的进程于Windows相比是很轻量级的,而且不严格区分进程和线程,线程不过是一种特殊的进程. 所以下面只讨论进程,只有当线程与进程存在不一样的地方时才提一下线程. 进程提供2种虚拟机制:虚拟处理器和虚拟内存 每个进程有独立的虚拟处理器和虚拟内存, 每个线程有独立的虚拟处理器,同一个进程内的线

Linux知识要点大全(第四章)

第四章 文件管理 *主要内容 文件和目录的操作: ①创建 ②删除 ③拷贝 ④重命名(剪切) ⑤查看 一:目录的操作 回顾与目录相关的命令 ls  查看目录中的内容 .pwd 打印当前目录   .cd  切换目录1.创建目录 mkdir  [-选项]  [参数] -p 级联创建,在父目录不存在的情况下,先创建父目录,再创建子目录. 例:mkdir -p dou1/dou11/dou111/ -v 显示创建过程. 2.删除目录 rmdir    删除空目录 例:rmdir  dou2 rm  –r或

linux就该这么学-第四天

3.1 输入输出重定向 既然我们已经在上一章学完了几乎所有基础且常用的Linux命令,那么接下来的任务就是把多个Linux命令适当地组合到一起,使其协同工作,以便我们更加高效地处理数据.要做到这一点,就必须搞明白命令的输入重定向和输出重定向的原理. 简而言之,输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中.在日常的学习和工作中,相较于输入重定向,我们使用输出重定向的频率更高,所以又将输出重定向分为了标准输出重定向和错误输出重定向两种不同的技术,以

Linux就该这么学 20181002(第二章基础命令)

参考链接https://www.linuxprobe.com/ 忘记密码操作 启动页面 默认按e 在linux16行后空格 rd.break ctrl + x mount -o remount,rw /sysroot chroot /sysroot passwd touch /.autorelabel exit reboot 第一章 20181002 echo man date "+%Y+%m+%d %H:%M:%S" date -s "20181002 21:42:00&q

快学Scala-第四章 映射和元组

知识点: 1.构造映射,映射是对偶的集合 val scores1 = Map("Alice" -> 10, "Bob" -> 7, "Cindy" -> 9) //不可变映射 // val scores1 = Map(("Alice",),("Bob",),("Cindy",)) val scores2 = scala.collection.mutable.Map(&q

《Linux系统编程》笔记 第四章(三)

系列文章目录:http://blog.csdn.net/wylblq/article/details/51841684 4.3 存储映射 POSIX提供了相关调用,能使我们将文件映射到内存中,借由此机制我们可以方便的从内存中读取文件数据,也可以修改内存中的数据来改变文件内容,或实现父子进程间通信. 4.3.1 mmap() #include <sys/mman.h> void *mmap(void *addr, size_t length, int prot, int flags, int f

《Linux内核分析》之第四章读书笔记

4.1多任务 多任务操作系统:同时并发地交互执行多个进程的操作系统 多任务操作系统会使多个进程处于堵塞或者睡眠状态.这些任务尽管位于内存,但是并不处于可运行状态.这些进程利用内核堵塞自己,直到某一事件发生. 多任务系统可以划分为两类:非抢占式和抢占式. 抢占:强制挂起. 时间片:分配给每个可运行进程的处理器时间段. 4.2 linux的进程调度 4.3策略 策略决定调度程序在何时让什么程序运行. 4.3.1I/O消耗型和处理器消耗型的进程 I/O消耗型:进程的大部分时间用来提交I/O请求或是等待

《Linux Device Drivers》第十四章 Linux 设备模型

简介 2.6内核的设备模型提供一个对系统结构的一般性抽象描述,用以支持多种不同的任务 电源管理和系统关机 与用户空间通信 热插拔设备 设备类型 对象生命周期 kobject.kset和子系统 kobject是组成设备模型的基本结构 对象的引用计数 sysfs表述 数据结构关联 热插拔事件处理 kobject基础知识 <linux/kobject.h> 嵌入的kobject 内核代码很少去创建一个单独的kobject对象,kobject用于控制对大型域相关对象的访问 kobject的初始化 首先

《Linux就该这么学》第二章新手必须掌握的linux命令(2019.01.06)

SHELL(壳) SHELL(壳)充当人与内核的翻译官.默认终端Bash(Bourne-Again SHell)解析器. 命令名称 [命令参数] [命令对象] 长格式 man --help 短格式 man -h 1.man 执行查看命令 2.echo 例:#echo Linuxprobe.Com    注:把Linuxprobe.Com输出到屏幕. #echo $SHELL    注:把$SHELL变量的值,输出到屏幕. 3.date date 显示及设置系统时间. date [选项] [+指定