Linux下的常用命令(不断整理中)

上一篇 / 下一篇  2009-08-18 13:46:28 / 个人分类:Linux

1.合并两个文件:cat file1, file2 > file3

2.清屏clear;客户端乱码时:reset;

3.查看用户登录日志:who -u /var/log/wtmp  (也可以用last查看)

4.统计记录行数: wc -l

5.查找:find 路径 -name 文件/目录名

6.显示隐藏文件(.开头的文件一般会被隐藏):ls -al 或者直接 ll

7.查找rpm包安装路径 rpm -qlp xxx.rpm 或者rpm -ql xxx

  查找已安装的rpm包:rpm -qa|grep xxx

  查询一个已经安装的文件属于哪个软件包:rpm -qf 文件名 
  查看一下已安装软件所依赖的软件包及文件:rpm -qR 软件名

  查看未安装rpm包的信息,只要在上面的命令中多加一个参数p,比如:rpm -qpR ***.rpm

8.在后台运行程序:后面加& 或者前面加 nohup
9.ll -t 按修改时间倒序 (ll --help 查看)
  ll -rt 按修改时间正序
10.xargs用法:
  ps -aux|grep "httpd"|grep -v "grep" |awk '{print $1}'|xargs kill 说明:把grep出来的结果,传给xargs执行kill操作;
11.下载:wget url 举例:wget url -O filename.htm 
12.cat /proc/version 查看版本信息
  cat /etc/issue 查看版本信息带有update信息
  uname -a 查看所有系统信息
  uname -r 查看kernel release
  uname -v 查看kernel version
  uname -p 查看处理器32位、46位
