Linux基础命令

1; find /web/phpweind/  -type d -exec chmod -R 777 { } \;         //批量修改权限

2; log-slave-updates                                                               //将 relay-bin-log  写到到 bin-log,双主应用

3; cat >/home/test <<EOF    hello  EOF   与  cat >>/home/test <<EOF ..

4;  find /home/  -name a  &> /dev/null

5; useradd -d  /itiit //指定家目录    userdel -r //删除家目录相关

6;常用熟知端口: ftp 21 ssh 22   dns 53  dhcp 67 68   pop3  110   imap 143  mysql 3306  http  80   smtp 25

0-1023     熟知端口

1024-65535  动态端口 

7;raid 0 多个磁盘,提高传输率     raid1  ,数据磁盘镜像实现数据冗余,安全性 ; raid 5,分布式奇偶校验独立磁盘结构,奇偶校验码存在所有磁盘,通过校验位恢复损坏磁盘(至少3块

8; apache 工作模式: prefork (多进程,进程生子进程  ),worker(多进程,每个进程生成多线程)   http -l  查看apache当前的模块,有 worker.c 就是在worker,有prefork.c就在prefork下。

脚本基础:

1;if  [ ] ;then
        command
     else
        command
      fi

     for (( var=1 ; var < 6 ; var++ ))
            do
                command
            done

     while  [条件]
     do
           command
     done

    case  "chioce" in
       "var1" )
           command
         ;;
         "var2" )
          command
         ;;
         * )
         command
      esac

  

2; $0  ,脚本名 ; $1,第一个参数  $$ ,运行的PID;  $*,所有参数 ; $#,参数个数 $? ,执行是否成功;

   $!, shel最后运行进程的pid;

   $@ 与 $* 基本上与上面相同。只不过是
 “$*”返回的是一个字符串,字符串中存在多外空格。
 “$@”返回多个字符串

3; #! /bin/bash     //脚本实现mysql操作

mysql <<ab

show databases;

quit

ab   //任意与前面一致

4; ^#    以#号开头 #$    以#号结束;#$    以#号结束   ;[^abc]    只要出现了abc这三个字母以外的字符就都匹配

    大写 [[:upper:]]  [A-Z]
    小写 [[:lower:]]  [a-z]
    字母 [[:alpha:]] [a-Z]    
    字母数字 [[:alnum:]]
    空格或者制表符 [[:blank:]]
    纯数字 [[:digit:]] [0-9]
    标点符号 [[:punct:]]

5; cut -d" "  -f1   ;sort -t" " -k1  ; awk -F" " '{print $1}'      //$0 所有域,整条记录数;$1 第一个域  内置变量 NF(浏览记录域的个数 ,NR (已读的记录数($NR最后一列

awk -F"[:)]"   --以:或)为分隔符    awk -F"[:)]*"    --多个

awk  -F:  ‘BEGIN {处理前执行的代码块} {处理过程中执行的代码块} END {处理文件后执行的代码块}'   filename

awk -F: 'BEGIN {line=0;field=0} { if (NF>5)  line=line+1; if (NF>5) field=field+NF} END {print "大于5的总行 数为"line"\n大于5的总列数为"field}' /etc/passwd    --正确写法

6; sed -e '2d'    --指定删除第二行  ;sed -ne '/^root/p'    --只打印匹配的行

   sed -e '2,4s/:/&@_@&/g' --指定替换2到4行

7 ;分区命令 fdisk (2T以内); parted(2T以上  

fdisk  /dev/sda --> 分区,格式化(mkfs.ext4 /dev/sda ),挂载 ,放fstab --> mount -a (配置生效   

parted /dev/sda  --> mklabel gpt --> mkpart 分区 -->格式化(mkfs.ext4 /dev/sda ),挂载 ,放fstab --> mount -a (配置生效

8; df -h //所有文件系统  du -sh //一个文件夹大小

9;查看在线用户数 uptime ,查看系统版本 uname -a ,  查操作系统版本: /etc/issue

10;tar -xf   /解压

   tar -c[z,j]f  /压缩   eg:  tar  --exclude  /home/no -zcvf myfile.tar.gz /home/* /etc   #除/home不压 

   tar -zcvf 打包后生成的文件名全路径 要打包的目录
   tar -zcvf /home/xahot.tar.gz /test

11; 端口检查,常用命令: 

     netstat -anp/lnt |grep port   #查看端口的占用情况

     lsof -i:8080|grep "\[LISTEN\]"

    ss -l

    ss -l 显示本地打开的所有端口
    ss -pl 显示每个进程具体打开的socket
    ss -t -a 显示所有tcp socket
    ss -u -a 显示所有的UDP Socekt
    ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接
    ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
    ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程
    ss -s 列出当前socket详细信息:


12、usermod -a -G group user  / gpasswd -a user group   //两种方法添加其他用户

13、date -d '-30 day' +%Y-%m-%d              //三十天以前 

14、 modprobe drbd                                                //加载模块

        lsmod |grep drbd                                           //查看模块是否加载到内核中


15、 strace                                                     //追踪命令

       strace -p 5086 -o result.txt -t 

       strace -c  -p 5086                                //查看一个进程cpu 时间,错误等


16、模块相关命令

lsmod                          //列出已加载模块

modprobe    ip_table     // 加载 ip_talbe 模块         

17、tcpdump

tcpdump tcp port 25 and host 192.168.0.184

tcpdump host 192.168.0.183 and !192.168.0.183


你可能感兴趣的:(Linux基础命令)