shell学习之路:shell基础大全1

http://note.youdao.com/share/?id=a9d02257b639c94323c818bc38423919&type=note

别名命令alias:http://note.youdao.com/share/?id=cbcbd1156ab1f0835c4f76131dbf98e2&type=note

查看当前用户历史命令history:http://note.youdao.com/share/?id=e878f9ed7bb7e8849fa57b67dc1eb7f3&type=note

添加新硬盘并分区:http://note.youdao.com/share/?id=8cf27602cdce36e1d4160f00e9004b00&type=note

dd if=输入文件 of=输出文件 bs=字节数 count=个数

选项:

if=输入文件    指定源文件或源设备

of=输出文件    指定目标文件或目标设备

ba=字节数    指定一次输入/输出多少字节,即把这些字节看做一个数据块

count=个数    指定输入/输出多少个数据块

例子:

[[email protected]]# date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date

可以通过命令执行 查看执行前后的是date时间差

例子2:我们可以使用该命令进行数据对考 或者烧盘

[[email protected]]# date ; dd if=/dev/cdrom of=/data/CentOS6.4-one.iso ; date

这样我就可以吧光盘烧录到 /data/下 好方便以后用与搭建 本地yum源


管道符:命令1的正确输出作为命令2的操作对象

[[email protected]]# ls | grep fengtaotao

要求是 管道符前面的命令必须有输出

[[email protected]]# ll -a | morp   分屏显示 ll -a的输出内容 前提是命令1必须有正确输出


netstat -an 查看netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。[1] 使用时如果不带参数,netstat显示活动的 TCP 连接。

例如:查看当前服务器上有几个远程连接

[[email protected]]# netstat -an | grep "ESTABLISHED"

当然我们也可以只统计行数

[[email protected]]# netstat -an | grep "ESTABLISHED" | wc -l



grep命令:

[[email protected]]#grep [选项] ‘搜索内容‘ 文件名

选项:

-i:不区分大小写

-n:显示行号

-v:反向查找

--color=auto:收索关键字显示颜色


通配符:

通配符 作用
? 匹配一个任意字符

*
匹配0个或任意多个任意字符,也就是说可以匹配任意内容
[] 匹配中括号中任意一个字符。例如[abcd]代表匹配abcd当中的任意一个

[-]

匹配中括号中任意一个字符,-代表范围例如[a-z][A-Z][0-9]等等

[^]

逻辑非,表示匹配不是中括号中的一个字符例如[^0-9]代表不是数字的字符
‘‘ 单引号,在单引号中所有的特殊字符将作为文本例如:$ @ *等
""
双引号中特殊符号都没有含义,但对于$  \ ‘例外调用变量的值,应用命令,转符号等
反引号
与下$()意义一样  例如:echo `ls`  或echo $(ls) 输出的是ls命令结果

$()

 

#

在Linux当中#号为注释 只要以#开头的都是无效的注释
$ 用于调用变量的值,如果要调用变量name的值 需要使用$name 变量的定义name=user1  

\
转移符 在特殊意义符号前面加\会失去其特殊意义 \$name 就不是变量

变量: linux 下有 1、用户自定义变量;2、环境变量;3、位置参数变量;4、预定义变量

用户自定义变量:

变量定义:

[[email protected]]#name=user1   [[email protected]]#haha=$(date)

变量叠加:

[[email protected]]#name="$name"222

[[email protected]]#echo $name

user1222

或者使用 name=${name}222 与上一样

查看变量:

我们可以使用set来查看变量(set 查看系统当中所有的变量包括自定义变量)

[[email protected]]# set | grep name

name=user1222

卸载变量

unset name


环境变量:

设置环境变量:

export 变量名=变量值

可以使用pstree命令查看 进程结构

ps1 用来修改定界符[[email protected]]# 的设置


预定义变量:

预定义变量 作用

$?

最后一次执行的命令的返回状态,如果这个变量的值为0表示上一个命令正确执行;如果返回的值非0证明没有执行成功,具体的返回值可以百度查询返回错误代号
$$
当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)

 

 

 

 

 

 

接收键盘输入:read [选项] [变量名]

选项:

-p "提示信息":在等待read输入时,输出提示信息

-t秒数:    read命令会一直等待用户输入,使用-t选项后面加秒数 等待多少秒后执行默认

-n字符数:  read命令只接受指定的字符数,就会执行

-s:    银城输入的数据,适合用于机密的信息例如密码


bash运算符:

declare 声明变量类型

[[email protected]]#declare[+/-][选项] 变量名

选项:

-:    给变量设置类型属性

+:    取消变量的类型属性

-i:    将变量声明为整数型

-x:    将变量声明成环境变量  (也可以用 export 变量)

-p:    显示制定变量的被声明的类型

例子:

[[email protected]]#aa=11 ; bb=22; declare -i cc=$aa+$bb && echo $cc

33

最常见的方式是 cc=$(($aa+$bb))

在运算当中我们只要在外部用$(())双小括号括起来 里面的算法与数学公式算法相同例如:

[[email protected]]#aa=$(((11+3)*3/2)) && echo $aa

21  等到的结果就是21

还有逻辑与 && 逻辑或 ||

