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 ...
随机推荐
- Observer pattern 观察者模式
一.认识观察者模式 我们看看报纸和杂志的订阅是怎么回事: 1.报社的业务就是出版报纸. 2.向某家报社订阅报纸,只要他们有新的报纸出版,就会给你送来,只要你是他们的订户,你就会一直收到报纸. 3.当你 ...
- HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
①HashMap的工作原理 HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象.当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算h ...
- Android下载压缩文件与解压案例
ackage com.example.jsontest.biz; import java.io.BufferedInputStream; import java.io.BufferedOutputSt ...
- 工作中用到的oracle字符串分割整理
oracle部分: 定义类型(用于字符串分割): create or replace TYPE "STR_SPLIT" IS TABLE OF VARCHAR2 (4000); 字 ...
- Bootstrap <基础三十二>模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用 ...
- 安卓自动化测试:Android studio 自带的 Record Espresso Test || [ Appium & (Android studio || Python|| Eclipse ) ]
1.Android studio 自带的 Record Espresso Test https://developer.android.com/studio/test/espresso-test-r ...
- MFC 对话框控件自动布局
MFC 设计界面程序总是不够智能,没有这样,没有那样. 今天为了加强mfc功能,设计了一个自动布局的类,使用非常简单. 原理: 每个控件都有一个矩形区域,矩形区域就是控件在对话框中的显示位置和大小, ...
- ios中文转码的一个奇葩问题
事情是这样的:我要在一个URL中截取一个名为‘vfname’的参数,因为这个参数的值带有中文(转码之前的形式),所以我必须将其转码. URL是这样的: http://devapi.amibaguanl ...
- Git忽略规则及.gitignore规则不生效的解决办法
在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件).这个文件每一行保存了一个匹配的规则例如: # 此为注 ...
- php反射
反射 //反射查找对象方法所在的文件名.$n_func = new ReflectionMethod($obj,$function);$filepath = $n_func->getFileNa ...