shell命令基本知识点

命令历史

# cat /root/.bash_history       //存放历史命令的地方

# history      //查看命令历史的条数

# echo $HISTSIZE       //查看可以保存的条数

# vim /etc/profile       //改变变量HISTSIZE的值 “/HISTSIZE” 去搜索

# source /etc/profile       //这样才能使我们刚刚修改的值生效

# vim /etc/profile →在HISTSIZE下增加 HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S “ 改变输出历史的格式,例如: 923 2017/06/28 17:56:42 source /etc/profile 包括什么时间输入的都可以显示!!!

# chattr +a ~/.bash_history       //永久保存输入的历史(a权限,只允许增加,不允许删除)

# !!       //执行上一条命令

#!761       //查找命令第761条命令,在命令历史中!

命令补全

参数补全,安装bash-completion

自定义经常使用的命令,来提高效率:例如:

# alias resnet=’systemctl restart network.service‘             //但是这样仅仅是保存在内存当中,我们要是需要长久使用,就要写在配置文件中,家目录下的 # .bashrc

通配符

# ls *.txt        //查看所有以.txt结尾的文件

# ls 1*         //查看以1开头的所有文件

# ls ?.txt            //一个字符且.txt的文件

# ls ??.txt          //两个字符且.txt的文件

# ls [0-3].txt         //包含0.txt 1.txt 2.txt 3.txt

# ls [123].txt         //包含1.txt 2.txt 3.txt

输入输出重定向

“>”     //重定向                   “>>”     //追加内容

# cat 12.txt > 22.txt                 //查看12.txt的内容并重定向到22.txt

# cat 12.txt >> 22.txt                    //查看12.txt的内容并追加(之前的内容不删除)到22.txt

“2>”               //错误重定向                        “2>>”                   //错误追加重定向

后期写shell脚本的时候会经常用到的一个命令:

# ls [12].txt txzzz.txt(没有这个文件) >1.txt  2>b.txt              //把正确的输出,输出到1.txt,错误的输出输出到b.txt

管道符、作业控制

管道符:把一个命令结果的输出传递到后面一个命令;

# cat 1.txt |wc -l ;             //查看1.txt 的内容 并交给后面查看有多少行 输出~

# cat 1.txt |grep ‘aaa’                   //查看1.txt 的内容 并交给后面grep 查找 aaa

# find ./ -type f | wc -l                     //查看当前目录下有多少个文件,然后统计输出

案例:假如现在正在配置IP地址,当你进入vim之后,发现忘记IP地址了,然后使用“ctrl+z”去临时返回到命令行,fg 返回到任务,也许有时候,后台任务比较多,可以使用 jobs 来查看,然后恢复某个任务使用 fg+id ,或者把某个任务放到后台去继续执行 bg+id,一次性的把一个命令放到后台去执行,# sleep 1000 & ,可以用jobs去查看。

系统内置变量

# env             //查看系统变量

# set             //查看系统自设的变量+用户设置的变量

自定义变量:

# zhdy=winner            //设置自定义的变量

# set | grep zhdy              //查询自定义变量中的zhdy

# unset zhdy               //取消自定义的变量

# 变量名规则:字母、数字下划线,首位不能为数字

# 变量值有特殊符号时需要用单引号括起来

# a=’a$bc’ → # echo $a → # a$bc

# a=1;b=2 → #echo $a$b → # 12

# echo $SSH_TTY               //查看自己在哪个TTY下面

#export zhdy=linux           //制作一个全局的环境变量,

环境变量配置文件

系统层次的环境变量(千万别去更改,除非特殊要求):

• /etc/profile 用户环境变量,交互登录才执行

• /etc/bashrc 用户不用登录,执行shell就生效

用户层次的环境变量(仅限于当前用户):

• ~/.bashrc //自定义一些别名alias

• ~/.bash_profile //自定义一些变量。例:HISTSIZE=2000

• ~/.bash_history //自定义历史相关配置

• ~/.bash_logout //自定义退出后所执行的动作

profile:用户登录的时候会使用到

bash:系统或者用户执行一些shell

[root@zhdy-02 ~]# echo $PS1            //输出左边的一个格式

[\u@\h \W]\$

[[email protected] ~]# PS1='[\[email protected]\h \w]\$’                  //更改格式为绝对路径

[[email protected] ~]#cd /etc/sysconfig/network-scripts/

[[email protected] /etc/sysconfig/network-scripts]#           //已经显示为绝对路径了!!!

# PS1=’\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ ‘          //带颜色的格式

当然这只是暂存在内存中,要是想要永久修改,一定要进入 # vim /etc/bashrc 去修改!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏容器云生态

根据红帽RHEL7官方文档对centos7进行技术剖析(一)

序言:红帽7教学环境介绍 rht-vmctl命令介绍; $ rht-vmctl start desktop     启动desktop虚拟机 $ rht-vmc...

3116
来自专栏小程序之家

如何实现小程序与服务器通信

网络请求方式较多,大家可以参考如何在小程序中实现文件上传下载和如何在小程序中实现 WebSocket 通信实现更多与服务器请求。

1.9K5
来自专栏码匠的流水账

java9系列(三)模块系统精要

如果A依赖B,B依赖C,B方法返回的类型是C中的类型,那么需要A也可以使用C,则需要在A中声明依赖C。不过这样子非常费劲,所以java9内置了个transiti...

1462
来自专栏hbbliyong

git各种命令介绍以及碰到的各种坑

一.各种命令介绍:  git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master'就...

3668
来自专栏我的博客

Python上传文件到FTP服务器

代码在python2.7下测试通过!写在最前面! # -*- coding: UTF-8 -*- from ftplib import FTP import o...

7236
来自专栏我的博客

Sed详解

1、说明 sed 一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令...

32110
来自专栏木头编程 - moTzxx

rsync error(1503)分析:@ERROR: auth failed on module xxxx rsync error: error starting client-server

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

992
来自专栏Laoqi's Linux运维专列

Linux防火墙-firewall

Firewall : 由于centOS 7采用了新的firewall防火墙,也是未来的一种趋势,所以咱们在7上面既可以使用6也可以使用7。 由于iptables...

6555
来自专栏北京马哥教育

243张图片为你解析Linux轻量级自动运维化工具Ansible

Ansible 是什么 ansible架构图 ansible特性 模块化:调用特定的模块,完成特定的任务; 基于Python语言研发,由Paramiko...

3786
来自专栏吴柯的运维笔记

Sed编辑器入门基础用法手册

简介 Sed(Stream Editor)是一款流编辑工具,可以实现对文本进行过滤和替换操作,在批量修改文件时简便一些。 -非交互 -逐行处理(一次读取一行...

2876

扫码关注云+社区

领取腾讯云代金券