您的位置:首页 > 运维架构 > Shell

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

2015-07-03 13:19 567 查看
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=个数 指定输入/输出多少个数据块
例子:
[root@loaclhost]# date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date
可以通过命令执行 查看执行前后的是date时间差
例子2:我们可以使用该命令进行数据对考 或者烧盘
[root@localhost]# date ; dd if=/dev/cdrom of=/data/CentOS6.4-one.iso ; date
这样我就可以吧光盘烧录到 /data/下 好方便以后用与搭建 本地yum源

管道符:命令1的正确输出作为命令2的操作对象
[root@localhost]# ls | grep fengtaotao
要求是 管道符前面的命令必须有输出
[root@localhost]# ll -a | morp 分屏显示 ll -a的输出内容 前提是命令1必须有正确输出
netstat -an 查看netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。[1] 使用时如果不带参数,netstat显示活动的 TCP 连接。
例如:查看当前服务器上有几个远程连接
[root@localhost]# netstat -an | grep "ESTABLISHED"
当然我们也可以只统计行数
[root@localhost]# netstat -an | grep "ESTABLISHED" | wc -l

grep命令:

[root@localhost]#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、预定义变量
用户自定义变量:
变量定义:
[root@loclahost]#name=user1 [root@localhost]#haha=$(date)
变量叠加:
[root@localhost]#name="$name"222
[root@localhost]#echo $name
user1222
或者使用 name=${name}222 与上一样
查看变量:
我们可以使用set来查看变量(set 查看系统当中所有的变量包括自定义变量)
[root@localhost]# set | grep name
name=user1222
卸载变量
unset name
环境变量:
设置环境变量:
export 变量名=变量值

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

ps1 用来修改定界符[root@localhost]# 的设置
预定义变量:

预定义变量作用
$?
最后一次执行的命令的返回状态,如果这个变量的值为0表示上一个命令正确执行;如果返回的值非0证明没有执行成功,具体的返回值可以百度查询返回错误代号
$$当前进程的进程号(PID)
$!后台运行的最后一个进程的进程号(PID)
接收键盘输入:read [选项] [变量名]
选项:
-p "提示信息":在等待read输入时,输出提示信息
-t秒数: read命令会一直等待用户输入,使用-t选项后面加秒数 等待多少秒后执行默认
-n字符数: read命令只接受指定的字符数,就会执行
-s: 银城输入的数据,适合用于机密的信息例如密码
bash运算符:
declare 声明变量类型
[root@localhost]#declare[+/-][选项] 变量名
选项:
-: 给变量设置类型属性
+: 取消变量的类型属性
-i: 将变量声明为整数型
-x: 将变量声明成环境变量 (也可以用 export 变量)
-p: 显示制定变量的被声明的类型
例子:
[root@localhost]#aa=11 ; bb=22; declare -i cc=$aa+$bb && echo $cc
33
最常见的方式是 cc=$(($aa+$bb))
在运算当中我们只要在外部用$(())双小括号括起来 里面的算法与数学公式算法相同例如:
[root@localhost]#aa=$(((11+3)*3/2)) && echo $aa
21 等到的结果就是21
还有逻辑与 && 逻辑或 ||



变量置换方式 这个表类似于PHP中的三元运算符:
例如:
[root@localhost]#



环境变量:(环境变量允许)环境变量一般都是大写
环境变量配置文件简介:
1.source命令:
[root@localhost]#source 配置文件 或者 . 配置文件 都可以让他立即生效无效重启
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
上面三个路径的环境变量配置文件是对所有用户生效的
~/.bash_profile
~/.bashrc
上面两个路径的环境配置文件时对当前用户生效的配置文件
环境变量关系流程图:



注销环境配置文件: ~/.bash_logout 默认是空的
历史命令配置文件: ~/.bash_history
SHELL登录信息:
登录后的信息:对本地和远程都生效:/etc/motd 默认是空的可以添加
[root@localhost]#echo "aaa" >> /etc/motd
[root@localhost]#exit
[root@localhost]#从新登录后就有了
本地终端登录信息: /etc/issue



远程终端登录信息:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: