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

shell命令

时间:2016-01-04 11:28:06      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

1:操作系统:人--使用-->shell(或应用程序)--呼叫-->kernel(核心)--->硬件
2:查看shell的种类:# cat /etc/shells
3:而这个登入系统的 shell 就记录在 /etc/passwd 这个档
案内!# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
4:~/.bash_history:记录上一次登录shell使用命令的历史记录(~/表示用户目录)/root/.bash_history(隐藏文件)
4.1:在:/etc/profile中插入:
HISTFILESIZE=?
HISTSIZE=?
指定历史记录数量
#source /etc/profile使变量生效
4.2:在/etc/skel/.bash_logout中添加
rm -f $HOME/.bash_history
这样注销时历史记录会被删除
5:用户自定义目录文件alias:~/.bashrc,
#source ~/.bashrc使设置生效


6:bash内建许多常用指令,可用#type cd 查询

7:环境变量:/etc/profile登录用户操作系统定制用户环境时使用的第一个文件,此文件为每个用户设置环境信息,比如不同的人领取属于
自己的mial一样,属于不同用户的不同环境,不同的内容;
7.1:PATH环境变量:字符串变量,当输入命令时,linux会查找PATH里面记录的路径,比如在/和/usr下输入ls,但ls并不在这两个目录下,
linux实际上去/bin,/usr/bin,/sbin等地方查找,# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/zhome/usr/local/arm/4.3.2/bin
7.2:例如,新安装的命令在:/usr/local/new/bin,想在任何目录使用,需要加入$PATH,export PATH=$PATH:/usr/local/new/bin

8.若该变量为扩增变量内容时,则可用 "$发量名称"
PATH="$PATH":/home/bin
9.若该变量需要在其他子程序执行,则需要以 export 使变量变成环境变量:export PATH
10.read:
:-p 后接提示符
:-t 后接等待输入时间
#!/bin/bash
echo "嘿,亲爱的友柱!\n"
read -p "Please input your name:" name
echo "\n你好:$name\n"

;~# read sky
this is zhu
# echo $sky
this is zhu

# read -p "Please input your name:" -t 30 named



11.子程序:在目前的shell启用新的shell,新的shell就是子程序。在一般状态下,父程序自定义变量是无法在子程序内使用。但是透过
export 将自定义变量变成环境变量后,就能够在子程序底下应用了
#name=bird
#export name
#bash//进入子程序
#echo $name
bird
12.在变量的设定当中,单引号和双引号的用途有何不同:双引号任然可以保有变量的内容,但单引号内仅能是一般字符
:继11
# myname="$name is me"
# echo $myname
bird is me

13.反单引号( ` ):在一串指令中,在 (``)内的指令将会被先执行,而其执行出的结果将做为外部输入信息!
# ls -l `locate crontab`

14.变量替换=
#a=/home/zhome
#cd $a
;echo $取出变量

15.随机数:# echo $RANDOM(0~32767)
;指定范围:# declare -i num=$RANDOM*10/32768;echo $num(0~9)

16.set:观察所有环境变量


1,$# :代表命令行参数个数,即 2
2,$* :代表所有的参数,即 abcd 1234
3,$@ :同上
4,$n :第 n 个参数,比如$1 即 abcd,而$2 就是 1234
5,$? :代表最后一个命令执行之后的返回值
6,$$ :代表当前 shell 的进程号 PID

est n1 -eq n2 判断数值 n1 是否等于 n2 n1 等于 n2 返回 0,否则返回 1
test n1 -ne n2 判断数值 n1 是否不等于 n2 n1 不等于 n2 返回 0,否则返回 1
test n1 -gt n2 判断数值 n1 是否大于 n2 n1 大于 n2 返回 0,否则返回 1
test n1 -ge n2 判断数值 n1 是否大于等于 n2 n1 大于等于 n2 返回 0,否则返回 1
test n1 -lt n2 判断数值 n1 是否小于 n2 n1 小于 n2 返回 0,否则返回 1
test n1 -le n2 判断数值 n1 是否小于等于 n2

17.declare:宣告发量类型
# declare -i sum=1+2+3
# echo $sum

18.如果当前目录下文件存在就拷贝,否则创建并写进一句话
#!/bin/bash
if [ -e file.txt ]

then
   cp file.txt file2.txt
else
   echo "hello world" > file.txt
fi//表结束

19:case,输入1,2,3,输出one two three,其他输出:sorry

#1/bin/bash
echo -n "enter number from 1 to 5:  "
read num
case $num in
1)echo "One";;
2)echo "Two";;
3)echo "three";;
4)echo "Four";;
5)echo "File";;
*)echo "Sorry";;
esac
exit 0


20:实现1+2+3....+100
#!/bin/bash
sum=0
for((i=0;i<100;i++))
do
sum=$(($sum+1))
done
echo sum=$sum

21:写一条匹配当前目录下所有不以数字开头且后缀为.c的文件的命令。
#!/bin/bash
find . -name "[^0-9]*.c"


22:read:
#!/bin/bash
read -p "Your name:" name
echo "Welcome $name"

##########################################################
23:检测用户是否在线
#!/bin/bash
check_user()
{
   if [ $1 = "quit" ]
    then
     exit
   fi
$USER=`who | grep $1 | wc -l`
if [ $USER -eq 0 ]
then
   return 0
else
   return 1
fi

}

while true
do
   echo -n "input name:  "
   read USER
check_user $USER
if [ $? -eq 1 ]
then
   echo $USER online
else
   echo $USER offline
fi
done

#########################################3
24:vi功能
#!/bin/bash
if [ $# -ge 2 ]
  then
     echo "invalid"
  exit
fi

if [ $# -eq 0]
 then
    vi
    exit
fi

if [ -e $1 ]
  then
    vi $1
    exit
fi

suffix=${1##*.}
if[ $suffix= "c" ]
 then
  cp sample.c $1
  vi $1 +15
  exit
else
  vi $1
fi







shell命令

标签:

原文地址:http://www.cnblogs.com/zhome/p/5098061.html

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