squidclient

squid服务器的客户端管理工具

补充说明

squidclient命令 使用squid服务器的客户端管理工具,它可以查看squid服务器的详细运行信息和管理squid服务器。

语法

1
squidclient(选项)(参数)

选项

1
2
3
4
5
6
7
8
-a:不包含“accept:header”;
-r:强制缓存重新加载URL;
-s:安静模式,不输出信息到标准输出设备;
-h:从指定主机获取url
-l:指定一个本地ip地址进行绑定;
-p:端口号,默认为3128;
-m:指定发送请求的方法;
-u:代理认证用户名。

参数

URL:指定操作缓存中的URL。

squid

squid服务器守护进程

补充说明

squid命令 高性能的Web客户端代理缓存服务器套件“squid”的服务器守护进程。

语法

1
squid(选项)

选项

1
2
3
4
5
6
7
8
9
-d:将指定调试等级的信息发送到标准错误设备;
-f:使用指定的配置文件。而不使用默认配置文件;
-k:向squid服务器发送指令;
-s:启用syslog日志;
-z:创建缓存目录;
-C:不捕获致命信号;
-D:不进行DNS参数测试;
-N:以非守护进程模式运行;
-X:强制进入完全调试模式。

split

分割任意大小的文件

补充说明

split命令 可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

选项

1
2
3
4
5
-b:值为每一输出档案的大小,单位为 byte。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。
-l:值为每一输出档的列数大小。
-a:指定后缀长度(默认为2)。

实例

生成一个大小为100KB的测试文件:

1
2
3
4
[root@localhost split]# dd if=/dev/zero bs=100k count=1 of=date.file
1+0 records in
1+0 records out
102400 bytes (102 kB) copied, 0.00043 seconds, 238 MB/s

使用split命令将上面创建的date.file文件分割成大小为10KB的小文件:

1
2
3
[root@localhost split]# split -b 10k date.file 
[root@localhost split]# ls
date.file xaa xab xac xad xae xaf xag xah xai xaj

文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度:

1
2
3
[root@localhost split]# split -b 10k date.file -d -a 3
[root@localhost split]# ls
date.file x000 x001 x002 x003 x004 x005 x006 x007 x008 x009

为分割后的文件指定文件名的前缀:

1
2
3
[root@localhost split]# split -b 10k date.file -d -a 3 split_file
[root@localhost split]# ls
date.file split_file000 split_file001 split_file002 split_file003 split_file004 split_file005 split_file006 split_file007 split_file008 split_file009

使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件:

1
split -l 10 date.file

spell

对文件进行拼写检查

补充说明

spell命令 对文件进行拼写检查,并把拼写错误的单词输出。

语法

1
spell(参数)

参数

文件:指定需要进行拼写检查的文件。

speedtest-cli

命令行下测试服务器外网速度

补充说明

speedtest-cli 是一个使用python编写的命令行脚本,通过调用speedtest.net测试上下行的接口来完成速度测试,最后我会测试运维生存时间所在服务器的外网速度。项目地址:https://github.com/sivel/speedtest-cli

安装speedtest-cli

speedtest-cli需要在python 2.4-3.4的环境下,安装方法都很简单,自己选择以下最适合你的一种。

pip方式

1
# pip install speedtest-cli

easy_install方式

1
# easy_install speedtest-cli

github+pip方式

1
# pip install git+https://github.com/sivel/speedtest-cli.git

或者

1
2
# git clone https://github.com/sivel/speedtest-cli.git
# python speedtest-cli/setup.py install

下载脚本方式

1
2
# wget -O speedtest-cli https://raw.github.com/sivel/spe ... er/speedtest_cli.py
# chmod +x speedtest-cli

或者

1
2
# curl -o speedtest-cli https://raw.github.com/sivel/spe ... er/speedtest_cli.py
# chmod +x speedtest-cli

直接下载脚本,给予执行权限即可。

用法

1
2
3
4
5
6
7
8
-h, --help       show this help message and exit
--share 分享你的网速,该命令会在speedtest网站上生成网速测试结果的图片。
--simple Suppress verbose output, only show basic information
--list 根据距离显示speedtest.net的测试服务器列表。
--server=SERVER 指定列表中id的服务器来做测试。
--mini=MINI URL of the Speedtest Mini server
--source=SOURCE Source ip address to bind to
--version Show the version number and exit

实例

