码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2015-07-03 13:59:50      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

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
技术分享
远程终端登录信息:
技术分享

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

标签:

原文地址:http://www.cnblogs.com/patf/p/4618385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!