Linux shell(3)】的更多相关文章

什么是Shell:Shell是一个命令解释器. Linux下支持shell的种类: 1.  Bourne Shell(简称sh) 2.C Shell(简称csh) 3.Korn Shell(简称ksh) 4.Bourne Again Shell(简称bash) Bourne Shell有4种变量: 1.  用户自定义变量: 格式:变量名=值(等号两边不能有空格,亲测) 引用变量:$变量名 举例:VAR=”Hello Shell” Echo $VAR 注意:当变量名与其他文字混淆时,使用${变量名…
Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh).Bourne Again Shell(/bin/bash).C Shell(/usr/bin/csh).K Shell(/usr/bin/ksh).Shell for Root(/sbin/sh),等等.不同的Shell语言的语法有所不同,所以不能交换使用.每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了.在本文中,我们关注的重点是Bash,也就是Bourne Again…
shell程序流程控制的三大结构: 1. 顺序结构 2.选择结构 3.循环结构 顺序结构的定义: 顺序结构的程序设计是最简单的一种结构,它的执行顺序自上而下,依次执行,因此,我们只要按照解决问题的思路依次编写程序即可. 顺序结构程序编写流程: 1.编写脚本文件,以#!/bin/bash 2.编写业务程序,顺序编写语句块1.语句块2.语句块3.... 交互式输入与输出: read命令读取标准输入设备的一行,到新行换行符前的字符作为终止,把读到的字符赋值给变量 可以结合echo一起实现读取并输出的功…
shell的运算操作: let整数运算 expr整数运算 bc浮点运算 字符串运算 let命令: let命令让BASH shell 执行算数值的操作,使用let,可以比较两个值或执行加减乘除等这样的算数操作,这种操作经常用于shell程序中的控制流程结构或执行需要的运算,注意let命令只能执行整数的相关运算,运行结果也只能保存整数. 使用方法: let 变量名 = 变量1 运算符 变量2 常见的算数操作分类:: 加法  + 减法  - 乘法  * 除法  / 取模  % 注意,和c语言类似,le…
echo -e "Hello World! \a \n"     # -e 解析反斜杠 read -p "Please input your first name: " firstname # 提示使用者输入 [chen@hang-centos tmp]$ aa2=(4 7 44 8 9) #定义数组 shell if语句,格式: if command then commands fi eg: if ["$a"=="$b"]…
test比较两个值: 测试比较两个值是linux中常用的比较运算,test命令可以进行对两个值的比较,如果比较成功则返回值为0,否则为非0 常用比较方法: ·1.整数比较 2.字符串比较 3.逻辑比较        与或非 4.文件比较…
Implement a simple command interpreter in Linux. The interpreter should: support both internal and external commands, and internal commands support two (cd, exit); able to save 10 historical commands The following system calls can be used to implemen…
这一系列的Linux入门都是本人在<鸟哥的Linux私房菜>的基础上总结的基本内容,主要是记录下自己的学习过程,也方便大家简要的了解 Linux Distribution是Ubuntu而不是书本上推荐的CentOS,建议装双系统,不要使用虚拟机. 代码在github上:Linuxpractice 其他内容: Linux入门篇(一)——基本命令 Linux入门篇(二)——文件 Linux入门篇(三)——文件与目录 Linux入门篇(四)——Vim的使用与Bash Linux入门篇(五)——She…
Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向,我们已经讨论过了反弹shell中最核心也是相对较难理解的部分,那么接下来我们就可以正式借反弹shell的实例分析回顾前一篇文章讲的知识,并且也加深对反弹shell的理解吧. 0X01 什么是反弹shell reverse shell,就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并…
在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行.但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误.错误信息通常是"参数列太长"或"参数列溢出".这就是xargs命令的用处所在,特别是与find命令一起使用. find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样.这样它可以先处理最先获取的一…
4. SSH连接Linux工具 4.1 Linux网卡配置 (1)临时配置: ifconfig eth0 192.168.32.100 //给eth0网卡指定IP,写在ROM里的,关机会丢失. (2)永久生效:修改配置文件 ①vi /etc/sysconfig/network-scripts/ifcfg-eth0 //静态IP设置示例 DEVICE=eth0 HWADDR=:0C::D5:F0:B4 TYPE=Ethernet UUID=ff3e7b27--47f9-abb5-097f76581…
在 Docker基础技术:Linux Namespace(上篇)中我们了解了,UTD.IPC.PID.Mount 四个namespace,我们模仿Docker做了一个相当相当山寨的镜像.在这一篇中,主要想向大家介绍Linux的User和Network的Namespace. 好,下面我们就介绍一下还剩下的这两个Namespace. User Namespace User Namespace主要是用了CLONE_NEWUSER的参数.使用了这个参数后,内部看到的UID和GID已经与外部不同了,默认显…
继上次的Spark-shell脚本源码分析,还剩下后面半段.由于上次涉及了不少shell的基本内容,因此就把trap和stty放在这篇来讲述. 上篇回顾:Spark源码分析之Spark Shell(上) function main() { if $cygwin; then # Workaround for issue involving JLine and Cygwin # (see http://sourceforge.net/p/jline/bugs/40/). # If you're us…
Linux基础(六) shell脚本中的三大循环和函数知识点 一.流程控制之if结构 1.简单的if实例: #!/bin/bash var='/etc/init.d' #var='/dev/sda' if [ -d $var ] then echo "$var is directory" elif [ -b $var ] then echo "$var is block" elif [ -f $var ] then echo "$var is regula…
Linux 基础 (五) 一.shell相关知识 shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本.通过解释器的角度来理解shel 命令分为: ==> alias(别名) ==> Compound Commands ==> function  ==> build_in  (内部命令) ==> hash ==> $PATH  (外部命令) ==> error: command not found 获取一个命令会按照上述优先…
子曰:"工欲善其事,必先利其器." 学习应该是快乐的,在这个乐园中我努力让自己能用简洁易懂(搞笑有趣)的表达来讲解让知识或者技术,让学习之旅充满乐趣,这就是写博文的初心. 本篇的旅行地图如下: 第一站:小木 会先 登录酷炫的服务器,进入(cd)到神秘的magic 空间(目录),当我们忘记是怎么进入magic空间(目录)时候,可以使用(pwd)立刻得知目前所在的工作目录. 第二站:在magic空间(目录)中,创建(mkdir)一个属于自己的奇幻目录,然后创建(touch)属于自己文件.…
Linux学习(2)- 正则表达式基础 一.基础正则表达式介绍与练习 学习内容 正则表达式特殊符号 [:alnum:]代表英文大小写字母及数字 [:alpha:]代表英文大小写字母 [:blank:]代表空格和 tab 键 [:cntrl:]键盘上的控制按键,如 CR,LF,TAB,DEL [:digit:]代表数字 [:graph:]代表空白字符以外的其他 [:lower:]小写字母 [:print:]可以被打印出来的任何字符 [:punct:]代表标点符号 [:upper:]代表大写字符 […
Linux 用户和用户组详细解说 本文主要讲述在Linux 系统中用户(user)和用户组(group)管理相应的概念: 用户(user)和用户组(group)相关命令的列举: 其中也对单用户多任务,多用户多任务也做以解说. Linux 用户(user)和用户组(group)管理概述 .理解Linux的单用户多任务,多用户多任务概念: Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念: 1.Linux 的单用户多任务: 单用户多任务:比如我们以beinan…
20155301 滕树晨linux基础--linux进程间通信(IPC)机制总结 共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在该进程的地址空间(这里的地址空间具体是哪个地方?)中.其他进程可以将同一段共享内存连接到自己的地址空间中.所有进程都可以访问共享内存中的地址,就好像它们是malloc分配的一样.如果一个进程向共享内存中写入了数据,所做的改动将立刻被其他进程看到 共享内存是IPC最快捷的方式,因为共享内存方式的通信没…
linux进程间通信(IPC)机制 1.共享内存 共享内存是在多个进程之间共享内存区域的一种进程间的通信方式,由IPC为进程创建的一个特殊地址范围,它将出现在该进程的地址空间(这里的地址空间具体是哪个地方?)中.其他进程可以将同一段共享内存连接到自己的地址空间中.所有进程都可以访问共享内存中的地址,就好像它们是malloc分配的一样.如果一个进程向共享内存中写入了数据,所做的改动将立刻被其他进程看到. 共享内存是IPC最快捷的方式,因为共享内存方式的通信没有中间过程,而管道.消息队列等方式则是需…
用户管理 之 Linux 用户(user)和用户组(group)管理概述  原文:http://www.cnblogs.com/licheng/p/6103992.html 一.理解Linux的单用户多任务,多用户多任务概念:Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念: 1.Linux 的单用户多任务:单用户多任务:比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点…
Shell(1)---变量 初衷:学习shell的目的很简单,自己经常在linux服务器上做各种操作,而且基本上是一些相同的命令操作,所以就想通过shell脚本来启动就行,能够节省一定的开发时间,提高工作效率. 一.shell变量 1.定义变量 Shell 支持以下三种定义变量的方式 xub$ name=value xub$ name='value' xub$ name="value" # name 是变量名,value 是赋给变量的值. 区别 如果 value 不包含任何空白符(例如…
1.工作管理 说明:工作管理(job control)是用在bash环境下的,也就是说:“当我们登录系统取得bash shell之后,在单一终端机接口下同时进行多个工作的行为管理”.举例说明,我们在登录bash之后,想要一边复制文件.一边进行数据搜索.一边进行编译.还可以一边进行vim程序撰写!当然我们可以重复登录那6个命令行的终端机环境中,但是这样比较复杂,那可以在一个bash环境中完成这些操作吗?当然可以,这就需要使用到工作管理(job control)了. 1.什么是工作管理 从上述说明当…
Linux笔记(二) 一.软件包管理 1.rpm命令使用:Linux安装软件包的三种方法 rpm工具类似于Windows的exe文件,可以直接进行安装,而且安装路径和文件名一般都是固定好的. 在CentOS和Red Hat下的安装包一般称为rpm包. 安装 $rpm -ivh 包全名 选项 作用 -i 安装 -v 显示详细信息 -h 显示进度 升级 rpm -Uvh 包全名 卸载 rpm -e 包全名 2.yum使用:Linux安装软件包的三种方法 yum是用Python开发的工具,yum相对于…
linux笔记(一) 1.常用BASH快捷键 编辑命令 快捷键 作用 Ctrl + a 移到命令行首 Ctrl + e 移到命令行尾 Ctrl + xx 在命令行首和光标之间移动 Ctrl + u 从光标处删除至命令行首 Ctrl + k 从光标处删除至命令行尾 重新执行命令 快捷键 作用 Ctrl + r 逆向搜索命令历史 Ctrl + g 从历史搜索模式退出 控制命令 快捷键 作用 Ctrl + l or clear 清屏 Ctrl + s 阻止屏幕输出 Ctrl + q 允许屏幕输出 Ct…
Mac下如何连接linux服务器(SSH) 1.用mac自带终端连接 步骤如下: 打开终端,在顶部shell菜单中选择新建远程连接 在右侧服务器窗口点击+号,添加服务器,输入IP等信息 输入用户名,点击连接 在打开的终端窗口中会询问你是否确认连接,输入yes回车 输入密码,连接成功 发现用自带终端连接,每次都要输入密码,不像Xshell可以方便的对连接进行保存和复制等等管理 2.使用Core Shell连接 可以在appstore中下载 界面交互优秀 可以保存密码 可以上传/下载文件 ....还…
atq命令 例如:从现在起三天后的下午四点运行作业at 4pm + 3 days:在July 31上午十点运行作业at 10am July 31:明天上午一点运行作业at 1am tomorrow. 注意:at类命令的服务名叫atd (2).选项 1 2 3 4 5 6 7 8 9 10 11 -V 打印版本信息 -q queue 使用指定的队列.队列名称由单个字母组成,有效队列名称范围从a到z和A到Z.at默认a队列,batch默认b队列.具有较高字母的队列运行良好.特殊队列"="为…
linux系统(centos)下su和sudo命令的区别 区别 我们在日常使用过程中,这2个命令很多时候能达到相同的效果,对细节区别十分模糊,这里进行简单的解释和区分.希望大家能够正确使用这2个命令,使用过程中,也知其原因. su命令:用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码. sudo命令:临时用来以其他用户的身份来执行命令.普通用户需要在/etc/sudoer文件里面配置才能使用sudo命令. su命令基本使用 基本参数: -c<指令>或--command=…
sysfs是一个基于ramfs的文件系统,在2.6内核开始引入,用来导出内核对象(kernel object)的数据.属性到用户空间.与同样用于查看内核数据的proc不同,sysfs只关心具有层次结构的设备信息,比如系统中的总线,驱动以及已经加载的模块等,而诸如PID等信息还是使用proc来管理.本质上,sysfs文件的层次结构就是基于内核中kset与kobject逻辑结构来组织的.从驱动开发的角度,sysfs为我们提供了除了虚拟字符设备的read/write/ioctl和proc系统之外的另外…
扒完了字符设备,我们来看看平台总线设备,平台总线是Linux中的一种虚拟总线,我们知道,总线+设备+驱动是Linux驱动模型的三大组件,设计这样的模型就是将驱动代码和设备信息相分离,对于稍微复杂一点的驱动,都要使用这种结构,我在"Linux设备管理(一)_kobject, kset,kobj_type分析"一文中提到过将一个设备或驱动挂载到总线就是将这个设备或驱动的kobject挂接到相应的总线kset下的设备kset或驱动kset中,本文就扒一扒内核中注册一个平台设备的源码,验证一下…