ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux高级用法——走向编写脚本

2021-10-04 10:02:22  阅读:177  来源: 互联网

标签:文件 重定向 用法 gjj yum Linux 编写 root localhost


/root目录下的一些一些特殊的隐藏文件

  • anaconda-ks.cfg 系统安装时生成的文件,可用于批量安装相同系统(可删除)
  • .bash_history 记录上次会话开始到会话结束的历史记录(每次追加)
  • .bash_profile 记录整个系统内的环境变量(改完需要source生效)
  • .bashrc 记录命令别名的其中一个文件(改完需要source生效)

一些特殊功能的符号

符号名称作用
竖线管道用前面一个命令的执行结果做后面命令的参数
>输出重定向不提示覆盖文件内容
>>输出追加重定向在文件末追加文件内容
<输入重定向将文件的内容作为输入的参数
2>错误重定向将文件执行的错误信息重定向到文件
2>>错误追加重定向将文件执行的错误信息以追加的方式重定向到文件
2>&1标准错误合并重定向将标准输出和错误输出一起重定向到同一个文件(需要先将标准输出输出到文件)
<< EOF…EOFHere Document
重定向
将两个相同标识符EOF中的字符串输入重定向到命令
/dev/null空文件所有重定向到此文件的内容都将被抛弃
  • command < infile > outfile 先将infile输入重定向再将命令执行结果输出重定向到outfile
  • command > file 2>&1 或 command >> file 2>&1 将标准输出和错误输出一起重定向到同一个文件
  • command > /dev/null 不希望看到结果
  • command > /dev/null 2>&1 禁止输出

显示表格的素材

vi table.py

def dump(data):
    rows = 0
    all_string = ''
    length = [0] * len(data[0])
    for row in data:
        if rows < len(row):
            rows = len(row)
        for col in range(len(row)):
            for r in str(row[col]).split('\n'):
                if length[col] < len(r):
                    length[col] = len(r)
    string = '|'
    temp = ''
    for l in range(len(length)):
        temp += '+' + '-' * (length[l] + 2)
        string += '{: ^' + str(length[l] + 2) + '}|'
    all_string += temp + '+\n'
    for row in data:
        all_string += string.format(*row) + '\n' + temp + '+\n'
    return all_string.strip('\n')
d = [
    ['name', 'sex', 'age'],
    ['gaojunji', 'boy', '21'],
    ['caimingli', 'girl', '20'],
    ['taojian', 'boy', '20']
]
print(dump(d))

未分类的命令

[root@localhost ~] hostnamectl set-hostname hostname  # 将主机名设置成hostname
[root@localhost ~] hostname  # 查看当前主机名
[root@localhost ~] echo "127.0.0.1 hostname" >> /etc/hosts  # 在文件的最后一行写入
[root@localhost ~] ping -c2 hostname  # ping测试hostname主机名2次:检测网络互通或主机名映射正确
[root@localhost ~] ssh hostname  # 连接hostname主机
[root@localhost ~] export gjj=superman  # 设置环境变量gjj
[root@localhost ~] set | tail -1  # 查看最新设置的变量gjj
[root@localhost ~] echo $gjj  # 显示变量gjj
[root@localhost ~] unset gjj  # 取消变量gjj
[root@localhost ~] echo "gjj=superman" > rc  # 创建变量文件
[root@localhost ~] source rc  # 使rc文件中的环境变量生效
[root@localhost ~] sed -i -e "s/.*=/gaojunji=/g" -e "s/=.*/=gjj/g" rc  # 将=左边替换成gaojunji,将=右边替换成gjj【说明:-i写入文件 -e表示一个替换动作】
[root@localhost ~] ip a | grep -v "127.0.0.1" | grep -oP '(?<=inet ).*?(?=/)'  # 获取本机外网IP地址【说明:-v排除不想要的结果 -o表示仅显示匹配部分 -P表示用Perl表达式】
[root@localhost ~] ip a | grep -v "127.0.0.1" | grep "inet .*/" -B 2 -A 0 | grep -oP 'ens.*(?=:)'  # 获取本机外网IP网卡【说明:-B打印匹配行向前的行数 -A打印匹配行向后的行数】
[root@localhost ~] python table.py | tr '+' '|' | cut -d '|' -f 3  # 获取表格第二列(tr是替换文本的命令)
[root@localhost ~] python table.py | sed 's/+/|/g' | cut -d '|' -f 3  # 获取表格第二列(通用替换,将+换成|为了整齐好看)
[root@localhost ~] python table.py | awk -F '|' '{if(NR%2==0)print$3}'  # 获取表格第二列(不带表格线版)
[root@localhost ~] python table.py | awk -F '[+|]' '{if(NR%2==1){print"+"$3"+"}else if(NR%2==0){print"|"$3"|"}}'  # 打印带表格线的第二列(分隔符参数可以接收列表)
[root@localhost ~] systemctl start firewalld  # 启动防火墙
[root@localhost ~] systemctl stop firewalld  # 停止防火墙
[root@localhost ~] systemctl restart firewalld  #重启防火墙
[root@localhost ~] systemctl enable firewalld  # 防火墙开机自启
[root@localhost ~] systemctl disable firewalld  # 防火墙不开机自启
[root@localhost ~] systemctl status firewalld  # 查看防火墙状态
[root@localhost ~] history  # 查看历史记录
[root@localhost ~] !2  # 执行历史记录中第一条命令
[root@localhost ~] history -c  # 删除历史记录(完全删除还需清空.bash_history文件内容)

在这里插入图片描述

配置yum源(在线国内镜像源wget http://mirrors.163.com/.help/CentOS7-Base-163.repo && mv CentOS6-Base-163.repo /opt/CentOS-Base.repo

  • yum源的存放路径:/etc/yum.repos.d/
  • yum源的后缀:.repo
  • yum源格式
[name]  # 标签
name=name  #yum源名
baseurl=path  # 资源路径
enabled=1  # 启用yum源
gpgcheck=0  # 禁用gpg检查
  • 比赛时是离线环境,需要先把原有的repo文件移走或删除
  • 清除yum缓存 yum clean all
  • 生成yum缓存 yum makecache
  • 检测repo数量 yum repolist
  • 查看所有yum源 yum list
  • 查找和mdadm有关软件包 yum search mdadm
  • 安装软件 yum -y install libreport-filesystem mdadm
  • 卸载软件 yum -y remove libreport-filesystem mdadm
  • 更新软件 yum -y update libreport-filesystem mdadm
  • 更新所有软件 yum update
  • 列出所有已安装的软件包 yum list installed

标签:文件,重定向,用法,gjj,yum,Linux,编写,root,localhost
来源: https://blog.csdn.net/user_from_future/article/details/120593181

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有