shell基本命令

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 21:01   4275   0
1.
查看当前shell
echo $SHELL
env | grep SHELL
ps
2.
查看系统中支持的shell
cat /etc/shells

3.
查看一个目录的所有符号链接
ls -Rl|grep '\-> asm'
ls -Rl|sed "s:[^ ]\{1,\}$:`pwd`/&:"|grep '\->'

在一个目录及其子目录中的文件中查找字符串 a,加上-i忽略大小写
grep -R a /dir
在一个目录及其子目录中查找以.c结尾的文件
find /dir -name '*.c'

4.
一个学习Sed和Awk的小手册
http://www.reddragonfly.org/abscn/sedawk.html

4.bash中$
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=218853&page=7#pid1617953

為了完整起見,我這裡再用一些例子加以說明 ${ } 的一些特異功能:
假設我們定義了一個變量為:
file=/dir1/dir2/dir3/my.file.txt
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/}:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最後一條 / 及其左邊的字串:my.file.txt
${file#*.}:拿掉第一個 . 及其左邊的字串:file.txt
${file##*.}:拿掉最後一個 . 及其左邊的字串:txt
${file%/*}:拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3
${file%%/*}:拿掉第一條 / 及其右邊的字串:(空值)
${file%.*}:拿掉最後一個 . 及其右邊的字串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一個 . 及其右邊的字串:/dir1/dir2/dir3/my
記憶的方法為:
# 是去掉左邊(在鑑盤上 # 在 $ 之左邊)
% 是去掉右邊(在鑑盤上 % 在 $ 之右邊)
單一符號是最小匹配﹔兩個符號是最大匹配。


${file:0:5}:提取最左邊的 5 個字節:/dir1
${file:5:5}:提取第 5 個字節右邊的連續 5 個字節:/dir2


我們也可以對變量值裡的字串作替換:
${file/dir/path}:將第一個 dir 提換為 path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:將全部 dir 提換為 path:/path1/path2/path3/my.file.txt


利用 ${ } 還可針對不同的變數狀態賦值(沒設定、空值、非空值):
${file-my.file.txt} :假如 $file 沒有設定,則使用 my.file.txt 作傳回值。(空值及非空值時不作處理)
${file:-my.file.txt} :假如 $file 沒有設定或為空值,則使用 my.file.txt 作傳回值。 (非空值時不作處理)
${file+my.file.txt} :假如 $file 設為空值或非空值,均使用 my.file.txt 作傳回值。(沒設定時不作處理)
${file:+my.file.txt} :若 $file 為非空值,則使用 my.file.txt 作傳回值。 (沒設定及空值時不作處理)
${file=my.file.txt} :若 $file 沒設定,則使用 my.file.txt 作傳回值,同時將 $file 賦值為 my.file.txt 。 (空值及非空值時不作處理)
${file:=my.file.txt} :若 $file 沒設定或為空值,則使用 my.file.txt 作傳回值,同時將 $file 賦值為 my.file.txt 。 (非空值時不作處理)
${file?my.file.txt} :若 $file 沒設定,則將 my.file.txt 輸出至 STDERR。 (空值及非空值時不作處理)
${file:?my.file.txt} :若 $file 沒設定或為空值,則將 my.file.txt 輸出至 STDERR。 (非空值時不作處理)


6.shell中的include(.)
http://see.xidian.edu.cn/cpp/view/2740.html


7.终端相关
在echo和cat /dev/ttymxc0 之前可以先设置一下/dev/ttymxc0

stty -F /dev/ttymxc0 显示当前设置
stty -F /dev/ttymxc0 115200 波特率115200
stty -F /dev/ttymxc0 -parenb 不校验
stty -F /dev/ttymxc0 parenb -parodd 偶校验 odd
stty -F /dev/ttymxc0 parenb parodd 奇校验 even
stty -F /dev/ttymxc0 -cstopb 一个停止位
stty -F /dev/ttymxc0 cstopb 两个停止位
一般的115200 n 8 1如下:
stty -F /dev/ttymxc0 115200 -parenb -cstopb




守护脚本
#!/bin/bash

cd /

while :

do
        if [ -e "app1" ]
                then
                if [ -z "`pidof app1`" ]
                then
                    date >>app1.log
                    echo "  :start app1">>app1.log
                    ./app1
                fi
        fi
        sleep 5;
done


var=NET_NONE
echo $var
if [ $var = "NET_NONE" -o $var = "NET_WIFI" -o $var = "NET_ETH" ];then
echo $var


elif [ $var = "NET_TELECOM_CDMA" ];then
echo $var


elif [ $var = "NET_UNICOM_4G" ];then
echo $var


elif [ $var = "NET_UNICOM_3G" ];then
echo $var


elif [ $var = "NET_MOBILE_4G" ];then
echo $var


fi

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP