学习shell的第一天
作用:查之前使用的命令
关于命令历史的文件
每个用户家目录下面的 .bash_history
在关机的时候,会自动写入一次 (history -a 将内存中的命令历史写入文件)
关于命令历史的变量(环境变量)
env //查看环境变量
set //常看更详细的环境变量参数
HISTSIZE=1000 数量
HISTCONTROL=ignoredups
Ignoredups 忽略重复的历史命令 -- 连续且相同,才叫重复
Ignorespace 忽略空白开头的历史命令,“键入空格开头则不会被记录”
Ignoreboth 两者都生效
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
查看命令历史
!# #表示数值,执行#行的命令
!string 匹配最近一次的字符串
!! 上一条命令
*!$* 上一条命令的最后的一个参数
ls /etc
ls !$
ESC+.
常见的选项:
-a
-d
-c
history # 显示最近 # 行的命令
tab
1、提示 2、自动补全
扩展:制表符 \t 四个空格键
tab
1、提示 2、自动补全
{ ,}
Linux的目录需要遵循什么规则? -- FHS目录规则
a 1
b 2
%F CCYY-mm-dd
%T hh:MM:ss
%D mm/dd/YY
%H hh
%M MM
%S ss
%Y CCYY
练习:通过for语句循环创建一个月的日志文件;.log 2019-08-6.http.log
touch `date +%F`.http.log
touch `date +%Y-%m-$i`.http.log
done
tar
压缩工具 1234lfjkfoajf3o2u34o2jlr lwjro32rlf1234e
1234=ax
【压缩 只能对文件进行操作,而不能对目录进行操作】
gzip
bzip2
xz
zcat //查看压缩文件且不解压
tar的常见参数:
tar 归档工具【可以对目录进行操作】
-j bzip2
-J xz
-z gzip
-c create
-x extract //可以不用指定解压的工具
-f 指定文件名
-v 显示详细信息 verbose
-t 不解压查看内容 和 zcat 一样
tar cjvf 2018-08.http.log.bz2 2018-08-*.http.log
tar xvf 2018-08.http.log.bz2 -C abc
crontab -e -- 20 2 * * * /root/xxx.sh
vim xxx.sh
#!/bin/bash
#
tar cJvf /var/`date +%F`.xz /etc/
chmod +x xxx.sh
补充:
clock / hwclock 常看硬件时钟 (如果同步系统时钟与硬件时钟)
cal 日历
在Linux中,每一条命令执行后都会有两个结果:
命令本身放回的内容
其次,命令执行的结果状态
0 表示成功状态(和Python正好相反)
1-255 表示失败状态
ctrl + l
ctrl + c
ctrl + u //删除光标前的字符
ctrl + k //删除光标后的字符
ctrl + a
ctrl + e
ctrl + w //以空格为分隔符,去删除文件
ctrl + r //进入一个交互界面,搜索最近一次使用的命令(要输入string)
系统启动时读取一些特殊文件的顺序;
alias
alias cdnet="cd /etc/sysconfig/network-scriptes" //这种方式定义alias只能在当前shell生效;
/etc/bashrc : 定义本地变量--alias(所有用户)
~/.bash_profile : 定义环境变量(指定用户)
~/.bashrc : 定义本地变量--alias(指定用户)
* 任意长度的任意字符
[] 指定范围内的任意一个字符
[^] 指定范围以外的任意一个字符
[0-9A-Za-z]
[0-9] [a-z] [A-Z] [a-zA-Z]
指定字符类:
[:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:],
[:punct:], [:space:], [:upper:], and [:xdigit:]
^[[:space:]]*$ //有空格键的空行(正则表达式)
1、显示/var目录下所有以1开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录;
ls /var/1*[0-9]*[a-z]
2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录
ls /etc/[0-9]*[^0-9]
3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
ls /etc/[^[:alpha:]][[:alpha:]]*
4、复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/test目录中;
cp -a /etc/m*[^0-9] /tmp/test
5、复制/etc目录下,所有以.d结尾的文件或目录至/tmp/test.com目录中
cp -a /etc/*.d$ /tmp/test.com
6、复制/etc目录下,所有.conf结尾,且以m n r p开头的文件或目录至/tmp/test.com目录中
cp -a /etc/[mnrp]*.conf /tmp/test.com
学习shell的第一天的更多相关文章
- 认真学习shell的第一天-数学运算
shell中的数学运算有三种方式: (1)let,用let的时候,变量名称前不用添加$ (2)[],[]中变量可使用也可不使用$ (3)(())变量名之前必须添加$
- 学习 shell脚本之前的基础知识
转载自:http://www.92csz.com/study/linux/12.htm 学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写sh ...
- 第十三章、学习 Shell Scripts
什么是 Shell scripts shell script (程序化脚本) :shell script 是针对 shell 所写的『脚本!』 shell script 是利用 shell 的功能所写 ...
- 菜鸟教程之学习Shell script笔记(上)
菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...
- 鸟哥的Linux私房菜——第十六章:学习Shell Scripts
视频链接:http://www.bilibili.com/video/av10565321/ 1. 什么是 Shell Script (shell写的脚本)1.1 干嘛学习 shell s ...
- 学习shell脚本之前的基础知识
日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位 ...
- (转)跟着老男孩一步步学习Shell高级编程实战
原文:http://oldboy.blog.51cto.com/2561410/1264627/ 跟着老男孩一步步学习Shell高级编程实战 原创作品,允许转载,转载时请务必以超链接形式标明文章 原 ...
- 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...
- Shell十三问更新总结版 -- 什么叫做 Shell?-- Shell十三问<第一问>
Shell十三问更新总结版 简介 ChinaUnix 论坛 Shell 版名为網中人的前辈于 2004 年发布的精华贴,最近回炉这块内容,觉得很多东西讲的实在透彻,非常感谢前辈網中人,同时我个人也对这 ...
随机推荐
- Xhorse Condor XC-Mini Plus回顾
Condor是Xhorse生产的最新型电子钥匙切割机.该机器在激光,圆柱和Tibbe键上具有出色的切割性能,几乎可以复制,切割,编码和解码任何汽车钥匙! Condor XC-MINI Plus的亮点: ...
- 彻底卸载干净docker并且安装docker 指定版本
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-la ...
- if语句分析
1.if语句的反汇编判断 if语句反汇编后的标志: 执行各类影响标志位的指令 jxx xxxx 如果遇到上面的指令,则很可能是if语句: 例如: 1.案例一 ...
- python获取某路径下某扩展名的所有文件名和文件个数
# -*- coding: utf-8 -*- # @Time : 19-1-10 下午10:02 # @Author : Felix Wang import os def get_file_coun ...
- 本地创建的项目使用版本管理(git)推送至远端。
1.创建项目 mkdir nidexiangmu cd nidexiangmu touch README.md 2.使用 git 命令管理 git init // 建立本地仓库 git add . / ...
- C++模板的偏特化与全特化
模板的声明 类模板和函数模板的声明方式是一样的,在类定义/模板定义之前声明模板参数列表.例如: // 类模板 template <typename T1, typename T2> cla ...
- JVM----Java内存模型与线程
我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等 ...
- IP输出 之 ip_local_out
概述 将要从本地发出的数据包,会在构造了ip头之后,调用ip_local_out函数,该函数设置数据包的总长度和校验和,然后经过netfilter的LOCAL_OUT钩子点进行检查过滤,如果通过,则调 ...
- Linux 如何查看端口与进程占用情况
1 lsof -i:port 查看端口使用情况 lsof -i 如果出现 command not found,直接yum install lsof即可. (1) lsof -i lsof -i 用以 ...
- 卸载apache
1.查看httpd相关软件包 rpm -qa|grep httpd 2.卸载命令, “rpm -e 软件或服务名” 如果出现类似“httpd >= 2.2.0 is needed by (ins ...