《Linux 101 Hacks》笔记

尽管使用Linux也好几年了,不过周末还是花了点时间读了《Linux 101 Hacks》这本书,学了一些linux使用的一些技巧和命令,现在记录一下部分知识点,是我不知道或者曾经不熟悉,却很有可能在今后用得上的东西。

用SSH 退出符切换 SSH 会话 (我以前都是用exit来直接退出远程主机)
当你已经登录到了远程主机时,你可能想要回到本地主机进行一些操作,然后又继续回到远程主机。在这种情况下,没有必要断开远程主机的会话,你可以用下面的办法来完成:
在远程主机上,要临时回到本地主机,输入退出符号: “~”与 “Control-Z”组合。
当你输入 “~”你不会立即在屏幕上看到,当你按下并且按回车之后才一起显示。
现在你已经退回到了本地主机,ssh远程客户端会话就在UNIX 后台中运行,你可以向下面那样查看它:
localhost$ jobs
[1]+ Stopped ssh -l jsmith remotehost
你可以将后台运行的 ssh会话进程切换到前台,重新回到远程主机,而无需输入密码
localhost$ fg %1

find ~ -name ‘*temp.log’ -print0 | xargs -0 rm –f
注意这里用了-print0而不是print,而且与后面xargs -0 结合起来,这样可以避免文件名中存在空格而导致程序处理失败的情况,因为它用null字符(而不是换行符)作为完整文件名的结尾。具体可以:man find 和 man xargs看一下
将所有的.txt文件复制到~/temp/目录下:
find ~ -name “*.txt” -print0 |xargs -0 -n1 -I {} cp {} ~/temp/
注意xargs中使用了的-n1和-I参数。

列出当前目录下所有文件,并根据文件大小进行排序:
ls -al | sort -k 5n

cut 命令可以用来显示一个文本文件中特定的列或者其它命令的输出。
显示一个以冒号分隔的文件中的第一列和第三列
$ cut -d: -f 1,3 names.txt

stat命令那个可以用来查看文件或者文件系统的状态和属性。
$ stat /etc/my.cnf
$ stat -f /

ac 可以显示用户登录主机的时间信息。
使用 -d 选项,可以将输出的时间按天来显示。
可以用 “-p” 显示所有用户的连接时间。注意这显示了每一个用户的总的连接时间。

PS1, PS2, PS3, PS4这四个环境变量
PS1 主命令提示符
PS2 二级命令提示符,命令执行过程中要求输入数据时用
PS3 select的命令提示符
PS4 调试命令提示符

zip命令提供了十个压缩等级:
o 等级 0是最低等级,只做归档,不压缩
o 等级 1压缩率低,但速度很快
o 等级 6是默认的压缩等级
o 等级 9的压缩率最高,但它耗时也多

使用 zip命令的 -P 选项来加密 zip文件
#zip -P mysecurepwd var-log-protected.zip /var/log/*
在 shell脚本中使用上述选项来做后台工作是个不错的选择。但在使用交互式命令行时,你一 般不会想让密码在History 中可见。所以,这个时候就要使用下述的 -e选项来设定密码了。
# zip -e var-log-protected.zip /var/log/*

使用HISTTIMEFORMAT 在历史中显示TIMESTAMP
通常情况下,当你在命令行中键入history 时,终端中将显示你刚输入的命令及其编号。如果出于审查命令的目的,和命令一起显示时间戳将会很有帮助,如下所示。
# export HISTTIMEFORMAT=’%F %T ‘

用Ctrl+R 搜索历史命令

用HISTSIZE 控制历史命令的总数
使用HISTFILE 改变历史文件名 (默认情况下,命令历史被储存在.bash_history文件中)
使用c 选项清除所有的历史命令.有时候你或许想要清除之前的历史命令。而你又想让history 继续工作:
# history –c

ssh-copy-id – install your public key in a remote machine’s authorized_keys
If the -i option is given then the identity file (defaults to ~/.ssh/id_rsa.pub) is used, regardless of whether there are any keys in your ssh-agent. Otherwise, if this:
ssh-add -L
provides any output, it uses that in preference to the identity file.

在 bash shell 中产生随机数,使用bash 内置的$RANDOM可以产生 0-32767 之间随机数
$ echo $RANDOM

在bash中让脚本执行时包含调试输出,使用: set –xv

Sar 是一个出色的监视工具,它可以显示几乎所有的系统资源(包括CPU,内存,IO,页式调 度,网络,中断等等)的性能数据。Sar 命令在 sysstat软件包中 。

vmstat 命令 可以显示内存,交换空间, IO,系统和CPU 性能信息。

Liunx 内核参数可以通过sysctl命令在运行时改变。
显示当前所有的内核参数的值:
# sysctl –a
在/etc/sysctl.conf 永久修改内核参数,执行sysctl -p提交改动。重启之后改变仍然保持。
# vi /etc/sysctl.conf
# sysctl –p
临时修改内核参数(请注意,重启后这些改变不会存在。 )
# sysctl –w {variable-name=value}

master

Stay hungry, stay foolish.

发表评论

电子邮件地址不会被公开。 必填项已用*标注