极湖

无不用其“极”

Subscribe to RSS feed

Posts tagged with "Command"

CentOS 时区设置

, ,

第一步
cp /usr/share/zoneinfo/{时区名} /etc/localtime

第二步
vi /etc/sysconfig/clock
ZONE="{时区名}"
UTC=true
ARC=false


第三步
yum install ntp
ntpdate us.pool.ntp.org


例1)日本东京
cp /usr/share/zoneinfo/Japan /etc/localtime
vi /etc/sysconfig/clock
ZONE="Asia/Tokyo"


例2)中国上海
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
vi /etc/sysconfig/clock
ZONE="Asia/Shanghai"

Linux 日文编码转换命令 nkf 用法

, ,

基本命令格式:
$ nkf 参数 文件名 [> 输出文件名]

通过管道使用(例):
$ cat 文件名 | nkf 参数 [> 输出文件名]

常用参数:
-j           : 转换为 JIS 编码(ISO-2022-JP),默认
-e           : 转换为 EUC 编码
-s           : 转换为 Shift-JIS 编码
-w           : 转换为 UTF-8 编码(无BOM)
-Lu          : 转换为 unix 换行格式(LF)
-Lw          : 转换为 windows 换行格式(CRLF)
-Lm          : 转换为 macintosh 换行格式(CR)
-g(--guess)  : 自动判断编码并显示
--version    : 显示版本
--help       : 显示帮助

grep 的复合条件检索

, ,

单个条件的 grep 检索命令很简单:

grep pattern1 textfile

以上命令也是最常用的形式。

复合条件的检索就不那么简单,因此有必要整理一下。

● AND条件
grep pattern1 textfile | grep pattern2

● OR条件
grep "pattern1\|pattern2" textfile
grep -e pattern1 -e pattern2 textfile

● 除外(AND)
grep -v "pattern1\|pattern2" textfile

● 常用参数
-i 不区分大小写
-l 只列出符合条件的文件名
-n 显示行号
-v 列出不符合条件的行 
--color 给符合条件的关键字加颜色
-o 只显示符合条件的关键字
-r 在指定目录下递归检索

从 .p12 提取 .pem 的命令

,

做过一次,记不住。
今天又有人问起,好不容易才找出来,因此有必要记录一下。
openssl pkcs12 -in client.p12 -out client.pem -nodes -clcerts

让 root 用户不能直接删除文件的方法

,

有时候为了加强对文件的保护,让 root 用户也不能直接删除某些文件。
chattr 命令给文件设置属性,即可实现以上目标。