列出所有在中国的测试服务器:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@li229-122 ~]# speedtest-cli --list | grep China
1185) China Unicom (Changchun, China) [10534.35 km]
3784) China Mobile (Urumqi, China) [10581.15 km]
2667) Beijing Normal University (Beijing, China) [11117.03 km]
2529) Beijing Normal University (Beijing, China) [11117.03 km]
2816) Capital Online Data service (Beijing, China) [11117.03 km]
4354) SXmobile (Taiyuan, China) [11383.17 km]
3973) China Telecom (Lanzhou, China) [11615.43 km]
3633) China Telecom (Shanghai, China) [11983.37 km]
3927) China Mobile Jiangsu Co., Ltd. (Suzhou, China) [11989.27 km]
2461) China Unicom (Chengdu, China) [12213.35 km]
1028) Shepherd Software (Xiamen, China) [12785.57 km]
1628) Xiamen Guangdian Xinxu (Xiamen, China) [12785.57 km]
3891) GZinternet (Guangzhou, China) [13005.36 km]
3871) SZWCDMA (Shenzhen, China) [13059.20 km]
3819) SZU (Shenzhen, China) [13059.20 km]
1536) STC (Hong Kong, China) [13088.37 km]
1890) Telin (Hong Kong, China) [13088.37 km]

结果解释

1
3633) China Telecom (Shanghai, China) [11983.37 km]
1
2
3
4
3633: 服务器id
china telecom:isp,这里是中国电信
shanghai,china :服务器所在地址
11983.37 km:两台服务器地理位置之间距离,我这台机器在美国,和上海相距11983.37公里,很远呐.

外网速度测试

1
2
3
4
5
6
7
8
9
10
[root@li229-122 ~]# speedtest-cli --server=3633 --share
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Linode (173.255.219.122)...
Hosted by China Telecom (Shanghai) [11983.37 km]: 23.603 ms
Testing download speed........................................
Download: 24.84 Mbit/s
Testing upload speed..................................................
Upload: 4.57 Mbit/s
Share results: http://www.speedtest.net/result/3240988007.png

source

在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态。

补充说明

source命令 在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态。

语法

1
source [文件名] [参数]

例子

读取和执行/root/.bash_profile文件。

1
[root@localhost ~]# source ~/.bash_profile

sort

将文件进行排序并输出

补充说明

sort命令 是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。

语法

1
sort(选项)(参数)

选项

1
2
3
4
5
6
7
8
9
10
11
12
-b:忽略每行前面开始出的空格字符;
-c:检查文件是否已经按照顺序排序;
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;
-f:排序时,将小写字母视为大写字母;
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;
-m:将几个排序号的文件进行合并;
-M:将前面3个字母依照月份的缩写进行排序;
-n:依照数值的大小排序;
-o<输出文件>:将排序后的结果存入制定的文件;
-r:以相反的顺序来排序;
-t<分隔字符>:指定排序时所用的栏位分隔字符;
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

参数

文件:指定待排序的文件列表。

实例

sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@[mail text]# cat sort.txt
aaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5
eee:50:5.5

[root@mail text]# sort sort.txt
aaa:10:1.1
bbb:20:2.2
ccc:30:3.3
ddd:40:4.4
eee:50:5.5
eee:50:5.5

忽略相同行使用-u选项或者uniq:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@mail text]# cat sort.txt
aaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5
eee:50:5.5

[root@mail text]# sort -u sort.txt
aaa:10:1.1
bbb:20:2.2
ccc:30:3.3
ddd:40:4.4
eee:50:5.5

或者

[root@mail text]# uniq sort.txt
aaa:10:1.1
ccc:30:3.3
ddd:40:4.4
bbb:20:2.2
eee:50:5.5

sort的-n、-r、-k、-t选项的使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[root@mail text]# cat sort.txt
AAA:BB:CC
aaa:30:1.6
ccc:50:3.3
ddd:20:4.2
bbb:10:2.5
eee:40:5.4
eee:60:5.1

#将BB列按照数字从小到大顺序排列:
[root@mail text]# sort -nk 2 -t: sort.txt
AAA:BB:CC
bbb:10:2.5
ddd:20:4.2
aaa:30:1.6
eee:40:5.4
ccc:50:3.3
eee:60:5.1

#将CC列数字从大到小顺序排列:
[root@mail text]# sort -nrk 3 -t: sort.txt
eee:40:5.4
eee:60:5.1
ddd:20:4.2
ccc:50:3.3
bbb:10:2.5
aaa:30:1.6
AAA:BB:CC

# -n是按照数字大小排序,-r是以相反顺序,-k是指定需要爱排序的栏位,-t指定栏位分隔符为冒号

-k选项的具体语法格式:

-k选项的语法格式:

1
2
3
FStart.CStart Modifie,FEnd.CEnd Modifier
-------Start--------,-------End--------
FStart.CStart 选项 , FEnd.CEnd 选项

这个语法格式可以被其中的逗号,分为两大部分, Start 部分和 End 部分。Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似n和r的选项部分。我们重点说说Start部分的FStartC.StartC.Start也是可以省略的,省略的话就表示从本域的开头部分开始。FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。同理,在End部分中,你可以设定FEnd.CEnd,如果你省略.CEnd,则表示结尾到“域尾”,即本域的最后一个字符。或者,如果你将CEnd设定为0(零),也是表示结尾到“域尾”。

从公司英文名称的第二个字母开始进行排序:

1
2
3
4
5
$ sort -t ' ' -k 1.2 facebook.txt
baidu 100 5000
sohu 100 4500
google 110 5000
guge 50 3000

使用了-k 1.2,表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。你会发现baidu因为第二个字母是a而名列榜首。sohu和 google第二个字符都是o,但sohu的h在google的o前面,所以两者分别排在第二和第三。guge只能屈居第四了。

只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序:

1
2
3
4
5
$ sort -t ' ' -k 1.2,1.2 -nrk 3,3 facebook.txt
baidu 100 5000
google 110 5000
sohu 100 4500
guge 50 3000

由于只对第二个字母进行排序,所以我们使用了-k 1.2,1.2的表示方式,表示我们“只”对第二个字母进行排序。(如果你问“我使用-k 1.2怎么不行?”,当然不行,因为你省略了End部分,这就意味着你将对从第二个字母起到本域最后一个字符为止的字符串进行排序)。对于员工工资进行排 序,我们也使用了-k 3,3,这是最准确的表述,表示我们“只”对本域进行排序,因为如果你省略了后面的3,就变成了我们“对第3个域开始到最后一个域位置的内容进行排序” 了。

smbpasswd

samba用户和密码管理工具

补充说明

smbpasswd命令 属于samba套件,能够实现添加或删除samba用户和为用户修改密码。

语法

1
smbpasswd(选项)(参数)

选项

1
2
3
4
5
6
-a:向smbpasswd文件中添加用户;
-c:指定samba的配置文件;
-x:从smbpasswd文件中删除用户;
-d:在smbpasswd文件中禁用指定的用户;
-e:在smbpasswd文件中激活指定的用户;
-n:将指定的用户的密码置空。

参数

用户名:指定要修改SMB密码的用户。

smbclient

交互方式访问samba服务器

补充说明

smbclient命令 属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源。

语法

1
smbclient(选项)(参数)

选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-B<ip地址>:传送广播数据包时所用的IP地址;
-d<排错层级>:指定记录文件所记载事件的详细程度;
-E:将信息送到标准错误输出设备;
-h:显示帮助;
-i<范围>:设置NetBIOS名称范围;
-I<IP地址>:指定服务器的IP地址;
-l<记录文件>:指定记录文件的名称;
-L:显示服务器端所分享出来的所有资源;
-M<NetBIOS名称>:可利用WinPopup协议,将信息送给选项中所指定的主机;
-n<NetBIOS名称>:指定用户端所要使用的NetBIOS名称;
-N:不用询问密码;
-O<连接槽选项>:设置用户端TCP连接槽的选项;
-p<TCP连接端口>:指定服务器端TCP连接端口编号;
-R<名称解析顺序>:设置NetBIOS名称解析的顺序;
-s<目录>:指定smb.conf所在的目录;
-t<服务器字码>:设置用何种字符码来解析服务器端的文件名称;
-T<tar选项>:备份服务器端分享的全部文件,并打包成tar格式的文件;
-U<用户名称>:指定用户名称;
-w<工作群组>:指定工作群组名称。

参数

smb服务器:指定要连接的smb服务器。

实例

列出某个IP地址所提供的共享文件夹

1
smbclient -L 198.168.0.1 -U username%password

像ftp客户端一样使用smbclient

1
smbclient //192.168.0.1/tmp  -U username%password

执行smbclient命令成功后,进入smbclient环境,出现提示符:smb:/>

这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。

直接一次性使用smbclient命令

1
smbclient -c "ls"  //192.168.0.1/tmp  -U username%password

1
2
smbclient //192.168.0.1/tmp  -U username%password
smb:/>ls

功能一样的。

创建一个共享文件夹

1
smbclient -c "mkdir share1" //192.168.0.1/tmp -U username%password

如果用户共享//192.168.0.1/tmp的方式是只读的,会提示NT_STATUS_ACCESS_DENIED making remote directory /share1

slocate

命令查找文件或目录

补充说明

slocate命令 是一个命令查找文件或目录。slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。

语法

1
slocate [-u][--help][--version][-d <目录>][查找的文件]

选项

1
2
3
4
-d<目录>或--database=<目录>  指定数据库所在的目录。
-u  更新slocate数据库。
--help  显示帮助。
--version  显示版本信息。

实例

使用指令”slocate”显示文件名中含有关键字”fdisk”的文件路径信息,输入如下命令:

1
$ slocate fdisk #显示文件名中含有fdisk关键字的文件的路径信息

执行以上命令后,指令执行的输出信息如下:

1
2
3
4
5
6
7
8
$ slocate fdisk #显示文件名中含有fdisk 关键字的文件的路径信息  
/root/cfdisk #搜索到的文件路径列表
/root/fdisk
/root/sfdisk
/usr/include/grub/ieee1275/ofdisk.h
/usr/share/doc/util-Linux/README.cfdisk
/usr/share/doc/util-Linux/README.fdisk.gz
/usr/share/doc/util-Linux/examples/sfdisk.examples.gz