13.文件编码转换:iconv -c -f utf-8 -t gbk file 将utf8编码的转成gbk编码
14. 替换字符串:sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`
15.tee [-ai][--help][--version][文件...]  读取标准输入的数据,并将其内容输出成文件
16. ls 2>&1 1>/dev/null 将错误信息输出到标准输出,将标准输出的其他信息输出到黑洞;
17. rpm 卸载 rpm -e xx --nodeps
18. 查看磁盘剩余空间: df -hl
19. sar -r -5 -10 表示监控内存,并且每5秒取一个结果,一共取10个结果,sar是监控所有进程的资源占用情况,如果需要个别进程,可以使用ps aux |grep 方式

20. top输出重定向有问题,无法重定向到文件
21. zcat part-r-0000.gz | head -n 100 > a 
    zcat可以在不解压的情况下扩展压缩包并讲内容输出到标准输出

18. chown -R admin:admin aaa/ 把aaa目录及目录下的所有文件修改为隶属于admin用户,admin租
19. 查看机器cpu:cat /proc/cpuinfo
20. 查看机器内存:free -m
21. top查看cpu、内存占用率时,shift+o可以选择排序方式,默认是按用户名排序的
23. 有sudo账号的情况下,想使用其他账号执行程序,比如想临时使用admin账号执行程序,可以这样:
     sudo -u admin  **.sh

     想一直使用admin账号,可以用su更好账号:sudo su admin

     退出使用exit


24. 查看当前系统在线用户情况: w 、 who ,查看自己登录名:whoami
25. dirname $PWD 查看当前目录的父目录
26. sort后面不加文件的情况,默认从标准输入传入数据,使用ctrl+d终止终端输入
27. cat file1 file2 > file3
28. cd - 返回到上次所在的目录
29. date -d"yesterday" +%Y%m%d 注意,+和%Y%m%d之间不能有空格
30. unzip可以解压jar文件,unzip aa.jar -d AA
31. 一个好用的for in 循环:
    for i in {1..100}
    do
      .......
    done

32.vim时查看文件的编码:set fileencoding

   vim时转换文件的编码:set fileencoding=utf-8


 

33. sudo /sbin/ldconfig
命令解析:ldconfig是一个动态链接库管理命令

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表. 

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
 
34.

:

空命令[冒号]. 这个命令意思是空操作(即什么操作也不做). 它一般被认为是和shell的内建命令true是一样的。冒号":" 命令是Bash自身内建的,它的退出状态码是真(即0)。

1.可以用于注释:

: '
code1
code2
code3   
'
2.表示true

while :
do
 operation-1
 operation-2
 ...
  operation-n
 done
 
 等同于:
 while true
  do
      ...
  done

3.if/then结构中作占位符

if condition
then :   # 什么也不做的分支
else
    take-some-action
fi

4.在必须要有两元操作的地方作为一个分隔符

: ${username=`whoami`}
 # ${username=`whoami`}   如果没有开头的:,将会出错
 #                        除非"username"是一个外部命令或是内建命令...

 

Shell脚本while read line 损失制表符的问题

描述:

采用读取每行的数据,再处理的方式

while read line

do

done<$file

问题:

但是出现一个问题:read line后line中的\t不见了,导致我awk处理时找不到\t,这时默认的分隔符是空格,可是数据本身也会有空格,就会混淆

原因:

查找后得知read line会过滤掉行首、行尾的空格、制表符等。

处理办法:

read -r line

yum install from list

需要使用-y参数 
while read line
do
yum -y install $line
done

 

df -h 用m、g的数量级显示大小

du -h --max-depth=1 ./ 显示一级目录大小

重启crontab:

/etc/rc.d/init.d/crond   restart

reloadcrontab

sudo /etc/init.d/crond reload

35./var/log/messages 可以查看用户sudo操作等信息

36.文件分割:split -b 12M filename 按大小分割

split -l 12000 filename 按行分割

合并:cat file1 >>file2

37.使用uniq时,文件编码与终端term编码必须一致,否则uniq无效;

38.有些应用,在rpm安装后,会自己启动。一般情况下是在/etc/rc.d/init.d/下安装一个脚本,这个脚本时被系统service调用的:如脚本名叫:ppp.sh
则service调用如下:service ppp.sh start
会传入参数的

 

39.如何修改机器名并生效

修改/etc/hosts
增加:10.232.128.86  kgbtest128086.sqa.cm4 
执行hostname kgbtest128086.sqa.cm4

使用hostname或者uname -n 检查设置的hostname是否生效

40.curl、wget都可以指定host:

curl -H "Host:fortest.net" "http://192.9.100.10/index.php"

41.grep 输出匹配行的前后多行

grep -B1 -A2 "DMA" message.txt

42 . sed -i '12,15d' filename

  删除12到15行

43.curlhttp://10.222.133.62/test.php-d "asfdasdfq3wfa42342"

使用curl模拟post方式发送数据

--data-binary <数据> 可以发送二进制数据 

--data-urlencode <数据> 可以发送urlencode之后的数据

crontab的log:

/var/log/cron*

 

查看字符的十六进制编码:od

在vim查看十六进制编码:%!xdd
返回普通模式:%!xdd -r
二进制、八进制、十六进制:
http://longmans1985.blog.163.com/blog/static/70605475201152802851529/

 
大家在更新环境的时候查找线上地址,一般用grep  '地址'  -r  *  的命令,这样对于压缩的js文件查找的时候就非常麻烦,打出一屏的地址;没法看出在哪个具体文件
没有效率;
解决的办法:grep  -no  '地址'  -r  *     
-n参数是打印grep的地址所在行号  
-o参数是去掉其他的内容只显示你grep的地址;
这样去找地址很方便,很有效率
 
 
怎样查找一个文件夹在哪个目录下

如果只显示所在目录的路径:
find 目录 -type d -name "查询目录名" -printf "%h\n"

如果同时显示目录名称和所在目录的路径:
find 目录 -type d -name "查询目录名" -printf "%p %h\n"
 
 
 

我们有时会用到测试机发送邮件的功能,但测试机器曾出现过不能发送邮件的情况,解决办法是把iptables关掉。      执行命令:/etc/init.d/iptables stop

 
分享几个shell命令另类用法:
1、快速备份文件
cp filename{,.back}
2、清空或创建一个文件
> 1.php
3、实时查看某个目录下最新改动过的文件
watch -d -n 1 'df; ls -FlAt /path'
4、查看被占用端口的进程
netstat -tulnp
5、切换回上一个目录
cat -

TAG:

 

评分:0

我来说两句

Open Toolbar