正在浏览 Linux 命令 里的文章

mke2fs

抢沙发

mke2fs(make ext2 file system)

功能说明:建立ext2文件系统。

语  法:
mke2fs [-cFMqrSvV] [-b <区块大小>][-f <不连续区段大小>][-i <字节>][-N <inode数>] [-l <文件>][-L <标签>][-m <百分比值>][-R=<区块数>][ 设备名称][区块数]

补充说明:mke2fs可建立Linux的ext2文件系统。

参  数:
-b<区块大小>   指定区块大小,单位为字节。
-c   检查是否有损坏的区块。
-f<不连续区段大小>   指定不连续区段的大小,单位为字节。
-F   不管指定的设备为何,强制执行mke2fs。
-i<字节>   指定"字节/inode"的比例。
-N<inode数>   指定要建立的inode数目。
-l<文件>   从指定的文件中,读取文件西中损坏区块的信息。
-L<标签>   设置文件系统的标签名称。
-m<百分比值>   指定给管理员保留区块的比例,预设为5%。
-M   记录最后一次挂入的目录。
-q   执行时不显示任何信息。
-r   指定要建立的ext2文件系统版本。
-R=<区块数>   设置磁盘阵列参数。
-S   仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap。
-v   执行时显示详细信息。
-V   显示版本信息。

文档更新时间:2009年7月17日 15:28:00

echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

参 数:-n 不要在最后自动换行

-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般

文字输出:

\a 发出警告声;
\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

--help 显示帮助

--version 显示版本信息

高级应用

echo 字体颜色和背景颜色
-e enable interpretation of the backslash-escaped characters listed below
字背景颜色范围:40----49
40:黑
41:深红

42:绿

43:黄色

44:蓝色

45:紫色

46:深绿