例:
# touch test
# chattr +i test
# man chattr
# rm -f test
rm: cannot remove `.htaccess': Operation not permitted
root:~# echo $?
1


若要恢复,只需把命令中的 + 号变成 - 号:
# chattr -i test
# rm test
# echo $?
0


若要查看文件属性,用 lsattr 命令
# lsattr test
----i-------- test


以上方法,对 cp,mkdir, mv, chmod, chown 等命令同样适用。

让 secureCRT 定时发送命令的脚本

,

想让secureCRT在一定时间后发送命令,为此做了一个脚本如下:
var startTime = (new Date()).getTime();
var afterSeconds = 60;
var executed = false;

function main() {
    crt.Screen.Send("date\n");
    while(!executed) {
        sendCommand();
    }
}

function sendCommand() {
    if((new Date()).getTime() > (startTime + (afterSeconds*1000))) {
        crt.Screen.Send("echo It is time to execute command\n");
        crt.Screen.Send("date\n");
        executed = true;
    }
}

保存成文件,然后通过菜单 script -> Run 选择该文件即可。

用 tar 和 NFS 实现网络文件快速拷贝

, , ,

(本文部分翻译自: fast network file copying using tar and nfs)

先在远程机器(例如:192.168.1.3)配置 NFS 的输出路径,允许从本地拷贝文件(例如:/remotedir)。

在本地机器上创建新的空路径,然后 mount 上远程目录。命令如下:

mkdir /remotedir
mount 192.168.1.3:/remotedir /remotedir


完成以上步骤之后,即可在本地机和远程机之间拷贝文件:

tar -c localdir/ | tar -C /remotedir/ -xv

该命令将本地当前路径 localdir 之下的内容全部拷贝到远程机器的 /remotedir 之下。

注: 拷贝通常用 cp 命令,以上用的是 tar, 是不是更快,需要您自己验证。

Unix 下文本操作的利器

, ,

■ cut

cut 命令可用来截取文本中特定的字段。

(例)
$ cut -c1 file1.txt
截取文件 file1.txt 各行的第1个字符并输出

$ cut -c1-10 file1.txt
截取文件 file1.txt 各行的第1到第10个字符并输出

$ cut -c20- file1.txt
截取文件 file1.txt 各行第20个字符至末尾的字符串并输出

$ cut -d: -f1 file1.txt
截取文件 file1.txt 各行以冒号( : )分割的第1个字符串

$ cut -d' ' -f1,2 file1.txt
截取文件 file1.txt 各行以空格( )分割的第1和第2个字符串

■ paste

paste 命令可用来拼接两个文本文件中的数据。

(例)
文件 file1.txt 的内容:
1
2
3

文件 file2.txt 的内容:
One
Two
Three

$ paste file1.txt file2.txt
显示结果:
1 One
2 Two
3 Three

$ paste -d, file1.txt file2.txt
显示结果:
1,One
2,Two
3,Three

paste -s 可以把一个文件的各行拼接成一整行。

$ paste -s file1.txt
显示结果:
1 2 3

■ sed

sed 是一个数据流编辑器。

(例)
$ sed 's/Unix/UNIX/' file1.txt
把文件 file1.txt 中的字符串 Unix 替换成 UNIX 并输出

$ sed -n '1,2p' file1.txt
  输出文件 file1.txt 的头两行

$ sed -n '/UNIX/p' file1.txt
  输出文件 file1.txt 中包含 UNIX 的行

$ sed '1,2d' file1.txt
  删除文件 file1.txt 的头两行并输出

$ sed '/UNIX/d' file1.txt
  删除文件 file1.txt 中包含 UNIX 的行并输出

■ tr

tr 命令用作字符串变换的过滤器。

(例)
$ tr e x < file1.txt
  将文件 file1.txt 内的字符'e'替换成字符'x'并输出

$ tr '[a-z]' '[A-Z]' < file1.txt
  将文件 file1.txt 内的小写字母替换大写字母并输出

$ tr ' ' '\11' < file1.txt
  将文件 file1.txt 内的空格替换为Tab(缩进)并输出

$ tr -s ' ' '\11' < file1.txt
  将文件 file1.txt 内连续的空格替换为一个Tab(缩进)并输出

$ tr -d ' ' < file1.txt
  删除文件 file1.txt 内所有空格并输出

■ grep

grep命令用于在一个或多个文件中查找符合特定模式的行。

(例)
$ grep '[A-Z]' file1.txt
  在文件 file1.txt 中查找包含英文大写字母的行并输出

$ grep '[A-Z]...[0-9]' file1.txt
  在文件 file1.txt 中查找包含英文大写字母开头并以数字结尾的行并输出

$ grep -v 'UNIX' file1.txt
  在文件 file1.txt 中查找不包含 UNIX 的行并输出

$ grep -l 'Unix' *.txt
  在 *.txt 中查找包含 Unix 的文件并输出文件名

$ grep -n 'Unix' file1.txt
  在文件 file1.txt 中查找不包含 UNIX 的行并带行号输出

■ sort

sort 命令用来对输入行进行排序并输出。

(例)
$ sort < file1.txt
以升序输出 file1.txt 的各行

$ sort -u < file1.txt
以升序输出 file1.txt 的各行,重复的行只输出一次

$ sort -r < file1.txt
以降序输出 file1.txt 的各行

$ sort file1.txt -o file2.txt
将 file1.txt 的各行排序并输出到文件 file2.txt

$ sort -n file1.txt
将 file1.txt 的各行以数值排序并输出

$ sort +1n file.txt
将 file1.txt 的各行根据第2字段(空格分割)以数值排序并输出
  第2フィールドを使って数値的に並び替える。

$ sort +2n -t: file1.txt
将 file1.txt 的各行根据第3字段(冒号分割)以数值排序并输出

■ uniq

uniq 命令用于查找文件中的重复行(输出不重复的行)。

(命令格式) uniq in_file out_file

(例)
$ uniq file1.txt
输出 file1.txt 中不重复的行

$ uniq -d file1.txt
输出 file1.txt 中有重复的行

$ uniq -c file1.txt
统计 file1.txt 中各行的重复次数并输出

※注: 本文翻译整理自《UNIXツール

用命令一次替换多个文件中的字符串

, ,

下面这个命令,不时要翻出来用一下:

find /path/to/ -name "*.html" -type f | xargs grep -l -e "StringOrPattern" | xargs -n 100 perl -e "s/StringOrPattern/AfterReplace/g;" -pi

没有 Perl 的 Linux/Unix 环境应该很少吧?如果没有perl,这个命令可不好使。

命令太长,难记,因此在这儿纪录一下。

几则 Solaris 命令

,

查看OS版本
$ uname -aX

查看硬盘序列号
$ iostat -En

查看系统安装日期
$ ls -l /var/sadm/system/admin/INST_RELEASE
$ cat /var/sadm/system/admin/INST_RELEASE


查看内存使用率
$ ps -e -opid,vsz,rss,args | awk '{t=t+$2}END{print t/1024}'
$ ps -e -opid,vsz,rss,args | sort -nr +1


查看剩余inode数
$ df -e /

February 2012
S M T W T F S
January 2012March 2012
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