`
zhengdl126
  • 浏览: 2510231 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

【汇】linux常用命令集合2

 
阅读更多

 

 

 

------------------- 修改linux系统的时间CST与EDT 
初始时间:2012年 09月 14日 星期五 18:15:33 EDT
[root@test ~]# mv /etc/localtime /etc/localtime.bak
[root@test ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
[root@test ~]# date
修改后的时间:
2012年 09月 15日 星期六 18:25:00 CST

-------------------sudo权限

 

sudo权限的用户即可)登录系统,打开终端运行:
sudo vim /etc/sudoers

 

修改此配置文件,最后一行添加:

hello ALL=(ALL)ALL

注销用户,用户重登录。

 

 

-------------------  加入到PATH

 

export PATH=$PATH:/usr/local/mysql/bin

 

 

-------------------- history查看用户操作记录及时间

 

#vim /etc/profile 在文件的末尾加上如下代码:


export HISTTIMEFORMAT="%F %T `whoami` "

保存后,再执行  source /etc/profile 使配置生效。

再执行 history 命令,显示出了执行命令的时间和对应用户。

 

---------------------linux cp命令如何拷贝整个目录下所有文件


如何在Linux下拷贝一个目录呢?这好像是再简单不过的问题了。
比如要把/home/usera拷贝到/mnt/temp,首先想到的就是
cp -R /home/usera/* /mnt/temp
但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的。
那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道。
其实没这么复杂,Google了之后,学了一招。原来只有用“.”当前目录代替“*”就好了。
\cp -R /home/usera/. /mnt/temp

\cp -rf /home/usera/. /mnt/temp

 

--------------------- 问一个很笨的问题,请问如何删除一个中文的目录??


ls -i

然后按照inode去删除
rm -rf *AYXX-201205-01*

 

---------------------- kill killall pkill
kill 命令用于终止进程
   例如: kill -9 [PID]                
                 -9表示强迫进程立即停止

通常用ps 查看进程PID ,用kill命令终止进程

 

killall 通过程序的名字,直接杀死所有进程
killall -p php-fpm

pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉
pkill fpm

 

 

批量删除该服务的所有进程号:

ps -ef | grep ejb3 | grep -v grep | awk '{print $2" "$3}' | xargs kill -9 = pkill ejb3
killall -9 httpd 或者 kill -9 `ps aux |grep -i httpd |grep -v grep |awk '{print $2}' ` = kill -9 `pgrep httpd`
还有这个命令  ---------pgrep  也很好用。

 

 

 

ps aux | grep php | awk '{print $2 }' | xargs kill
ps aux|grep 进程名 | awk '{print $2 }' | xargs kill

 

--------------------- 查看 目录文件 磁盘空间大小

 

------根目录占用最多/dev/sda1  

cd  /,然后du -sh *,会列出每个目录的大小,找出占用最大,进入该目录,

再执行du -sh * ,以此类推,就能找到哪个文件占用的多,看是否需要删除

 

 

-------查看目录大小  df  du

#df -h  查询磁盘信息,以M和G的格式显示

 

#du -h

 

#du -sh kushu001/  查看当前目录下目录的大小,并不想看其他目录以及其子目录
16G kushu001/

 

#du -s kushu001/
16399552        kushu001/

 

#du -h .

查看当前目录下所有目录以及子目录的大小(会列出所有的子目录), “.”代表当前目录下。也可以换成一个明确的路径

 

#du -ah user 会列出每个目录和每个文件

列出user目录及其子目录下所有目录和文件的大小

 




#fdisk -l
查询磁盘信息

 

 

 

----------------------linux top zombie  僵死进程

 

 

 

 

# top

top - 14:25:15 up  8:14, 12 users,  load average: 0.56, 1.93, 2.51
Tasks: 144 total,   2 running, 141 sleeping,   0 stopped,   1 zombie
Cpu(s):  2.2%us,  1.0%sy,  0.0%ni, 90.0%id,  0.2%wa,  2.7%hi,  4.0%si,  0.0%st
Mem:   3085636k total,  1275820k used,  1809816k free,   194212k buffers
Swap:  2097144k total,        0k used,  2097144k free,   662936k cached

# ps -ef |grep defunct
root     10342 28542  0 14:24 pts/9    00:00:00 grep defunct
root     10985 10980  0 10:50 ?        00:00:00 [sh] <defunct>

##kill子进程无效
# kill -9 10985
# ps -ef |grep defunct
root     10471 28542  0 14:25 pts/9    00:00:00 grep defunct
root     10985 10980  0 10:50 ?        00:00:00 [sh] <defunct>

# ps -ef | grep 10980
root     10348 28542  0 14:24 pts/9    00:00:00 grep 10980
root     10980     1  0 10:50 ?        00:00:00 CROND
root     10985 10980  0 10:50 ?        00:00:00 [sh] <defunct>
smmsp    11019 10980  0 10:50 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f root

## kill父进程

# ps -ef |grep defunct
root     10471 28542  0 14:25 pts/9    00:00:00 grep defunct
root     10985 10980  0 10:50 ?        00:00:00 [sh] <defunct>
# kill -9 10980
# ps -ef |grep defun
root     10550 28542  0 14:26 pts/9    00:00:00 grep defun

 

 

 

 

----------------------alias  unalias

 

命          令:   alias

功能说明:设置指令的别名。

语  法:alias[别名]=[指令名称]

补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。

    还有,如果你想给每一位用户都生效的别名,请把alias la='ls -al' 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.

参  数:若不加任何参数,则列出目前所有的别名设置。 资料来自 www.linuxso.com   Linux安全网

CentOS5.6自带的alias定义

取消别名的方法是在命令前加\,比如 \mkdir
[root@linuxso.com ~]#alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 
有的系统里没有ll这个命令,原因就是没有定义ll='ls -l --color=tty'这个别名
 
利用alias可以把很长的命令变成任意我们喜欢的简短的
 
设置和修改alias命令别名格式很简单
 
alias ll='ls -l --color=tty'
 
如果想永久生效,就把这条写入到 /etc/bashrc或~/.bashrc

 

为安装命令apt-get install创建别名:

alias install='sudo apt-get install'

 

 

删除:

unalias 命令

 

----------------------tree

 

以树状图逐级列出目录的内容命令

 

命令格式
tree <选项或者是参数> <分区或者是目录>
-a 显示所有文件和目录。
-d 显示目录名称而非内容。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-r 以相反次序排列
-t 用文件和目录的更改时间排序。
-L n 只显示 n 层目录 (n 为数字)
--dirsfirst 目录显示在前文件显示在后
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-D 列出文件或目录的更改时间。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。


# tree -a

 

----------------------wc

 

wc命令用来计算一个文件或者指定的多个文件中的行数,单词数和字符数。如:
wc filename
第一列显示行数,第二列显示单词数,第三列显示字符数。
wc 有四个参数可选,分别是l,c,m,w
wc -l filename 报告行数
wc -c filename 报告字节数
wc -m filename 报告字符数
wc -w filename 报告单词数

-L 打印最长行的长度  wc file -L

 

ls -l|wc -l 用来统计当前目录下的文件数

 

 

$ wc -lcw file1 file2

4 33 file1
7 52 file2
11 11 85 total

 

 

---------------------- 切换目录 pushd popd dirs

 

 

pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中
         如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换

  popd: 弹出堆栈中最近的目录
  dirs: 列出当前堆栈中保存的目录列表

 

 

看例子:
  [root@localhost ~]# pushd /usr/local/sbin/
  /usr/local/sbin ~
  [root@localhost sbin]# dirs
  /usr/local/sbin ~
  [root@localhost sbin]# dirs -p -v
   0  /usr/local/sbin
   1  ~
  [root@localhost sbin]# pushd /usr/share/kde4/apps/kget/
  /usr/share/kde4/apps/kget /usr/local/sbin ~
  [root@localhost kget]# dirs -p -v
   0  /usr/share/kde4/apps/kget
   1  /usr/local/sbin
   2  ~


  说明: dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表
              -v参数可以在目录前加上编号
              注意:有 -v时,不添加 -p也可以每行一个目录的形式显示
  说明之二:我们可以看到:最近压入堆栈的目录位于最上面

  2,如何在最近的两个目录之间切换?

   在最近的两个目录之间切换:用pushd不加参数即可

   [root@localhost kget]# pushd /boot/grub/
   /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~
   [root@localhost grub]# dirs -v
   0  /boot/grub
   1  /usr/share/kde4/apps/kget
   2  /usr/local/sbin
   3  ~
   [root@localhost grub]# pushd
   /usr/share/kde4/apps/kget /boot/grub /usr/local/sbin ~
   [root@localhost kget]# dirs -v
   0  /usr/share/kde4/apps/kget
   1  /boot/grub
   2  /usr/local/sbin
   3  ~
   [root@localhost kget]# pushd
   /boot/grub /usr/share/kde4/apps/kget /usr/local/sbin ~
   [root@localhost grub]# dirs -v
   0  /boot/grub
   1  /usr/share/kde4/apps/kget
   2  /usr/local/sbin
   3  ~

   说明:可以看到,用pushd不加参数在最近的两个目录之间切换时,
        当前目录总是位于堆栈的最上面


  3,如何在多个目录之间切换?

   用 pushd +n即可
   说明:
   n是一个数字,有此参数时,是切换到堆栈中的第n个目录,并把此目录以堆栈循环的方式推到堆栈的顶部
   需要注意: 堆栈从第0个开始数起

   看例子:

   [root@localhost grub]# dirs -v
   0  /boot/grub
   1  /usr/share/kde4/apps/kget
   2  /usr/local/sbin
   3  ~
   [root@localhost grub]# pushd +2
   /usr/local/sbin ~ /boot/grub /usr/share/kde4/apps/kget
   [root@localhost sbin]# dirs -v
   0  /usr/local/sbin
   1  ~
   2  /boot/grub
   3  /usr/share/kde4/apps/kget

   4,如何把目录从堆栈中删除?
   用popd即可

   看例子:
   [root@localhost sbin]# dirs -v
   0  /usr/local/sbin
   1  ~
   2  /boot/grub
   3  /usr/share/kde4/apps/kget
   [root@localhost sbin]# popd
   ~ /boot/grub /usr/share/kde4/apps/kget
   [root@localhost ~]# dirs -v
   0  ~
   1  /boot/grub
   2  /usr/share/kde4/apps/kget

   [root@localhost ~]# popd +1
    ~ /usr/share/kde4/apps/kget
   [root@localhost ~]# dirs -v
   0  ~
   1  /usr/share/kde4/apps/kget

   说明:可以看到popd不加参数的运行情况:popd把堆栈顶端的目录从堆栈中删除,并切换于位于新的顶端的目录
   说明之二: popd 加有参数 +n时,n是堆栈中的第n个目录,表示把堆栈中第n个目录从堆栈中删除


四,多学一点知识

   1,pushd和popd都可以只影响堆栈而不切换目录,用 -n参数即可
   
    看例子:
    [root@localhost ~]# dirs -v
    0  ~
    1  /usr/share/kde4/apps/kget
    [root@localhost ~]# pushd -n /boot/grub
    ~ /boot/grub /usr/share/kde4/apps/kget
    [root@localhost ~]# dirs -v
     0  ~
     1  /boot/grub
     2  /usr/share/kde4/apps/kget

    2, dirs可以清空目录堆栈,用 -c参数即可

     看例子:
     [root@localhost ~]# dirs -v
     0  ~
     1  /boot/grub
     2  /usr/share/kde4/apps/kget
     [root@localhost ~]# dirs -c
     [root@localhost ~]# dirs -v
     0  ~

     说明:  位于堆栈顶部的目录是当前目录,它不能被pop出去的

 

------------------ ls 排序

 

ls -l -t为按时间排序显示,默认为新的排在前面,可用下面的命令更改升降序:
ls -lrt 最新的文件排在后面(升序)
ls -lnt 最新的文件排在前面(降序)

 

 

 

 

-------------------- diff


diff -options oldfile/dir newfile/dir


常用的选项有:
-r 比较目录
-u 将差异的文件输出到文件中



    $diff -ru file_one file_two > file_diff.diff

将file_one和file_two的区别输出到file_diff.diff文件中

 

 

--------------------- 备份数据库

 

cp -a /data/mysql/mysql_3302 /data/mysql/mysql_3302_back20120504 &
#查看是否备份完
jobs
#确认备份大小
du -sh /data/mysql/*

 

 

--------------------- 系统相关:

1.cat /proc/cpuinfo     ##查看CPU的核数   
2.cat /proc/version     ##查看linux版本   
3.ulimit -n  ##显示当前文件描述符   
4.ulimit -HSn 65536     ##修改当前用户环境下的文件描述符为65536  
5.getconf LONG_BIT     ##查看linux系统的位数,是32或还是64, 较实用   
6.lsof    ##列出当前系统打开文件, 特实用,可grep出你的进程或软件正在操作什么文件   
7.ps -eLf | grep java | wc -l    ##查看java的线程数,如果是单个java容器,就指这个容器的,多个指所有的总数   
8.cat /etc/resolv.conf    ##DNS域名解析的配置文件, 内部DNS用得多的系统经常使用   
9.cat /etc/hosts      ##查看host配置  


---------------------  连接状态:
(1). netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn 或   
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'  ##查看各tcp连接各状态的连接情况   
  
(2). netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n30     ##查找80端口请求连接量最大的前30个IP(常用于查找攻来源,爬虫分析)   
  
(3). netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n10    ##查找time_wait状态连接量前10  
  
(4). netstat -nat -n | awk -F: '/tcp/{a[$(NF-1)]++}END{for(i in a)if(a>5)print i}'   ##查询同时连接量大于5个连接的端口和IP


--------------------- 网站日志分析(apache或nginx):
1). cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10   #取10,按量的倒序排 或cat access.log|awk '{counts[$(1)]+=1}; END {for(url in counts) print counts[url], url}'  
##获得访问次数前10位的ip地址,具体print出来的第几项,还需要看log_format,那项是$remote_addr   

2).cat access.log |awk '{print $10}'|sort|uniq -c|sort -nr|head -10     ##访问次数最多的文件或页面,取前10 还需要看log_format,第10项为页面   

3).cat access.log |awk '{print $1}'|grep 'article.html' sort|uniq -c|sort -nr|head -10    ##查询文章页访问次数最多的前个IP   

4).awk '($9 ~/404/)' access.log | awk '{print $9,$10}' | sort    ##统计404的情况   
  
5).cat access.log |awk '($NF > 10){print $NF " "$1" "$10 }'|sort -nr|head -30       ##查出前30个访问时间超过10秒的请求, 包括请求时间、IP、页面

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Linux常用命令集合整理

    常用的Liunx命令集合,我精心整理的,对平时的工作帮助很大

    linux常用命令集合

    这是我学习linux时整理的常用命令,并对各个命令的使用及各个命令的参数都给出了较为详细的说明。对linux学习者来说很有参考价值。无论你是初学者还是linux老鸟,这本书对你来说都是十分有帮助的。

    linux常用的命令集合

    linux常用的命令集合,综合了所有的常用的linux的命令。

    两个linux常用命令集合

    linux常用命令集合

    linux常用命令集合.md

    linux常用命令集合.md

    Linux常用命令集合

    本人总结的Linux常用命令集合,涵盖了文件管理命令、磁盘管理命令、文件权限管理命令、用户管理命令、软件管理命令、启动管理命令......

    Windows下Linux常用命令集合

    习惯了在Linux下使用命令的朋友, 现在可以在Windows使用大部分和Linux相同或相似的命令了. 例如grep,du,dd,less等等.只需要在%PATH%里添加路径(UnxUtils\usr\local\wbin),就可以方便地使用Linux常用命令了.

    LINUX常用命令字典

    LINUX常用命令字典 集合了常用的LINUX命令,解说详细且带用法事例!

    linux常用命令集合.rtf

    Linux命令常用集合,归纳了常用的200条命令使用方法,非常详细的写出了如何使用,方便查询命令的使用方法,学习linux基础的最佳文档!

    Linux常用命令集合.docx

    Linux常用命令集合,最基础的命令,但是一般工作中遇到的都有,欢迎大家下载使用哟,不足的地方欢迎大家指出,谢谢

    Linux常用命令全集.zip

    linux常用命令集合,chm格式方便查阅搜索,方便快捷,对于新学习Linux指令的小伙伴是个不错的资料,公开资料不涉及版权

    Linux系统命令集合

    包括 linux系统常用 命令详解( crond命令 mount命令详解 vi命令详解等),另外包括一些服务软件的使用说明(例如ftp等)。 无论对开发人员还是运维或测试人员掌握这些技术对个人有一个很大的飞跃。

    Linux 60个常用命令集合

    搜集常用的60多个linux命令,并有例子 给大家参考

    Linux常用命令.xmind

    linux安装以及常用命令集合

    LINUX 常用命令集合

    资源共享!共同营造良好IT学习氛围,同进步,促交流!谢谢。 彩云追月献上。

    shell常用命令总汇(UNXI LINUX命令集)

    shell常用命令汇总汇(UNXI LINUX命令集)

    Linux常用命令集合,有图有文本

    LINUX命令大全的集合,您学习的好帮手!

    linux-常用命令

    linux常用指令集合,可打印出来,平常的时候看一看。 1. 查看目录下有什么文件/目录 &gt; ls //list列出目录的文件信息 &gt; ls -l //list -list以“详细信息”查看目录文件 &gt; ls -a //list -all查看目录“全部”(包括...

Global site tag (gtag.js) - Google Analytics