47:白色
字颜色:30-----------39
image 
======================ANSI控制码的说明===========================
\e[0m 关闭所有属性
\e[1m 设置高亮度

\e[4m 下划线

\e[5m 闪烁

\e[7m 反显

\e[8m 消隐

\e[30m -- \e[37m 设置前景色

\e[40m -- \e[47m 设置背景色

\e[nA 光标上移n行

\e[nB 光标下移n行

\e[nC 光标右移n行

\e[nD 光标左移n行

\e[y;xH设置光标位置

\e[2J 清屏

\e[K 清除从光标到行尾的内容

\e[s 保存光标位置

\e[u 恢复光标位置

\e[?25l 隐藏光标

\e[?25h 显示光标

例子
# echo -e "\e[41;37m hello world \e[0m"

hello world

其中41的位置代表底色, 36的位置是代表字的颜色

man pkill or pgrep

抢沙发

说明
pgrep, pkill - 通过名称或其他属性查找进程ID,并对这些进程ID发送信号量

命令使用

pgrep [-flvx] [-d delimiter] [-n|-o] [-P ppid,...] [-g pgrp,...]
[-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
[-t term,...] [pattern]
 
pkill [-signal] [-fvx] [-n|-o] [-P ppid,...] [-g pgrp,...]
[-s sid,...] [-u euid,...] [-U uid,...] [-G gid,...]
[-t term,...] [pattern]

描述

pgrep 可以找出但前运行进程的ID号。通过完全匹配的程序名来获得给定程序名称的进程ID或ID列表,例如:
 
pgrep -u root sshd
 
列出进程名为sshd并且拥有者为root的进程ID。
 
pgrep -u root,daemon
 
列出进程拥有者为root或daemon的进程ID。
 
pkill  将会发送指定的信号量到每一个在标准输出设备中列出的进程ID。信号量的定义通kill命令。

命令选项

-d 分隔符
设置在输出显示时每个进程ID之间的分隔符
(默认为回车换行).  (pgrep 可用.)
 
-f 当我想找一个完成的命令时需要使用给参数。也就是说想查找完整的命令。如下:
pgrep -f "/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg"
 
-g pgrp,...
列出组ID为给定数字的进程ID。进程组0被解释为pgrep或pkill自己的进程组。
 
-G gid,...
列出用户给出数字的进程ID。可以使用数字或字符
 
-l 列出进程ID的名称。 (pgrep 可用)
 
-n 仅选择最新的进程 (也就是最近启动的) 
 
-o 仅选择最旧的进程 (最早启动的)
 
-P ppid,...
Only match processes whose parent process ID is listed.
 
-s sid,...
Only  match  processes whose process session ID is listed.  Ses-
sion ID 0 is translated into pgrep’s or pkill’s own session  ID.
 
-t term,...
Only  match processes whose controlling terminal is listed.  The
terminal name should be specified without the "/dev/" prefix.
 
-u euid,...
Only match processes whose effective user ID is listed.   Either
the numerical or symbolical value may be used.
 
-U uid,...
Only  match  processes whose real user ID is listed.  Either the
numerical or symbolical value may be used.
 
-v     否定匹配.
 
-x     仅匹配非给定名称的进程。
 
-signal
将信号量发送给每一个匹配的进程。可以使用数字或信号量名称(pkill  可用)

EXAMPLES

Example 1: 查找名为daemon的进程ID:
 
unix$ pgrep -u root named
 
Example 2: 使syslog重新读取配置文件:
 
unix$ pkill -HUP syslogd
 
Example 3: 显示所有xterm进程的详细信息:
 
unix$ ps -fp $(pgrep -d, -x xterm)
 
Example 4: 调节所有netscape进程的的优先级:
 
unix$ renice +4 ‘pgrep netscape‘

退出状态

0      一个或多个进程匹配所给条件。
 
1      没有进程匹配。
 
2      命令行语法错误。
 
3      致命错误: 如内存溢出等.

注意
进程名限制为15个字符。使用-f参数来扩展该限制。

运行pgrep或pkill进程时不会将自己算作匹配项。

附录

代号

名称

内容

1

SIGHUP

启动被终止的程序,可让该 PID 重新读取自己的配置文件,类似重新启动

2

SIGINT

相当于用键盘输入 [ctrl]-c 来中断一个程序的进行

9

SIGKILL

代表强制中断一个程序的进行,如果该程序进行到一半, 那么尚未完成的部分可能会有『半产品』产生,类似 vim会有 .filename.swp 保留下来。

15

SIGTERM

以正常的结束程序来终止该程序。由于是正常的终止, 所以后续的动作会将他完成。不过,如果该程序已经发生问题,就是无法使用正常的方法终止时, 输入这个 signal 也是没有用的。

17

SIGSTOP

相当于用键盘输入 [ctrl]-z 来暂停一个程序的进行

2009.03.24
      在配置各个网络服务的时候,由于各个服务的配置不同,导致了其衍生出来的文件放置位置也很无序。
例如:nginx ,在源码编译完成后会在prefix目录(编译时指定Prefix=/usr/local/nginx)中生成几
个其要用到的目录,如logs、conf、html、sbin,这些目录根据其名称就可以判断出是用来放置什么
文件的。这样看起来虽然说很有调理,但如果我编译安装的程序很多,都放到了/usr/local目录下了
那么各个服务都有log文件,都有pid文件。如果我要查找的话还必须到每个服务目录的相应目录中去
查找,很不方便。还有如果log文件很大的话也会很占用/usr目录(分区空间)。RedHat和CentOS的发
行版本中,推荐将/var 和 /usr 单独分区的。这是因为发行版本中将各个程序的目录分配得很合理。
下面列出了发行版本中一些默认的目录及其作用:

/etc/        所有的服务关于配置相关的文件都在/etc目录中,如apache:/etc/httpd ssh:/etc/ssh
/var/log    各个程序的log文件存放位置
/var/run    各个程序的pid文件

这样做的目的是为了便于管理,而且有利于磁盘空间的有效利用。那有些人又会说了,如果我编译安
装的话,各个目录都在我的prefix目录中,我进到这个目录中很容易的查看该服务的相关文件如log,
pid文件等。那我如何才能既便于管理,又看起来在同一个prefix目录中呢。有个好办法,那就是利用
连接,我将系统中默认的公共log路径连接到我程序的prefix目录中就能解决这个问题了。事实上操作
系统的发行版本中也就是这么做的。如apache,我到apache目录看一眼:
[root@myvmm ~]# ll /etc/httpd/
total 16
drwxr-xr-x 2 root root 4096 Mar 24 09:25 conf
drwxr-xr-x 2 root root 4096 Mar 23 16:53 conf.d
lrwxrwxrwx 1 root root   19 Jan 10 12:21 logs -> ../../var/log/httpd
lrwxrwxrwx 1 root root   27 Jan 10 12:21 modules -> ../../usr/lib/httpd/modules
lrwxrwxrwx 1 root root   13 Jan 10 12:21 run -> ../../var/run

呵呵,看到了吧,它就是将系统的专属功能目录连接到了自己目录下,这样在apahce配置文件的时候
也就可以直接写连接路径了,而不必去写那些路径的绝对路径了,可能你还不是很明白,看看apache
的关于pid和log文件的设置就清楚了:

[root@myvmm ~]# vi /etc/httpd/conf/httpd.conf
PidFile run/httpd.pid
ErrorLog logs/error_log
CustomLog logs/access_log combined

apache 关于pid,log文件的位置是直接写的 目录/文件名 的形式。由于run,logs目录是与conf同级
别的,所以这里就直接写了 run/httpd.pid;logs/error_log 等。经过实践绝对不能将目录修改为../run/
的形式,如果这样的话apache会找不到路径!切忌。

这里只例举了apahce的例子,不同的程序配置也不同,但规则是这样的。配置也就离不开这个框框了。

转载

      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 秒。