正在浏览标签为 Linux 的文章

1、$$变量保存所运行的当前进程的进程号。$0 代表脚本文件名。$# 代表参数的个数、$_变量中存放上一条命令中最后一个参数的值


2、trap 命令可以捕获控制台信号
答:利用trap可以做Ctrl+C结束脚本时需要做的清理操作如:trap "ClearPID" 1 2 3 15


3、tee将信息输出到多个文件
答:echo "ok" | tee -a a.txt >>b.txt


4、查看本机tcp连接状态及数目统计
答:netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | sort -n -k 2 -r


5、IFS变量
答:
IFS用作shell指定的缺省域分隔符。原理上讲域分隔符可以是任意字符,但缺省通常为空格、新行或tab键。IFS在分隔文件或变量中各域时很有用。下面的例子将IFS设置为冒号,然后echo $PATH变量,给出一个目录分隔开来的可读性很强的路径列表。


6、while循环中最简单写死循环的方法为
答:

while :
do
do someting
done

7、 查出目前 ip_conntrack 记录最多的前五名 IP
答:cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 5


8、linux bash中暂时屏蔽 alias
答:\ 对,正是这个斜线可以暂时屏蔽alias的定义,如:cp -r 就不会再有是否覆盖的提示了。


9、在文件中查找指定内容并且显示该内容,并不是显示内容所在的行
答:利用sed -o参数就可以解决问题了


10、创建/删除多个连续的文件(大括号的应用)
答:利用大括号({})来搞定,如:

$ touch Front-{A,B,C}-Back
$ ls -1
Front-A-Back
Front-B-Back
Front-C-Back
$ echo Number_{1..5}
Number_1 Number_2 Number_3 Number_4 Number_5
$ echo {Z..A}
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
$ echo a{A{1,2},B{3,4}}b
aA1b aA2b aB3b aB4b
$ mkdir {2007..2009}-0{1..9} {2007..2009}-{10..12}
$ ls
2007-01  2007-07  2008-01  2008-07  2009-01  2009-07
2007-02  2007-08  2008-02  2008-08  2009-02  2009-08
2007-03  2007-09  2008-03  2008-09  2009-03  2009-09
2007-04  2007-10  2008-04  2008-10  2009-04  2009-10
2007-05  2007-11  2008-05  2008-11  2009-05  2009-11
2007-06  2007-12  2008-06  2008-12  2009-06  2009-12

11、shell中使用(())进行数字运算
如:

#!/bin/bash
echo -n "how old are you?"
read age
echo "Wow,in $((60-age)) years ,you'll be 60!"

12、shell中读取指定的配置文件并对变量进行赋值
# shell脚本中读取配置文件并做赋值操作

while read NAME TYPE
do
if [ "$NAME" == "" ] || [ "`echo $NAME$TYPE| grep '#'`" != "" ] ;then
continue
else
eval `echo "${NAME}=${TYPE}"`
fi
done

# config.shc 配置文件内容
====== config.shc ========
# 注释内容
变量名 值
===========================
注意:配置文件中的变量名和值之间用Tab分格!


本文最后更新于2010.05.27


原创文章,转载请注明: 转自 http://salogs.com

tune2fs

抢沙发

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:

-c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。
-i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。
-l:显示文件系统的很多参数。
-j:转换为ext3文件系统。
-m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比
-o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数

通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查。

tune2fs -m 10 /dev/sda1
tune2fs -o acl,user_xattr /dev/sda1
tune2fs -i 0 -c0 /dev/sda1

dumpe2fs

抢沙发

显示 ext2/ext3文件系统信息

[root@experiment ~]# dumpe2fs /dev/sda2 | less
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name:   /1
Last mounted on:          <not available>
Filesystem UUID:          9c2a6086-3305-4709-a442-c27be9cb57d2
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              5124480
Block count:              5120718
Reserved block count:     256035
Free blocks:              2684471
Free inodes:              4946305
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1022
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         32640
Inode blocks per group:   1020
Filesystem created:       Tue Aug  4 23:59:44 2009
Last mount time:          Mon Sep 28 16:35:32 2009
Last write time:          Mon Sep 28 16:35:32 2009
Mount count:              12
Maximum mount count:      -1
Last checked:             Tue Aug  4 23:59:44 2009
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
First orphan inode:       3264050
Default directory hash:   tea
Directory Hash Seed:      ed55120f-56fa-4e8b-b004-b65acd433aa0
Journal backup:           inode blocks
Journal size:             128M

Group 0: (Blocks 0-32767)
Primary superblock at 0, Group descriptors at 1-2
Reserved GDT blocks at 3-1024
Block bitmap at 1025 (+1025), Inode bitmap at 1026 (+1026)
Inode table at 1027-2046 (+1027)

...

...

...

转载

      Curl也是Linux下不错的命令行下载工具,小巧、高速,唯一的缺点是不支持多线程下载。在http://curl.haxx.se/download/curl-7.14.0.tar.gz下载最新版本。

下载后便可使用如下命令编译安装:
#tar zxvf curl-7.14.0.tar.gz
#cd curl-7.14.0/
#./configure
#make
#make test
#make install

Curl使用格式如下:
#curl [选项][下载地址] Curl典型下载如下:
#curl -O http://10.1.27.10/~kennycx/tools/lumaqq_2004-linux_gtk2_x86_with_jre.tar.gz
使用Curl下载一个文件并保存到当前目录。此外,Curl虽然不支持多线程下载,但他可同时下载多个文件或下载文件的某一部分,可使用如下命令实现:
#curl -r 0-199 http://www.netscape.com/ 获得文件的前200 bytes。
对于常用的代理下载Curl也可轻松实现,具体操作如下:
#curl -x 10.1.27.10:1022 ftp://ftp.funet.fi/README
使用代理地址为10.1.27.10端口为1022的代理服务器下载一个文件。
#curl -U user:passwd -x 10.1.27.10:1022 ftp://ftp.funet.fi/README
如果代理服务器需要特别的验证,则需要在user:passwd处输入合法的帐号和密码。
以上部分来源于:
http://www.phpv.net/article.php/1546
------------
使用 cURL 度量 Web 站点的响应时间
$curl -o /dev/null -s -w %{time_connect}:%{time_starttransfer}:%{time_total} http://www.chinaunix.net
0.081:0.272:0.779
通过 -o 参数发送到 /dev/null。 -s 参数去掉所有状态信息。-w参数让 curl 写出列出的计时器的状态信息:
time_connect     建立到服务器的 TCP 连接所用的时间
time_starttransfer     在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
time_total       完成请求所用的时间
这些计时器都相对于事务的起始时间,甚至要先于 Domain Name Service(DNS)查询。
因此,在发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是 0.272 - 0.081 = 0.191 秒。
客户机从服务器下载数据所用的时间是 0.779 - 0.272 = 0.507 秒。