常用的linux shell命令

来源:互联网 发布:ec6108v9e安装软件 编辑:程序博客网 时间:2024/05/12 23:16
==> linux 创建用户:
   useradd -d /home/newuser -s /bin/bash -g oinstall  -m newuser


==>为一个用户增加一个附加组 或 改组
    usermod -g 组名 用户名                      --> 更改用户所属组,是覆盖;   小写 是 覆盖
    usermod -G 组名1 组名2 组名3 用户名         --> 添加用户所属组;    大写 是添加   usermod -G 组名 用户名


==> 分割文件:
   split -l 10000 -a 3 b.txt b.txt


==> 在.profile设置,oralce支持中文
   NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LAN
   export NLS_LANG=american_america.zhs16gbk


    ==> 压缩和解压文件
       tar cvf - * | gzip -qc > dcfmt.20110406.tar.gz      -->压缩


       gzip -dc bill.20101124.tar.gz |tar  -xvf -          -->解压
       或
       tar -zcvf package_file.tar.gz file1 file2 file3     -->压缩
       tar -zxvf ackage_file.tar.gz                        -->解压


==> 实现perl正则表达式分组功能
    find ./ -name '*.cpp' | xargs grep 'GetCurrValue' | awk '{if (match($0, /GetCurrValue\(\"[A-Z]{3,3}\"\)/)) {print substr($0, RSTART, RLENGTH)}}' | sort -u


==>删除指定模式的文件
   find -name '*.svn' |xargs rm -rf ;


==> 查找出文件然后重命名
   find ./ -name "*.txt" | xargs -t -i mv {} {}.bak


==> linux在.bashrc文件设置显示中文
  export LANG=utf-8
  或
  export LANG=zh_CN.utf-8


==>查找你文件中重复最多的前5行
  sort | uniq -c | sort -k1rn | head -5


==>linux下查看栈的大小 和 打开生成core文件开命令
   ulimit -s
   ulimit -c unlimited 


==>查看进程对应的端口号
 netstat -lnp   | grep test_dev


==>网络拷贝
scp /src_dir/src_file username@IP:dest_dir


==>查看进程,及进程的启动参数
   ps auxw | grep rdcs


==>删除下级目录下所有相关文件


find . -name *.o -exec rm {} \;


==>跟踪进程执行的系统调用
strace -p pid


==>捉包
tcpdump -i eth0 port 51010


=>IPC操作
ipcs -m  共享内存
ipcs -s  信号量
ipcs -q  消息队列


ipcrm -s 179470387  --- 179470387为信号量ID


==>查找目录
 find / -type d -name "uploads"


==>Linux删除重复行
   第一,用sort+uniq,注意,单纯uniq是不行的。
   sort -n test.txt | uniq


   第二,用sort+awk命令,注意,单纯awk同样不行,原因同上。
   sort -n $file | awk '{if($0!=line)print; line=$0}'
 
   第三,用sort+sed命令,同样需要sort命令先排序。
   sort -n $file | sed '$!N; /^\(.*\)\n\1$/!P; D'


==>redhat 5.5版本打开telnet服务: 
修改以下两个文件:
/etc/xinetd.d/krb5-telnet
/etc/xinetd.d/ekrb5-telnet
chkconfig ekrb5-telnet off




==>redflag打开telnet服务
修改以下两个文件:
/etc/xinetd.d/telnet




==>获取IP地址
# who am i | awk '{print $6}' | sed -e 's/[()]//g' | awk -F"." '{printf("%s.%s.%s.%s",$1,$2,$3,$4)}'


==>防火墙相关命令
关闭
/etc/rc.d/init.d/iptables stop
开启
/etc/rc.d/init.d/iptables start
查看当前配置:iptables -L
 
redhat :
chkconfig --level 2345 iptables off
service iptables stop
但是不推荐关闭防火墙
1) 重启后生效 
开启: chkconfig iptables on 
关闭: chkconfig iptables off 


2) 即时生效,重启后失效 
开启: service iptables start 
关闭: service iptables stop 


需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。 


在开启了防火墙时,做如下设置,开启相关端口, 
修改/etc/sysconfig/iptables 文件,添加以下内容: 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT


==> 找出文本文件里前50个相同的数据
    awk -F^A '{print $5}' /path/logs/access.log | sort | uniq -c | sort -nr | head -50


==>查看软中断
watch -d -n 1 'cat /proc/softirqs'


==>查看进程运行在哪个CPU上
ps -eo pid,args,psr 


==>指定进程运行于哪个CPU上
taskset -cp 3 [pid1]


==>中断号绑定到指定的CPU上
  1)如果开了irqbalance服务,需要先停止服务,否则后续的绑定将无效
    service irqbalance stop
  2)cpu_id 为 1, 2, 3 ....
    echo "cpu_id" > /proc/irq/78/smp_affinity


==>增加磁盘
  1)查看磁盘挂载情况
    fdisk -l


  2)对磁盘进行分区
   fdisk /dev/sdc


  3)对磁盘进行格式化
    mkfs -t ext3 /dev/sdc


  4)挂载磁盘
    mount /dev/sdc /data 
1 0