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. daydayup3 codeforces144C

    上古的c还是很简单的,一直逗比忘记加EOF了,直到看了数据才发现 题意:给你两个字符串a,b,求问字符串a里有多少个子串排列后可以生成字符串b,‘?’可以替换为任意小写字母 思路:统计第一个子字符串小 ...

  2. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  3. SYN攻击

    一.TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服 ...

  4. MRPT笔记——MRPT在VS2013中的配置

    Mobile Robot Programming Toolkit (MRPT)是一个跨平台的.开源的C++库,旨在帮助机器人研究员设计和实现SLAM.机器视觉和运动规划(避障)的算法. MRPT为移动 ...

  5. c——I/O Multiplexing笔记

    1. select第一个参数为最大FD(int)+1,因为虽然select参数里有三个set,但分配到的fd值是不会重复的,当select检查fd可用时(可读或可写或异常),会遍历进程fd表,这时遍历 ...

  6. Qt中2D绘图问题总结(一)----------基本的绘制与填充

    刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...

  7. Octave安装和使用

    1. Installer  Download octave4.0 gnuplot 5.0.4 2. Installation (1) Octave 安装Octave时提示发现系统装有Win8,继续安装 ...

  8. SSZIPArchive的相关用法截图

  9. Learning Bayesian Network Classifiers by Maximizing Conditional Likelihood

    Abstract Bayesian networks are a powerful probabilistic representation, and their use for classifica ...

  10. git clone错误

    git clone错误 Initialized empty Git repository in ***/.git/ error: The requested URL returned error: 4 ...