变量置换方式 这个表类似于PHP中的三元运算符:

例如:

[[email protected]]#


环境变量:(环境变量允许)环境变量一般都是大写

环境变量配置文件简介:

1.source命令:

[[email protected]]#source 配置文件   或者 . 配置文件  都可以让他立即生效无效重启

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

上面三个路径的环境变量配置文件是对所有用户生效的

~/.bash_profile

~/.bashrc

上面两个路径的环境配置文件时对当前用户生效的配置文件

环境变量关系流程图:

注销环境配置文件: ~/.bash_logout  默认是空的

历史命令配置文件: ~/.bash_history

SHELL登录信息:

登录后的信息:对本地和远程都生效:/etc/motd 默认是空的可以添加

[[email protected]]#echo "aaa" >> /etc/motd

[[email protected]]#exit

[[email protected]]#从新登录后就有了

本地终端登录信息: /etc/issue

远程终端登录信息:

时间: 2024-10-19 09:13:01

shell学习之路:shell基础大全1的相关文章

shell学习之路:shell基础大全2

原文:http://note.youdao.com/share/?id=cd2ad6e6d5db2b347f92958efc2bdbc1&type=note 正则表达式与通配符: 一.介绍: 1.正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式 2.通配符用来匹配符合条件的文件名,通配符是完全匹配,ls.find.cp这些命令不支持正则表达式,所以只能用使用shell自己的通配符来进行匹配了. 二.基础正则表达式: grep "

Shell学习之路和我发布过的Shell脚本博文

Shell学习之路 目录 Shell学习之路[第一篇]:别名,管道,用户配置文件,变量,read Shell学习之路[第二篇]:条件测试,运算符,选择结构,for循环结构 Shell学习之路[第三篇]:While循环,C-for循环,Until循环,case分支结构,流程控制语句 Shell学习之路[第四篇]:函数,数组,变量替换 Shell学习之路[第五篇]:多线程脚本 Shell学习之路[第六篇]:Trap信号捕捉命令介绍与Shell结合实战讲解 Shell学习之路[第七篇]:Linux下d

Android 学习之路--android基础(三)

Android 学习之路--android基础(三) | Talent?C 盒子 盒子 博客 友链 关于 Posts List 作者Talent?C转载请注明出处 前言 上一篇文章我们介绍了 活动(Activity) 的作用及相关用法,我们知道活动是用来给用户展示 UI界面 的,那么在Android中都有哪些UI控件呢?今天就让我们来简单学习几种常见的 UI控件. 如何编写UI界面? Android Studio中为我们提供两种UI界面的编辑方式, 第一种是通过Android Studio 提供

Linux学习之路-Shell编程

Shell的编程 Bash是用得最广泛的shell,是大多数Linux 系统的缺省 shell.Bourne Again shell (bash), 正如它的名字所暗示的,是Bourne shell 的扩展.bash 与Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性.bash 也包含了很多 C 和 Korn shell 里的优点.bash 有很灵活和强大的编程接口,同时又有很友好的用户界面. 下面具体来介绍bash. Bash语法基本介绍

Linux学习之路-Shell 工作原理

Shell 工作原理 什么是shell shell是命令语言.命令解释程序及程序设计语言的统称,是用户和Linux内核之间的接口程序,为用户提供使用操作系统的接口. shell的特性 shell的一个重要特性是它自身是一个解释型的程序设计语言,程序运行时由解释器全程参与运行过程,每次读取一行,运行一行.shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数.变量.数组和程序控制结构.shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中. sh

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

Revit学习之路01_Revit基础

序言: 此分类记录自己的Revit学习之路.初学者难免一叶障目,不见泰山,欢迎一起交流学习! Revit介绍 Revit专为建筑信息模型(BIM)构建的一款建模软件.随着BIM概念在国内的兴起,各大设计院对Revit建模的需求增多,相关的基于Revit的二次开发也逐渐增多.具体介绍不在搬运. Revit是专为BIM构建的软件,了解Revit必须先了解BIM.BIM的概念不仅仅是二维图纸到三维模型的变化,BIM是一个信息管理和交互的平台.Revit既然作为专为BIM构建的软件,那么他就必须能够管理

shell学习之正则表达式【基础篇】

什么是正则表达式: 是你定义的.linux工具用来过滤文本的模式模板.Linux工具(比如sed编辑器或gawk)能够在数据流向工具时对数据进行正则表达式模式匹配.如果数据匹配模式,它就会被接受并进一步处理.如果数据不匹配模式,它就会被过滤掉. |---> 匹配的数据 | 数据流--->正则表达式 ----- |                                    | |---> 不匹配的数据 正则表达式用来在文件中匹配符合条件的字符串,正则包含匹配.Grep.awk.

shell学习之路:流程控制(for)

for循环的语法: 1.  for 变量 in 值1 值2 值3.... do 程序 done 例如:下列脚本会分别打印4次 分别是morning noon afternoon evening的值 1 #!/bin/bash 2 #打印时间 3 #Author Mrfeng 4 5 for time in morning noon afternoon evening 6 do 7 echo $time 8 done 例如批量解压缩: 1 #!/bin/bash 2 #批量解压缩脚本 3 #Aut