linux 及shell 学习总结
来源:互联网 发布:播放电影卡顿ubuntu 编辑:程序博客网 时间:2024/05/21 09:07
ls -l |grep '^...s'
ls -l |grep '^...s..s'
二。umask值中的数字。对于文件来说,这一数字的最大值分别是6,
系统不允许你在创建一个文本文件时就赋予它执行权限
三。find logs -type f -mtime +5 -exec rm {} \; 特别注意{} \ 间有个空格
find . -perm 755 //是绝对查找,即只有当文件或目录的权限为755 是才会找到
find . -perm -755 //相对查找,即只要755中二进制中为1的地方相同即可,755,775,777 的权限都是OK的。
find . -path "*/.svn" -prune -o -print //忽略.svn目录,注意是放在-prune前面
在除dir0、dir1及子目录以外的目录下查找txt后缀文件
find ./ \( -path './dir0*' -o -path './dir1*' \) -a -prune -o -name *.txt -print 注意:\( 和\) 两边都要有空格
find . -type f ////会显示当前路径下的所有文件,而且会带路径名,如:./mydir/filename.xxx
find . -maxdepth 1 -type f ///// 只显示当前目录下的正则文件,maxdepth, 还有mindepth 两个合用则功能更强 如 ./file.txt,
find . \( -name '*.*' -not -name 'exclude_file.txt' \) /////////////将当前目录下所有*.*文件或目录找出来,但是除了exclude_file.txt文件
find . -name 'common_file.txt' |args cat >>common_file_all.txt ////将当前目录下所有名为common_file.txt文件的内容合入到common_file_all.txt中
四。myPara="testonly" 注意在变量等号的两侧不要有空格。
if [ -d $mydir ] 或 if [ ! -d $mydir -o ! -d $ANOTHER ]注意在[]的两侧要有空格。
取得文件中的内容到变量:cat myfile.txt |read tmpPara
取得程序名为 `basename $0`
设置从终端读取时:
如:dbaccess $SMPDBNAME -<<EOF >/dev/null 2>&1
.........
......
EOF
模拟终端输入(特别注意2>&1后面不可以有其它,而且要回车):
dbaccess $SMPDBNAME -<<EOF >/dev/null 2>&1
....other sql statements
EOF
五。循环的处理:
第一种:
如:fileall=`ls -l $FILETYPE`
echo $fileall |while read file
do
.....
.....
done
第二种:从文件中读取:
Addressfile="./myfiles.list"
do while read a ,b ,c
.....
....
done <Addressfile #注意格式,是从文件中读取。
第三种:
for namedir in $(ls)
do
if [ -d "$namedir" ] ; then
echo "this is a dir"
fi
done
六。compress -f myzerofile //compress 命令有时候对压缩后文件变大的文件拒绝压缩,注意加上f后,才可以。七。输入与输出
a.out >outfile 2>&1 //表示标准输出定位到outfile,标准错误(2)定位到标准输出(即文件outfile)中
a.out 2>1& >outfile; //表示标准错误定位到标准输出(即显示器中),而标准输出则定位到outfile中。
filter file1 | cat file2 - file3 |lpr
说明:cat 先读入file2,再读标准输入(此时即filter file2,- 即表示标准输入) ,再读入file3,最后送到lpr打印。
以上的SHELL写法有缺陷,即- 也可能是命令的选项。
以下写法功能相同但是更好理解:filter file1 | cat file2 /dev/fd/0 file3 |lpr
八。lsof -i:6088 //注,后面的6088是要查询的端口号,//lsof需要安装, rmsock也可,但是需要root权限
netstat -anp |grep myprogram //查看程序打开了哪个端口号
lsof -i |grep myprogram //也可以查看程序打开了哪个端口号
九。在终端中输入SHELL脚本执行,与在xxx.sh中不一样,需要以";"号分隔,如:
>while echo "begin do:" ;do cat file1>>file2; cat file2>>file1; done;
注意以上的各";"在SHELL脚本中是不需要的。但是在终端直接写执行时则需要。
十。SHELL脚本中,$*,$@ 的区别:当加上双引号时,即"$*","$@"(或者在双引号内)$*会将整个的输入参数外面加上双引号,
而$@则是对每个参数加上双引号,没有其它任何区别。
十一。#sysctl -a |grep port 得到系统分配的端口范围。//即以客户端连接服务器时的端口范围
十二。同时不可以生成临时文件,将配置文件中的内容修改:
sed -i 's/"sslcon_type"=dw:00000000/"sslcon_type"=dw:00000002/' myconfig.cfg
十三。自动登录等:-n意思是不读取默认.netrc文件中的设定
#!/bin/bash
/usr/bin/ftp -n <<EOF
open 172.16.16.42
user zhang zhang
bin
lcd /opt/
prompt
get $1
close
by
EOF
exit 0
十四。eval的常用用法:
将文件中的两列设置成变量:
如文件datafile中有如下两列:
PC 486
COMPUTER DELL
用下面的:
while read NAME TYPE
do
eval `echo "$NAME=$TYPE"`
done < datafile
十五:
sort $MYFILE_LIST -o $MYFILE_LIST //// 参数-o 表示直接对本文件排序
sed -i '/.\/abc.txt/d' list.txt //// 参数-i 表示直接对本文件操作, 将文件中含有./abc.txt的行删除
mkdir tempDir
tar -xvf myfile.tar.gz -C tempDir //// -C 参数表示将解压后的文件和目录放到 tempDir中。
十六:
uniq 将文件中的重复行去掉,
local FmtDirName=${newFmtName%.tar.gz} ////作用是将newFmtName变量去掉后缀.tar.gz再赋给局部变量FmtDirName
十七。linux终端下,可以用上下箭头键得到刚才的命令,也可以先输入部分开头后按 pageup/pagedown键得到匹配的历史命令
- linux 及shell 学习总结
- linux shell学习总结(1)...
- Linux shell 特殊符号学习总结
- Linux Shell 编程学习总结
- linux及shell相关学习
- linux shell 知识点及问题总结
- linux shell实战 笔记学习及学习之什么是shell
- Linux Shell脚本攻略学习总结:一
- Linux Shell脚本攻略学习总结:二
- Linux Shell脚本攻略学习总结:三
- [Linux]Shell快速学习小总结[TBD]
- linux shell 学习总结(1)-----准备工作
- 【Linux】Shell脚本学习总结篇
- linux学习、命令及总结
- Linux学习总结(26)——Shell常用命令总结
- 小白之《linux常用命令及shell基础总结》
- Awk 命令学习总结、AWk命令系列学习(linux shell)
- Awk 命令学习总结、AWk命令系列学习(linux shell)
- JAVA Database SQL
- 在Perl程序中显示进度条之多姿多彩的自写代码
- Disable Remote Desktop connection
- FreeType 用法
- MATLAB作图调格式代码
- linux 及shell 学习总结
- mysql新建用户和赋予权限
- ArcGIS Server附带例子--回调原理初探
- Android - How-to Rebuild gdbserver
- 157. Faults are thick where love is thin. 一朝情意淡,样样不顺眼
- Jetty实战之 嵌入式Jetty集成Spring运行
- 【命名空间的一个疑问】pDlg = ::AfxGetMainWnd(); 像这样限定符"::" 前面没有命名空间名的情况,是什么意思?我记得好像是全局的意思,不确定。
- WEB开发中合理选择图片格式
- .NET中使用自定义缓存依赖