您的位置:首页 > 运维架构 > Linux

一些好用的linux命令(持续更新)

2012-11-04 17:28 302 查看
1. 比如vi一个log文件,查询某个异常,我们都知道用 \xxxx 然后安n进行查找,那么我要从最后后往前查找怎么办?

答案:非常简单,?xxxx 然后按n进行查找

2. 比如有些机器是禁止对其他机器进行scp的,那么如果把文件弄出去呢?

答案:可以采用反向 scp -P9999 192.168.1.2:/home/file .

3. 如何清理一面目录下的0字节的文件呢?

答案:find . -name "*.bcp" -size 0 -exec rm {} \;

ps: 清除过期的文件

du -h --max-depth=1 查询那些目录文件太多,比如三天前

find . -mtime +3 -type f |sudo -u admin xargs rm -f

4. 如果一个目录的文件数据超过一定,cp mv rm 可能会爆出Argument list too,如何解决?

答案:find source/ -name "*.txt" -exec mv {} target \; (第二步创建的文件名都是以.txt结尾的)或者使用 find source/ -name "*.txt" | xargs -i mv {} target/ 命令,如果是cp、rm 、ls操作将以上命令里中的mv改为相应的命令即可。其实我最喜欢用 ls | xargs -n 10 rm -fr。

ls hsf.log.2015-0* | sudo -u admin xargs rm -f;

5. 如何查询文件或者目录的大小?

答案:使用ls -lht命令显示当前目录下的所有文件,其中有一列就是显示这个文件的大小。如果要看一个文件夹的大小,可以用du -sh *。

du -h --time --max-depth=1 | sort -hr

6. 用最简单命令杀死一个进程?

答案:通常 ps -aux | grep <program> 或者netstat -ntlp |grep <port> 然后再查看该进程的ID,最后是 kill 进程ID。

其实有一个很简单的明明,叫做pkill,可以轻松秒杀,如pkill -9 <program> 就可以轻松秒杀。

还有传说中的一个拉风的命令:ps ax | grep <program>| grep -v grep | awk '{ print $1 }' | xargs kill -9

7. 如何查询一个进程的运行态占用的CPU和MEM?

答案:只适用于单个pid的,top -p `ps -ef | grep <program> | grep -v grep| awk {‘print $2’}`

8. 统计那些日志出现那个异常?

grep Can\'t *.log | awk -F : {'print $1'} | sort | uniq | wc -l

9. 如何生成0000 ~ 9999这种序列呢?

echo {0..9}{0..9}{0..9}{0..9} 或者 seq -w 0000 9999

10.如何分区超过2T的分区?

使用 parted 建立大小超过2T的分区

10.1 parted /dev/sdb 可以输入p打印磁盘信息,查看分区的情况,找到起始和结束位置。

  10.2 mklabel gpt 设置分区类型为gpt

  10.3 mkpart primary 0% 100% primary指分区类型为主分区,0是分区开始位置,100%是分区结束位置。相同的命令为:mkpart primary 0-1 或者是:mkpart primary 0 XXXXXX结束的空间
  10.4 print  打印当前分区,查看分区设置是否正确
  10.5 quit  完成后用quit命令退出。
  10.6 mkfs.ext3 /dev/sdb1 格式化磁盘。如果支持EXT4可选择格式化为EXT4,格式化成ext3的时候又出现问题。Ext3默认的block size的大小为4k,最大只能支持8T的空间。格式化时指定block size的大小为8K这样最大可以支持16T的空间。相应命令:mkfs.ext3 -b 8192 /dev/sdb2
  10.7 mount /dev/sdb1 /home/ 挂载到/home目录下
  10.8 自动挂载分区 当在系统里创建了一个新的分区后,因为mount挂载在重启服务后会失效,所以需要将分区信息写到/etc/fstab文件中让其永久挂载,编辑/etc/fstab里加入

/dev/sdb1(磁盘分区) /home(mount目录) ext3(文件格式) defaults 0 0
保存退出,重启后/dev/sdb1 就会自动挂载到/mnt/abc目录下

11.如何查询Linux版本号?

/etc/issue 和 /etc/redhat-release都是系统安装时默认的发行版本信息

12.乱码文件夹或文件如何删除?

假设在 /下存在乱码目录 x
执行 ls /|nl -ba 查看输出中乱码目录x在第几行,假设在第29行

接着 执行ls /|sed -n '29'p|xargs rm -rf

13.shell脚本中的$*,$@和$#?

脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)

14.cd `dirname $0`干什么用途?

在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。
这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外),提高了脚本的可移植性。
在/home/admin/test/下新建test.sh内容如下:
cd `dirname $0`
echo `pwd`

15.shell函数中的local怎么理解?

local添加后,作用域的范围不一样。local仅仅的作用范围在函数体内

16. linux下ipcs和ipcrm命令详解?

第一次见是在用于apache与hummock直接通信的数据清理。

可以参考http://www.cppblog.com/doing5552/archive/2010/07/12/120126.html

17. Shift的用法?
http://www.cnblogs.com/image-eye/archive/2011/08/20/2147153.html
18. shell与空格
http://blog.csdn.net/qzwujiaying/article/details/6321068
19. shell读取文件
http://blog.163.com/iloveecho83@126/blog/static/17299752520111124452281/
20. find命令详解
http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html
21. tar里面包含一个tar,会出现如下提示: This does not look like a tar archive

gzip -d xxxx.tar.gz, tar -xf xxxx.tar

22. configure时,报了错误error: newly created file is older than distributed files!

date -s '20150915 150505'

hwclock -w (root 权限 将当前时间和日期写入BIOS,避免重启后失效)

22. sed 提取字符串中的字符

awk是规规矩矩的切,sed支持正则。

grep score scan-message.log | sed 's/\(.*\)mainPicUrl"\:"\(.*\)","\(.*\)/\2/g'

s表示替换,最后的2表示正则里面的group=2,表示用group=2 替换整个字符串

\是转义,\(.*\)表示group1 ,mainPicUrl"\:" 是匹配mainPicUrl":"www.baidu.com", "score":12....这种字符串中的前缀。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: