linux/linux学习笔记-Shell基础(mooc)
一。shell概述



shell根据ascII表,将命令翻译为0101...传给内核执行。
内核-》shell翻译为命令-》用户(操作的界面就是shell,shell=翻译官)



linux标准shell是bash
unix(C族)用的更多的是csh
echo $SHELL //$调用变量名 #/bin/bash vi /etc/shells $sh //从bash->进入->sh #exit退出 csh //进入csh
一个shell可以调用其他shell(如bash->调用sh)
一个shell也可以调用子shell(如bash中->输入命令bash,该bash为子bash)
工作示例:mysql映射
//step1:创建mysq.sh
vi mysql.sh //step2:添加内容
#!/bin/bash docker run -p : --name mysql -e MYSQL_ROOT_PASSWORD=shiyufeng -d mysql:5.7 //启动mysql
docker exec -it mysql bash
二。脚本的执行方式







三。Bash的基本功能




















小结:
#####bash的基本功能####### 【别名与快捷键】 alias //查看系统中所有命令别名[alias 别名 原命令] ls --color=never //取消颜色显示 alias ls='ls --color=never' //设定命令别名-给命令ls --color=never取个别名ls vi filename //vi无颜色,vim有颜色(比vi强大)
alias vi='vim' //给vim起个别名叫vi,因此打vi,实际打vim #上述别名只能临时生效 【别名永久生效】 #每一个用户都有自己的环境变量
vi ~/.bashrc //写入环境变量配置文件(~代表家目录) source ~/.bashrc //生效(也可重启) unalias 别名 //删除别名 【历史命令】 #只能保存正常退出的命令
history //查看所有历史命令[history [选项] [历史命令保存文件]] #手动保存历史命令
history -w //把缓存中的历史命令写入历史命令保存文件 history -c //清空历史命令(不建议清空) #修改历史命令条数
vi /etc/profile //查看历史命令保存条数:HISTSIZE=1000(可修改) #历史命令的调用
history //查看历史,前显示序号
!序号 //重复执行每“序号”命令
!! //重复执行上一条命令
!字串 //重复执行最后一条以该字串开头的命令
eg: history 命令
ls -l //第一条
ls -a //第二条
则! ls 执行的是ls -a这条命令 【输出重定向】--常用 #标准输入输出(输入:输入到PC,输出:从PC输出) #linux中一切皆文件
/dev/stdin //键盘(文件描述符0)
/dev/sdtout //显示器(1:标准正确输出)
/dev/sdterr //显示器(2:标准错误输出) #输出重定向:输出到屏幕的内容,输出到文件中,改变了输出方向,叫输出重定向 #标准输出重定向(只能保存命令的正确输出)
#只要有输出的命令,均可以重定向到文件(eg:ls..)
ifconfig > test.log //[命令 > 文件] //覆盖方式添加
cat test.log //上述命令未显示在屏幕上,而是写入到test.log日志中 ifconfig >> test.log //[命令 >> 文件] //追加 #标准错误输出重定向(注意2与>间无空格)
yufeng > test.log //将yufeng这个错误命令输出到test.log文件[错误命令 2 >文件] yufeng >> test.log //追加 #***正确输出和错误输出同时保存--常用(记住) #方法一:覆盖方式(>)和追加命令(>>)
ifconfig >> test.log >& //正确输出:[命令 > 文件 2>&1]
yufeng >> test.log >& //错误输出 #方法二:[命令 &>文件] / [命令 &>>文件]
ls &>>test.log //正确输出
yufeng &>>test.log //错误输出 #若不想显示命令,可将命令输出到/dev/null
ls &>/dev/null // /dev/null黑洞,特殊设备,当作垃圾站 #方法三:[命令 >> 文件1 >>文件2]正确与错误日志分别保存
cat xxx >> yes.log >>erro.log //把正确日志放到yes.log,错误日志放到erro.log 【输入重定向】[wc [选项] [文件名] --了解 wc //可以写入任意内容(统计人为输入)
ctrl + d //统计输入了多少字符 wc -c //统计字节数 #改变统计输入方法,不是键盘而是文件
wc < test.log //统计文件输入的字符 wc << string //任意输入,直到遇到string,统计string之前的所有字符 【管道符】 #多个命令顺序执行,命令间无逻辑关系
date ; ls ; cd /etc ; ls ; pwd //多个命令顺序执行(不管某一命令是否报错,后绪所有命令依旧正确执行) #逻辑与,多个命令顺序执行,命令间有逻辑关系
ls && echo yes //第一条命令必须正确执行,第2条命令才可以执行 # ||逻辑或:命令1不正确执行,才执行命令2
ls || ls -l //命令ls不正确执行,才执行命令ls -l #判断ls是否正确执行
ls && echo yes || echo no //ls正确执行,会打印yes,否则打印no 【管道符】 #命令1 | 命令2 命令1的操作结果作为命令的2的操作对象 ls -l /etc/ > abc //先将ls -s结果输入到某一文件
more abc //再查看该文件 more test.log //分屏显示(more查看文件) ls -l /etc | more //管道符,more查看ls命令的结果 #查看linux的所有网络连接
netstat -an //查看linux所有网络连接 #查看连接子多少人
netstat -an | grep ESTABLISHED //在命令netstat -an中查询ESTABLISHED这个行 #查看连接子多少人(统计行号)
netstat -an | grep ESTABLISHED | wc -l 【通配符】 ls abc* //查询包含abc的所有文件 ls abc? //查询abc后包含1个字符的文件 ls abc[-] //查询abc后包含任意一个数字的所有文件 ls abc[-][-]//查询abc后包含两个数字的所有文件 ls abc[^-] //查询abc后不是数字的所有文件 ls abc[^-]* //查询abc后除数字外的所有文件 ls abc[^-][a-z] //查询abc后是字母的所有文件 #正则表达式 echo ls //输出ls #单引号与双引号,$用于调用系统变量
a= //赋予变量值
echo $a //查看变量值123
echo '$a' //原样输出
echo "$a" //输出变量值123 b=ls //赋予b变量值ls命令
echo "$b" //输出ls,不是预期结果 #反引号用于包含系统命令--少用
c=`ls` //反引号,将ls命令赋值给c
echo "$c" //会输出ls命令查询的结果 #$()用于包含命令--常用
d=$(ls) //<=>d=`ls`,将ls命令赋值给d #转义字符\将特殊符号$失去意义
echo \$d //输出$d
linux/linux学习笔记-Shell基础(mooc)的更多相关文章
- 深挖计算机基础:趣谈Linux操作系统学习笔记
参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ...
- 20135316王剑桥Linux内核学习笔记
王剑桥Linux内核学习笔记 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的 个人理 ...
- linux 驱动学习笔记01--Linux 内核的编译
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
- Linux命令学习笔记目录
Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...
- 尚硅谷韩顺平Linux教程学习笔记
目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...
- Linux内核学习笔记-2.进程管理
原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- Linux内核学习笔记-1.简介和入门
原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...
- Linux内核学习笔记二——进程
Linux内核学习笔记二——进程 一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...
随机推荐
- 洛谷P5055 可持久化文艺平衡树 (可持久化treap)
题目链接 文艺平衡树的可持久化版,可以使用treap实现. 作为序列使用的treap相对splay的优点如下: 1.代码短 2.容易实现可持久化 3.边界处理方便(splay常常需要在左右两端加上保护 ...
- 《Head First 软件开发》阅读四
构建代码:自动化构建 代码的完成不只是能运行,还包括编译代码和打包成可配置的单元.学会一个构建工具来编写自己的说明处理源代码.新的团队成员需要立刻知道软件的关联组件和主要类去做测试,但开发人员不是心理 ...
- GO语言学习笔记3-int与byte类型转换
1.主机字节序 主机字节序模式有两种,大端数据模式和小端数据模式.在网络编程中应注意这两者的区别,以保证数据处理的正确性.例如,网络的数据是以大端数据模式进行交互,而我们的主机大多数以小端模式处理,如 ...
- c# B/S下 如何优化文件上传速度和实现断点续传问题
IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...
- UNIX环境--线程
一.线程的概念 1.线程在进程中是负责执行代码的一个单位,可以说线程是进程的一部分.一个进程中至少要有一个主线程,进程可以拥有多个线程. 2.线程和进程一样,线程会共享进程的一些信息.比如,代码段.全 ...
- Python黑科技:6行代码轻松搭建FTP服务器
Python 黑科技 六行代码轻松搭建个人FTP服务器 什么是FTP服务器? FTP (File Transfer Protocol) 是一个用于客户端与服务器之间文件的协议.利用FTP我们就能做到在 ...
- springboot集成fastjson
@Configuration @EnableWebMvc public class WebMvcConfigurer extends WebMvcConfigurerAdapter { /** * f ...
- nginx 日志文件分隔
Nginx命令 Nginx命令帮助如下 nginx -h nginx version: nginx/0.8.45 Usage: nginx [-?hvVt] [-s signal] [-c filen ...
- 响应式布局@media screen and ( max-width: 像素值 ) {}
设计思路很简单,首先先定义在标准浏览器下的固定宽度(假如标准浏览器的分辨率为1024px,那么我们设置宽为980px),然后用Media Query来监测浏览器的尺寸变化,当浏览器的分辨率小于1024 ...
- DVWA--XSS(反射型)
0X01爱之初介绍 虽然XSS已经做了两节了 但是还是还是简单解释一下 前言:跨站脚本(Cross-Site Scripting,XSS)是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web ...