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命令的更多相关文章

  1. Hadoop Shell命令大全

    hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...

  2. Shell命令和流程控制

    Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...

  3. 在程序中执行shell命令

    在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...

  4. Linux远程执行Shell命令或脚本

    ## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...

  5. HBase基本shell命令

    HBase基本shell命令 以下shell命令都是经过测试,正常展示,若有不足,还望指点! 1.创建表 create ‘表名称’,‘列族名称1’,‘列族名称1’create 'test_M_01', ...

  6. Linux SHELL 命令入门题目答案(一)

    1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...

  7. Linux SHELL 命令入门题目(一)

    新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...

  8. shell命令获取最新文件的名称

    最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...

  9. 【转】Hadoop FS Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...

  10. [蟒蛇菜谱] Python封装shell命令

    # -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLo ...

随机推荐

  1. 一种效率更高的for循环

    var i,array=[]; for(i=array.length;i--;) { //处理代码 } 1.for循环中使用更少的变量 2.逐步减至0,这样会更快,因为同0比较比同数组的长度比较,或同 ...

  2. java获取当前时间前一周、前一月、前一年的时间

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calend ...

  3. nginx 模块讲解

    1. 通用配置选项: --prefix=<path>          指定Nginx的安装路径,所有其他的路径都要依赖于该选项 --sbin-path=<path>     ...

  4. RN的像素及布局

    转自:http://www.cocoachina.com/ios/20150420/11608.html 宽度单位和像素密度 react的宽度不支持百分比,设置宽度时不需要带单位 {width: 10 ...

  5. 【转载】C/C++中extern关键字详解

    1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...

  6. Linux Shell脚本编程--Head/Tail命令详解

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾,看看下面的范例:## ( ...

  7. CnBlog客户端Windows Live Write安装方法

    官方帮助http://space.cnblogs.com/forum/topic/8550 注:如果自动配置没有成功,需要手动配置: a) 在"Type of  weblog that yo ...

  8. 有关javascript的性能优化(合理的管理内存)

    使用具备垃圾收集机制的语言编写程序,开发人员一般不必操心内存管理的问题.但是,Javascript在进行内存管理及收集时面临的问题是有点与众不同.其中最主要的一个问题是分配给Web浏览器的可用内存数量 ...

  9. 线程的2个ID

    我们知道进程ID是操作系统调度的最小单位,有时候根据业务的需要,我们会使用到多线程技术,当创建了多个线程时,也会有一个线程ID,那这个线程ID和进程ID有什么不一样吗? 其中,线程组的线程ID是属于N ...

  10. shopex 小知识

    产品链接: http://www.--/product-172.html 中间的数字代表  sdb_goods 表中 的 goods_id  ... 表示数据库里的产品 id. 分类链接: http: ...