shell命令
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命令的更多相关文章
- Hadoop Shell命令大全
hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
- 在程序中执行shell命令
在linux系统下的操作中我们会经常用到shell命令来进行,一开始学习进程的时候对于shell命令也进行了思考,认为shell命令就是一个进程的外壳,经过了后来的学习对于这一点也有了更多的认识. 用 ...
- Linux远程执行Shell命令或脚本
## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...
- HBase基本shell命令
HBase基本shell命令 以下shell命令都是经过测试,正常展示,若有不足,还望指点! 1.创建表 create ‘表名称’,‘列族名称1’,‘列族名称1’create 'test_M_01', ...
- Linux SHELL 命令入门题目答案(一)
1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...
- Linux SHELL 命令入门题目(一)
新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...
- shell命令获取最新文件的名称
最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...
- 【转】Hadoop FS Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...
- [蟒蛇菜谱] Python封装shell命令
# -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLo ...
随机推荐
- 2014 NOIP 赛前自我整理提醒。
空谈WA,实干AC. 所以作为一个就要上战场的OIer ,实干当然是最重要,但刷题不在多,要点牢记是关键,虽然本渣没记住多少,但还是列几点值得注意的小点. 1.战场上容不得失误. 对于每日都要敲键盘的 ...
- Bootstrap <基础二十二>超大屏幕(Jumbotron)
Bootstrap 支持的另一个特性,超大屏幕(Jumbotron).顾名思义该组件可以增加标题的大小,并为登陆页面内容添加更多的外边距(margin).使用超大屏幕(Jumbotron)的步骤如下: ...
- UITableViewCell
#import "ContactListTableViewController.h" #import "Contact.h" #import "Con ...
- powershell开源新闻及简介
作者:PowerShll传教士 问:微软的PowerShell脚本语言已经开源了 ? 答:绝对真的!已经! 问:源码在哪? 答:微软.net源码网站. http://referencesource ...
- druid.properties的配置
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://NoOne:3306/eyes<!--需修改--> username=root ...
- 设计模式之observer and visitor
很长时间一直对observer(观察者)与visitor(访问者)有些分不清晰. 今天有时间进行一下梳理: 1.observer模式 这基本就是一个通知模式,当被观察者发生改变时,通知所有监听此变化的 ...
- The guard was taken to hospital in a critical condition.
The Prince George's County Fire Department said the guard was taken to hospital in a critical condit ...
- 柏克EPS应急电源签约联达大厦保安全
近日,柏克EPS应急电源成功签约佛山市联达大厦,保障大厦电力安全. 佛山市联达大厦占地6674㎡,总建筑面积约4.6万㎡,设有两层地下室,提供201个停车位,地面29层.大厦大楼分为主楼和副楼,主楼地 ...
- sql语句格式化数字(前面补0)、替换字符串
以下是详细分析: 1.select power(10,3)得到1000(即:10的3次方) 2.select cast(1000+33 as varchar) 将1000转换类型(即:将int转化成v ...
- 怎样用SQL语句查询一个数据库中的所有表?
怎样用SQL语句查询一个数据库中的所有表? --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...