码迷,mamicode.com
首页 > 系统相关 > 详细

Linux命令大全

时间:2018-03-30 12:26:06      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:Linux命令大全详解

1.1常用基础命令总结

1.1.1mkdir创建目录

 

mkdir   创建目录  make directory 

   -p   一层一层创建目录 (递归)

举例:  mkdir -p /dataa/ /oldboy/ 

1.1.2.ls  显示目录中的内容   

 

显示目录中的内容,列表 list 

-l(小写字母L) 显示详细的信息     

-d             表示把目录当做普通文件来对待   显示目录本身的信息 

ls -l  /tmp      显示 /tmp 目录里面的详细信息 

ls -ld /tmp   ##显示 /tmp 目录本身的详细信息 

-F  给不同类型的文件加上不同的标记  /----表示目录 

-r  按照逆序(倒序,反过来)的顺序进行排列

-t  按照文件的修改时间排序 

ls -lrt 或  ll -rt 

举例:ls -r /data/ 

1.1.3pwd  显示当前你所在的位置 路径

 

显示当前你所在的位置 路径 

1.1.4cd   进入一个目录

 

改变当前你所在位置/路径/目录

cd - 表示回到上一次使用的工作目录(回到最近一次的位置)

举例:cd /data/ 

1.1.5touch创建文件

 

摸 创建文件  修改文件的时间戳 可以创建好几个文件

举例:touch /data/oldboy.txt ett.txt  

1.1.6.vi/vim   编辑

 

1)使用vi打开oldboy.txt

vi /data/oldboy.txt

默认是命令模式

2)i  ===>insert插入模式(编辑模式)  ====>然后输入文本

I am studying linux.

3)按esc键 我不想编辑了,退出编辑模式(插入模式),再次进入到命令模式

4):wq保存并退出

5)补充

:q  表示的是退出 quit 

:q! 表示强制退出  退出不保存 

vi   windwows记事本

vim  notepad++ emeditor 复杂

vi/vim 命令(快捷键)

gg   把光标移动到文件的第一行 

G    把光标移动到文件的最后行

set nu      ##显示行号,临时给你看

set nonu    ##不显示行号

x     删除光标所在的字母

批量删除

1.选择好你要删除的内容

ctrl+v  批量操作 可是块模式 

2.按x 删除 

批量插入 添加内容 

1.ctrl + v  选好范围

2.shift+ i输入你想要批量添加的内容

3.修改完成后,按esc

举例:vim /ett/profile 

1.1.7cat   显示文件内容

 

cat     显示文件内容 

往文件中一次放入多行 

cat >>/data/oldboy.txt<<EOF

I am studying linux.

I am studying linux.

I am studying linux.

I am studying linux.

I am studying linux.

I am studying linux.

EOF

cat -n  显示文件内容并显示行号

cat -A  显示文件中所有符号,以$结尾

举例:cat /data/ett.txt 

1.1.8echo  把后面的内容显示到屏幕

 

echo  把后面的内容显示(输出,打印)到屏幕

       -n    不输出结尾的回车

       -e    让echo命令支持 撬棍系列/转义符号系列   

       \t    tab8个空格长的位置   

\n    回车换行

举例echo 'I love you' >>/data/ett.txt 

1.1.9xargs  分组

 

xargs   分组

       -n 2  分成2组 每一行只显示2列。 

1.1.10cp   复制

 

cp    复制文件或目录  默认不能复制目录 

      -a  -pdr 

  -r  递归 目录及目录的内容(子孙后代)

      -p  复制的时候 保持文件或目录的属性不变。

举例:cp -r /data/ /root/ 

1.1.11mv  移动

 

mv  移动(搬家)  

    修改文件名

举例:mv /data /root

      mv /data/oldboy.txt data/ett.txt 

1.1.12rm   删除

 

rm   删除 删除文件或目录 默认只能删除文件 (remove)

     -r  递归 删除目录 及目录的内容(子孙后代)

     -f  强制删除 不给任何提示

举例:rm -f /data/oldboy   强制删除/data/oldboy 

      rm -r /data/         删除目录 

1.2常用的重要命令

1.2.1find  用来找文件或目录

 

find  用来找文件或目录  linux四剑客

      find /data/     -type f      -name "oldboy.txt"

      找哪里的? 找什么类型   找什么名字

      -maxdepth   1        表示find命令 查找的最大的深度(最多查找几层目录)

  -type  f            (file普通文件) 

  -type -d                   (directory目录 )

      -name "*.txt"         (需要查找的名字)

  -mtime +7            查找修改时间是7天以前的东西   修改时间

  -size +100k /-size +1M  根据大小查找东西    

举例:以.txt结尾的文件   find /data -type f -name "*.tx "-mtime +7 -size +1M 

1.2.2sed  擅长取某一行

 

sed   三剑客老二,擅长取某一行 

      -n  取消默认输出  与 p配合 

      -i  修改文件的内容

      '/找东西/'   oldboy.txt

      $NF/$p  最后一行

举例:sed -n '20,30p' ett.txt               (取出20-30行)

      sed -i 's#oldboy#oldgril#g' test.txt

[root@oldboyedu-39-nb ~]# sed -n '1,4p' person.txt    (p显示范围)

101,oldboy,CEO

102,zhangyao,CTO

103,Alex,COO

104,yy,CFO 

1.2.3awk  擅长取莫一列

 

awk   三剑客老大,擅长取某一列

      NR    行号 number of record       awk'NR==20,NR==30' ett.txt

      $数字 某一列 

      $NF   最后一列显示   '{print $3,$NF}'

      -F  指定菜刀 分隔符

      -F ":"    修改的是FS的内置变量

      -F ","    指定以逗号为菜刀 只有一把刀 

      -F "[ ,]"  指定多把菜刀

      '/找东西/' oldboy.txt

      !        表示取反 

      -v       修改/创建变量

      -e <script>或--expression=<script>:以选项中的指定的script来处理输入的文本文件;

      -e     进行多项编辑,即对输入行应用多条sed命令时使用

-f<script文件>或--file=<script文件>:以选项中指定的script文件来处理输入的文本文件;

OFS 相当于,里面的内容  awk在显示/输出某几列的时候 使用的分隔符

举例:awk -F ":" -vOFS=":"  '{print $NF,$6,$5,$4,$3,$2,$1}' /etc/passwd

[root@oldboyedu-39-nb ~]# echo 1 2 3 

1 2 3

[root@oldboyedu-39-nb ~]# echo 1 2 3 |awk -vOFS="###@@@####" '{print $1,$3}'

1###@@@####3 

举例:awk -F "[ ,]"  '{print $3,$NF}' /oldboy/oldboy.txt

      awk 'NR==30 NR==40' test.txt 

1.2.4grep擅长过滤,在文件中找东西

 

grep   三剑客老三,擅长过滤,在文件中找东西

-v   排除,把grep找到的东西 排除掉。

       -n   给显示到屏幕上的内容加上行号  给grep命令找到的东西 加上行号

       -i   过滤的时候,不区分大小写

       -c   统计行数,统计包含你想要的东西,一共有几行

举例:grep -v 'oldboy.1' /data/oldboy.txt 

1.2.5head  默认文件的前10行

 

head   头,取文件的头几行,默认文件的前10行 

       -num   取文件的头num行  ===== -n 数字       head -40

举例:head -40 test.txt 

1.2.6tail  默认取后十行

 

tail    尾,取文件的结尾的几行,默认文件的结尾的10行 tail -30

       -f  显示文件的实时更新  

 tail -f  ====== tailf

举例:tail -30 test.txt

      head -40 test.txt | tail -11           取30-40行 

1.3必知必会命令

1.3.1alias   别名

 

alias   查看或配置linux别名

       unalias 临时取消别名

举例:alias rm='echo rm wo not do'    临时

      vim /etc/profile                永久

      rm='echo rm wo not no'   

      source /etc/ profile            生效 

1.3.2ifup   启动某一块网卡

 

ifup    启动某一块网卡

        ifup eth0 

1.3.3ifdown  关闭某一块网卡

 

ifdown 关闭某一块网卡

        ifdown eth0

ifconfig  查看网卡的ip地址 

1.3.4uname  显示系统内核信息

 

uname  显示系统内核信息

        -r    显示的是内核版本

        -m   32位 64位 

1.3.5.whoami  查看当前用户名字

 

whoami  查看当前用户名字 

1.3.6su  切换用户

 

su   切换用户 (switch user 

     su  -  oldboy  

1.3.7df  查看磁盘使用情况

 

df   查看磁盘使用情况

     -h  --human-readable

举例:df -h           磁盘空间还剩余很多 

1.3.8chkconfig   自启动软件

 

chkconfig 用来管理开机自启动软件/服务 

--list    查看指定服务的开机启动状态 

chkconfig |grep ipt 

         --level   指定运行级别 

 chkconfig --level 0123456  iptables   off    开启

 chkconfig iptables off 

1.3.9  setenforce 设置selinux状态 

1.3.10  getenforce 查看selinux状态

1.3.11  tar  打包压缩

 

tar  linux里面打包压缩的工具 

zcvf 压缩  ==  zcf             tar zcvf /tmp/etc.tar.gz /etc/   

zxvf 解压  ==  xf              tar zxvf /tmp/etc.tar.gz -C /tmp/(解压路径)

ztf  查找  ==  tf               tar tf /tmp/etc.tar.gz

tar zchf    根据打包压缩软链接找到原文件(打包软链接时候才用)

1.z==> gzip 压缩工具

2.c==> create 创建(压缩)包--打包

3.v==> verbose 显示打包压缩过程(打包 压缩 解压过程)

4.f==> file 筐 指定压缩包的名字 

5.h==> zchf 打包的时候 遇到软连接 打包软连接指向的源文件

zcvf ----- zcf     etc.tar.gz            

z----gzip--   etc.tar.gz

j----bzip--   etc.tar.bz

z   --- gzip  压缩 

c   create  创建[压缩]包

v   显示过程 

f   指定压缩包(筐)的位置和名字

x   解开压缩包

t       list   查看压缩包中的内容

--exclude        打包压缩排除某个文件,使用相对路径 

-X --exclude-from   打包压缩根据一个清单(名单)来排除

-C --directory    解压到指定的文件夹(目录) 

1.3.12cut  取列 切

 

cut   取列 切

   -d  指定菜刀,一次只能指定一个菜刀 

-f  取某一部分

   -f1 取第一列

   -f1,3  取第一列和第三列 

   -f1-4  从哪里来到哪里去  取第一列到第四列   -f1,2,3,4

   -c    取某一列字符 (cut -c 1-5就是去1-5个字符) 

1.3.13wc  统计文件的内容 多少行 多大

 

wc   统计文件的内容 多少行 多大 

wc -l /etc/services      (wc -l 查看行号/行数) 

1.3.14source配置生效

 

source或.(点)  让一些配置生效 

source/etc/sysconfig/i18n    修改字符集

source/etc/profile      系统的环境变量 

1.3.15.which查找命令的位置

 

.which 查找命令的位置 绝对路径 全路径(根据PATH环境变量查找)

[root@olbboy39 ~]# which find

/bin/find 

1.3.16useradd  添加用户

 

useradd  添加用户 

   -u 指定用户的UID

   -s 指定用户使用的shell  /bin/bash /sbin/nologin 

   -M 创建用户的时候 不创建家目录 

   -g 添加用户的时候 指定属于哪个用户组 

1.3.17passwd  设置用户密码

 

passwd   给用户设置密码

--stdin   从管道前面获取密码,非交互式设置密码

[root@oldboyedu36 ~]# 

[root@oldboyedu36 ~]# echo 123456 |passwd --stdin oldboy

Changing password for user oldboy.

passwd: all authentication tokens updated successfully. 

1.3.18userdel 删除用户

 

userdel     删除用户,默认不会删除用户的家目录 和邮箱文件 

   -r      删除用户的家目录和邮箱 删除和用户有关的信息 

1.3.19usermod 修改用户信息

 

usermod  修改用户信息

   -s   修改用户使用的shell

   -g   修改用户属于的用户组    

1.3.20mount挂载

 

mount 挂载 

mount /dev/sdb1 /mnt

-t ext4 指定文件系统类型 

1.3.21umount  卸载

 

umount 卸载 

umount /mnt   卸载这个目录

-lf  强制卸载 

1.3.22file 查看文件是什么类型

 

file oldboy.txt    查看oldboy.txt 文件类型 

1.3.23ln 创建硬链接

 

ln   创建链接 默认创建硬链接

-s  创建软/符号链接

举例:ln oldboy.txt wang.txt

      ln -s oldboy.txt long.txt 

1.3.24hostname  修改主机名

 

hostname    修改主机名

hostname -I             ---表示查看所有网卡的IP地址信息

10.0.0.200 10.0.0.100 

hostname -i             ---表示查看hosts文件主机名映射的IP地址信息

10.0.0.200

   hostname  oldboyedu36                             临时

   /etc/sysconfig/network                            永久修改主机名 

1.3.25ps -ef查看sshd服务是否存在

 

[root@olbboy39 ~]# ps -ef |grep sshd

root       1478      1  0 Aug08 ?        00:00:00 /usr/sbin/sshd

root      13904   1478  0 00:11 ?        00:00:01 sshd: root@pts/1 

root      13966   1478  0 00:53 ?        00:00:00 sshd: root@pts/3 

root      14339   1478  0 03:01 ?        00:00:00 sshd: wanglong [priv]

wanglong  14343  14339  0 03:01 ?        00:00:00 sshd: wanglong@pts/0

root      15925   1478  0 04:44 ?        00:00:00 sshd: root@pts/2 

root      15991  15929  0 05:02 pts/2    00:00:00 grep --color=auto sshd

[root@olbboy39 ~]# 

1.3.26ps 显示正在运行的进程

 

[root@olbboy39 ~]# ps

   PID TTY          TIME CMD

 15929 pts/2    00:00:00 bash

 15977 pts/2    00:00:00 ps 

1.3.27lsof  显示出所有被打开的文件 

 

lsof+文件  或  lsof |grep 文件  显示某个文件被谁使用

进程调用数为零     lsof+文件  或  lsof |grep 文件 

硬链接数为零,但是进程调用数不为零-----lsof |grep delete  

rm -f /var/log/messages     (删除)

lsof |grep messages       (查看这个文件还有谁在用)

lsof |grep delete           (排查错误)

/etc/init.d/rsyslog restart (重启软件) 

1.3.28ls -lih    查看inode号码  

 

案例:

[root@39nu ~]# ls -lih

total 12K

260100 drwxr-xr-x. 2 root root 4.0K Jul 29 01:20 data

260216 -rw-r--r--. 1 root root    0 Jul 29 01:18 oldboy.txt

275228 -rw-r--r--. 2 root root   18 Jul 29 01:22 xiaowang

275228 -rw-r--r--. 2 root root   18 Jul 29 01:22 xiaowang-long:: 


1.3.29df -h     查看block用量情况

 

案例:

[root@39nu ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  1.5G  6.9G  18% /

tmpfs           491M     0  491M   0% /dev/shm

/dev/sda1       190M   35M  146M  19% /boot 


1.3.30du -h    查看每个文件的大小

 

案例:

[root@39nu ~]# du -sh

52K. 

1.3.31用{}备份

 

[root@39nu data]# echo lianxi.txt{,.bak}  (备份)

lianxi.txt lianxi.txt.bak

[root@39nu data]# \cp lianxi.txt{,.bak}

[root@39nu data]# ll

total 12

-rw-r--r--. 1 root root 183 Jul 30 23:47 lianxi.txt

-rw-r--r--. 1 root root 183 Jul 30 23:59 lianxi.txt.bak

-rw-r--r--. 1 root root 244 Jul 30 23:52 wang.tar.gz

[root@39nu data]# 

1.3.32tr sed的阉割版

 

tr:简单的替换

举例说明:

[root@39nu 20170118]# cat oldboy.txt|tr "[a-z]" "[A-Z]"  

I AM OLDBOY TEACHER!

I TEACH LINUX.

I LIKE BADMINTON BALL ,BILLIARD BALL AND CHINESE CHESS!

MY BLOG IS HTTP://OLDBOY.BLOG.51CTO.COM

OUR SITE IS HTTP://WWW.ETIANTIAN.ORG

MY QQ NUM IS 49000448.

NOT 4900000448.

MY GOD ,I AM NOT OLDBEY,BUT OLDBOY!

 

1.3.33egrep 过滤正则表达式高级处理

 

含义:过滤正则表达式高级处理

举例说明:

[root@39nu 20170118]# egrep "[a-z]+" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY! 

1.3.34date 时间 日期

 

date   -d  按照描述的时间显示,

       -s  设置修改时间

举例:

年-月-日_周几(+%F=+%Y-%m-%d_%w)      【中间不能有空格】

[root@39nu 20170118]# date -d "-3day"  【表示三天前】

Fri Jul 28 07:03:53 CST 2017

[root@39nu 20170118]# date -d "-3day" +%F    

2017-07-28

[root@39nu 20170118]# date +%T         【显示时分秒】

12:32:33

时间拓展知识:

创建文件——时间——拓展名

[root@39nu 20170118]# touch wang-$(date +%F).long

[root@39nu 20170118]# ls -lrt

-rw-r--r--. 1 root root   0 Aug  4 05:44 wang-2017-08-04.long

创建一个文件要求文件名是oldboy-2017-05-20.log 这种格式。

[root@39nu 20170118]# touch oldboy-$(date +%F).log

[root@39nu 20170118]# ls -lrt  (逆序时间)

-rw-r--r--. 1 root root   0 Aug  4 05:47 oldboy-2017-08-04.log 

1.3.35ntpdate  表示同步时间,自动修改时间

 

pool.ntp.org 

ntp1.aliyun.com 

time.nist.gov

root@39nu 20170118]# ntpdate pool.ntp.org       【方法一】

3 Aug 12:10:34 ntpdate[31617]: step time server 182.92.12.11 offset -13002721.841651 sec

[root@39nu 20170118]# ntpdate ntp1.aliyun com   【方法二】

3 Aug 12:13:15 ntpdate[31624]: adjust time server 182.92.12.11 offset 0.002576 sec 

1.3.36shutdown 关机   重启

 

-h   关机

-r   重启

-c   取消当前关机(重启)模式

shutdown -h 10   -h  ===== halt     (十分钟后关机)

shutdown -r 10   -r  ===== reboot   (十分钟后重启) 

1.1.1history 或者ctrl+r显示历史命令

1.1.2id  看用户信息,用户是否存在

 

举例:

[root@39nu 20170118]# id root

uid=0(root) gid=0(root) groups=0(root) 

1.1.3chmod  修改权限

 

举例:

-R   修改目录及子目录的权限 递归修改权限

+    增加权限

-   减去权限

=   先清除原有的权限在添加

[root@39nu 20170118]# chmod u+x oldboy.txt 

[root@39nu 20170118]# ll oldboy.txt 

-rwxr--r--. 1 root root 246 Jul 31 03:04 oldboy.txt

给主人家人陌生人都加上同样的rwx权限

[root@39nu 20170118]# chmod ugo=rwx oldboy.txt 

[root@39nu 20170118]# ll oldboy.txt 

-rwxrwxrwx. 1 root root 246 Jul 31 03:04 oldboy.txt

[root@39nu 20170118]# chmod a=rwx oldboy.txt 

[root@39nu 20170118]# ll oldboy.txt 

-rwxrwxrwx. 1 root root 246 Jul 31 03:04 oldboy.txt

[root@39nu 20170118]# chmod =rwx oldboy.txt 

[root@39nu 20170118]# ll oldboy.txt 

-rwxr-xr-x. 1 root root 246 Jul 31 03:04 oldboy.txt 

1.1.4stat 查看文件属性

 

[root@39nu data]# stat oldboydir/test.sh 

  File: `oldboydir/test.sh'

  Size: 0         Blocks: 0          IO Block: 4096   regular empty file

Device: 803h/2051dInode: 275227      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-08-04 18:09:55.524970601 +0800

Modify: 2017-08-04 18:09:55.524970601 +0800

Change: 2017-08-04 18:09:55.528969905 +0800 

1.1.5chattr 改变文件属性

 

chattr            授予文件或目录隐藏的权限

   a (append  只能追加) 如果设置这个权限,只能追加,不能删除,修改

   i (immuttable  无敌) 无法修改,无法删除

举例:

[root@olbboy39 ~]# chattr +a /oldboy/oldboydir/er.txt

[root@olbboy39 ~]# lsattr /oldboy/oldboydir/er.txt 

-----a-------e- /oldboy/oldboydir/er.txt

[root@olbboy39 ~]# chattr -a /oldboy/oldboydir/er.txt

 [root@olbboy39 ~]#  chattr -a /oldboy/oldboydir/er.txt

[root@olbboy39 ~]# lsattr /oldboy/oldboydir/er.txt 

-------------e- /oldboy/oldboydir/er.txt 

1.1.6lsattr 查看隐藏文件

 

举例:

[root@olbboy39 ~]# lsattr

-------------e- ./wanglong

-------------e- ./tmp

-------------e- ./lianxi.txt

-------------e- ./oldboy.txt

-------------e- ./data

-------------e- ./xiaowang

-------------e- ./xiaowang-long

[root@olbboy39 ~]# chattr +a /oldboy/oldboydir/er.txt 

[root@olbboy39 ~]# lsattr /oldboy/oldboydir/er.txt 

-----a-------e- /oldboy/oldboydir/er.txt

注:chattr命令不能保护/、/dev、/tmp、/var目录

    lsattr命令是显示chattr命令设置的文件属性 

1.1.7crontab ==crond 定时任务

 

-e:编辑该用户的计时器设置;

-l:列出该用户的计时器设置;

-r:删除该用户的计时器设置;

-u<用户名称>:指定要设定计时器的用户名称

[root@olbboy39 ~]# crontab  -l   (查看) 《===》cat /var/spool/cron/root 

no crontab for root

[root@olbboy39 ~]# #当前用户没有定时任务

[root@olbboy39 ~]# crontab  -e   (修改) 《===》vi/vim

#oldboy (添加一个oldboy)

crontab: installing new crontab

[root@olbboy39 ~]# crontab  -l

#oldboy 

1.1.8chown改变某个文件或目录的所有者和所属的组

 

-R    修改目录及子目录的所有者,递归修改文件或目录的所有者

chown change own 修改文件或目录的所有者

chown  oldboy.oldboy oldboy.txt

[root@olbboy39 ~]# ls -ld /oldboy/

drwxr-xr-x. 9 root root 4096 Aug  5 09:39 /oldboy/

[root@olbboy39 ~]# chown -R oldboy:root /oldboy/

[root@olbboy39 ~]# ls -ld /oldboy/

drwxr-xr-x. 9 oldboy root 4096 Aug  5 09:39 /oldboy/ 

1.1.9chgrp命令用来改变文件或目录所属的用户组

 

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;

-f或--quiet或——silent:不显示错误信息;

-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;

-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;

-v或——verbose:显示指令执行过程;

举例:

将/usr/meng及其子目录下的所有文件的用户组改为mengxin

[root@olbboy39 ~]# chgrp -R mengxin /usr/meng 

1.1.10history 显示你用过的命令

 

history  显示你用的命令,命令的历史记录

-d      数字 删除某一条用过的命令记录

-c      删除所有使用过的命令记录 

1.1.11groupadd 添加用户组 

 

groupadd 添加用户组 

   -g    指定gid 

1.1.12w  查看系统的负载

 

w    查看系统的负载 ,谁远程登陆了你的系统,并且他们在干啥

[root@olbboy39 ~]# w

' 04:44:25 up 2 days, 17:42,  5 users,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1     -                Sat14    5days  0.07s  0.07s -bash

wanglong pts/0    10.0.0.1         03:01    1:43m  0.04s  0.04s -bash

root     pts/1    10.0.0.1         00:11   40:27   0.37s  0.37s -bash

root     pts/2    10.0.0.1         04:44    1.00s  0.24s  0.16s w

root     pts/3    10.0.0.1         00:53   40:46   0.23s  0.05s -bash 

1.1.13 last  显示谁在哪里远程登录,登录了多久

 

last 显示谁在哪里远程登录 ,登录了多久

[root@olbboy39 ~]# last |head -5

root     pts/2        10.0.0.1         Fri Aug 11 04:44   still logged in   

wanglong pts/0        10.0.0.1         Fri Aug 11 03:01   still logged in   

root     pts/3        10.0.0.1         Fri Aug 11 00:53   still logged in   

root     pts/1        10.0.0.1         Fri Aug 11 00:11   still logged in   

root     pts/1        10.0.0.1         Thu Aug 10 23:13 - 00:11  (00:58)     

1.1.14 lastlog 显示系统中所有用户最近一次的登录信息

 

lastlog 显示系统中所有用户最近一次的登录信息

tail: cannot open `10' for reading: No such file or directory

[root@olbboy39 ~]# lastlog|tail -10

tcpdump                                    **Never logged in**

oldboy                                     **Never logged in**

oldgirl                                    **Never logged in**

test                                       **Never logged in**

wanglong         pts/0    10.0.0.1         Fri Aug 11 03:01:01 +0800 2017

dalongga                                   **Never logged in**

lidao                                      **Never logged in**

DLG555                                     **Never logged in**

mysql                                      **Never logged in**

liu                                        **Never logged in** 

1.1.15 locate 根据名字找到文件 根据一个列表(数据库)

 

locate 根据名字找到文件 根据一个列表(数据库)

[root@olbboy39 ~]# locate .txt|head -5

/2017/df.txt

/2017/df2.txt

/c/oldboy.txt

/data/oldboy11.txt

/data/oldboy12.txt 

1.1.16 whereis找出命令的位置  命令相关帮助文档的位置

 

whereis 找出命令的位置  命令相关帮助文档的位置

[root@olbboy39 ~]# whereis find

find: /bin/find /usr/bin/find /usr/share/man/man1p/find.1p.gz /usr/share/man/man1/find.1.gz 

1.1.1 fdisk 磁盘分区工具(用于MBR分区表,小于2TB的)

 

-b<分区大小>:指定每个分区的大小;

-l:列出指定的外围设备的分区表状况;

-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;

-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;

-v:显示版本信息。

-u: 以扇区的形式进行分区/查看 默认是柱面

-c: 禁止的DOS兼容模式

输入m列出可以执行的命令:

输入p列出磁盘目前的分区情况:

输入d然后选择分区,删除现有分区:

输入n建立新的磁盘分区,首先建立两个主磁盘分区: 

1.1.2 parted 磁盘分区工具

 

主要用于大于2TB的

用于gpt分区表

parted /dev/sdc print    (显示情况)

parted /dev/sdc mklabel gpt         

parted /dev/sdc mkpart primary 0 100   (创建分区) 

1.1.3mkfs 格式化磁盘或者创建新的文件系统

 

fs:指定建立文件系统时的参数;

-t<文件系统类型>:指定要建立何种文件系统;

-v:显示版本信息与详细的使用方法;

-V:显示简要的使用方法;

-c:在制做档案系统前,检查该partition是否有坏轨。

举例:

在/dev/hda5上建一个msdos的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:

mkfs -V -t msdos -c /dev/hda

1.1.4mkfs -t ext3 /dev/sda6     //将sda6分区格式化为ext3格式

mkfs -t ext2 /dev/sda7     //将sda7分区格式化为ext2格式

mkfs.ext4=mkfs -t ext4 

1.1.5tune2fs  修改文件系统信息

 

-i:间隔 文件系统检查的间隔

-c:次数 每次挂载多少之后进行磁盘检查

tune2fs -i 1 -c 1 /dev/adb1 

1.1.6dumpe2fs 显示文件系统(分区)的信息

 

-h  人类可读

inode size

block size

只对于 ext2/ext3/ext4文件类型 

1.1.7fsck 文件系统检查/修复文件系统的错误

 

-a:自动修复文件系统,不询问任何问题;

-A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;

-N:不执行指令,仅列出实际执行会进行的动作;

-P:当搭配"-A"参数使用时,则会同时检查所有的文件系统;

-r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;

-R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;

-s:依序执行检查作业,而非同时执行;

-t<文件系统类型>:指定要检查的文件系统类型;

-T:执行fsck指令时,不显示标题信息;

-V:显示指令执行过程。

举例:

linux的文件系统损坏会导致linux不正常关机,出错的时候如果系统告诉你是哪一块硬盘的分区有问题,比如是/dev/hda2,接着用如下的命令去对付它: 

fsck -y /dev/hda2 

1.1.8 dd复制文件并对原文件的内容进行转换和格式化处理(创建一个块)

 

bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数;

cbs=<字节数>:转换时,每次只转换指定的字节数;

conv=<关键字>:指定文件转换的方式;

count=<区块数>:仅读取指定的区块数;

ibs=<字节数>:每次读取的字节数;

obs=<字节数>:每次输出的字节数;

of=<文件>:输出到文件;

seek=<区块数>:一开始输出时,跳过指定的区块数;

skip=<区块数>:一开始读取时,跳过指定的区块数;

--help:帮助;

--version:显示版本信息。

实例:                                         每次读多少 读多少次

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s


[root@localhost text]# du -sh sun.txt 

1.1M    sun.txt

dd if =/dev/sda of =/tmp/mbr.bin bs=512 count=1

dd if=/dev/zero of =/tmp/swap bs=1M count=100 

1.1.9mkswap在一个文件或者设备上建立交换分区

 

-c:建立交换区前,先检查是否有损坏的区块;

-f:在SPARC电脑上建立交换区时,要加上此参数;

-v0:建立旧式交换区,此为预设值;

-v1:建立新式交换区。 

1.1.10swapon 上swap生效或,让文件/分区作为swap

 

-s 显示swap统计信息

[root@olbboy39 ~]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition7864280-1 

1.1.11swapoff 关闭

1.1.12 du 显示目录/文件占地面积(所占的磁盘空间)

 

-s 显示一共多大

-h 人类可读

[root@olbboy39 ~]# du -s

764.

[root@olbboy39 ~]# du -h

8.0K./wanglong

4.0K./tmp

4.0K./backup

12K./test

4.0K./backcp

4.0K./dalongge

4.0K./oldboy

764K. 

1.1.13free 显示系统内存 swap的使用情况

 

-h 人类可读

-m 以MB为单位大小

[root@olbboy39 ~]# free -h

             total       used       free     shared    buffers     cached

Mem:          980M       518M       461M       256K       120M       169M

-/+ buffers/cache:       228M       752M

Swap:         767M         0B       767M 

1.1.14 bc 计算器

 

[root@olbboy39 ~]# echo 3*3 |bc

9

[root@olbboy39 ~]# awk 'BEGIN{print 1/3}'

0.333333 

1.1.15rename 批量改变文件名

1.1.16read linux的内置命令 从命令行读取内容放到变量中

 

-p 提示 

[root@olbboy39 ~]# read -p "wang: " oldboy

wang: wanbg

[root@olbboy39 ~]# echo $oldboy 

wanbg 

1.1.17 test 测试

 

-q     等于              ==                       [ 3 == 3 ]

-gt    大于              >                        [ 3 -gt 2 ]

-ge    大于等于          >=                       [ 3 -ge 3 ]

-lt    小于              <                        [ 3 -lt 6 ] 

1.1.18 sort 让相同数组放在一起

1.1.19 uniq 让几个相同的紧挨在一起的数组,只出现一次

 

-c 显示相同的数组一共出现几次 

1.1.20 column -t 让查找出来的内容间隔对齐

1.1.21 dig 域名查询解析工具

1.1.22 nslookup  域名查询解析过程

1.1.23 host  域名查询解析过程

1.1.24 ping  域名查询解析过程

01. 利用dig

dig www.oldboyedu.com

dig @8.8.8.8 www.baidu.com +trace    ---@后面地址信息表示利用什么服务器作为LocalDNS服务器                             ---+trace 表示追踪整个DNS的详细解析过程

02. 利用nslookup

nslookup www.oldboyedu.com

03. 利用host

host www.oldboyedu.com

04. 利用ping

ping www.oldboyedu.com

[root@olbboy39 ~]# dig www.baidu.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.baidu.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29775

;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0


;; QUESTION SECTION:

;www.baidu.com.INA


;; ANSWER SECTION:

www.baidu.com.211INCNAMEwww.a.shifen.com.

www.a.shifen.com.211INA61.135.169.125

www.a.shifen.com.211INA61.135.169.121


;; Query time: 119 msec

;; SERVER: 223.5.5.5#53(223.5.5.5)

;; WHEN: Mon Aug 21 14:55:13 2017

;; MSG SIZE  rcvd: 90

1.1.25traceroute 追踪数据包在网络上的传输时的全部路径,默认数据包小于40字节

1.1.26 route -n 查看路由报表信息

1.1.27 netstat -rn  查看路由报表信息

[root@olbboy39 ~]# netstat -rn

Kernel IP routing table    内核IP路由表

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

0.0.0.0         10.0.0.2        0.0.0.0         UG        0 0          0 eth0

1.1.28 tcpdump

 

选项参数说明   

-i是interface的含义

指我们有义务去告诉tcpdump希望去监听哪一个网卡,这在一台服务器有多块网卡时很有必要   

-nn意思是当tcpdump遇到协议号或端口号时,不要将这些号码转换成对应的协议名称或端口名称,比如众所周知21端口是FIP端口,我们希望显示21,而非tcpdump自作聪明的将它显示成FIP   

-X告诉tupdump命令,需要把协议头和包内容都原原本本的显示出来(tupdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器,

如果不进行原本的显示输出,当将收到的信息放入到其他专业分析包软件中分析会有问题   

-c是Count的含义

这设置了我们希望tcpdump帮我们抓几个包,设置的是1,所以tupdump不会帮我再多抓哪怕一个包回来   

-w将流量保存到文件中

tcpdump的-w方式是把raw packets(原始网络包)直接存储到文件中了,也就是存储的都是结构体系,而非是分析之后的文本格式的信息,因此是无法直接通过less命令查看的   

-r读取raw packets文件 

1.1.29路由添加方法 

方法一:

[root@olbboy39 ~]# route add default gw 10.0.0.10

[root@olbboy39 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

0.0.0.0         10.0.0.10       0.0.0.0         UG    0      0        0 eth0

0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0

[root@olbboy39 ~]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 10.0.0.1

[root@olbboy39 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

172.16.1.0      10.0.0.1        255.255.255.0   UG    0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0

[root@olbboy39 ~]# route del -net 172.16.1.0 netmask 255.255.255.0 gw 10.0.0.1

[root@olbboy39 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0

1.1.30配置多个IP方法

方法一:

[root@olbboy39 ~]# ifconfig eth0:0 10.0.0.201/24 up

[root@olbboy39 ~]# ifconfig 

eth0      Link encap:Ethernet  HWaddr 00:0C:29:7F:89:20  

          inet addr:10.0.0.200  Bcast:10.0.0.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe7f:8920/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:198224 errors:0 dropped:0 overruns:0 frame:0

          TX packets:143038 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:42234001 (40.2 MiB)  TX bytes:38936123 (37.1 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:7F:89:20  

          inet addr:10.0.0.201  Bcast:10.0.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:8 errors:0 dropped:0 overruns:0 frame:0

          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:610 (610.0 b)  TX bytes:610 (610.0 b)

方法二:

[root@olbboy39 ~]# ip addr add 10.0.0.13/24 dev eth0:

[root@olbboy39 ~]# ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:7f:89:20 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.200/24 brd 10.0.0.255 scope global eth0

    inet 10.0.0.201/24 brd 10.0.0.255 scope global secondary eth0:0

    inet 10.0.0.13/24 scope global secondary eth0

    inet6 fe80::20c:29ff:fe7f:8920/64 scope link 

       valid_lft forever preferred_lft forever

注意: 配置完成以后需要使用ip add命令记性查看

说明:默认centos7里面使用网络的查看与配置命令为ip addr

辅助IP的标签设置

ip addr add 10.0.0.201/24 dev eth0 label eth0:1   标注:

[root@olbboy39 ~]# ip addr add 10.0.0.13/24 dev eth0 label eth0:1

[root@olbboy39 ~]# ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:7f:89:20 brd ff:ff:ff:ff:ff:ff

    inet 10.0.0.200/24 brd 10.0.0.255 scope global eth0

    inet 10.0.0.201/24 brd 10.0.0.255 scope global secondary eth0:0

    inet 10.0.0.13/24 scope global secondary eth0:1

    inet6 fe80::20c:29ff:fe7f:8920/64 scope link 

       valid_lft forever preferred_lft forever

1.2其中结构有关命令

1.2.1 rpm rpm包查询  安装

rpm -qa |grep rsync——检查软件是否安装

rpm  -ql rsync——查看软件包里面有什么内容

rpm  -qf 查询某一个命令或者文件(配置文件)属于哪一个软件包(使用决定路径—例如—`which ssh`)

-vih  软件包.rpm   安装rpm软件包   (很少用)

实例:

[root@olbboy39 ~]# rpm -qa |grep tree

tree-1.5.3-3.el6.x86_64

[root@olbboy39 ~]# rpm -ql tree

/usr/bin/tree

/usr/share/doc/tree-1.5.3

/usr/share/doc/tree-1.5.3/LICENSE

/usr/share/doc/tree-1.5.3/README

/usr/share/man/man1/tree.1.gz

1.2.2yum 安装软件

yum install -y + 软件名

1.2.3查看当前系统每个IP的连接数

ss -ant /netstat -ant 

[root@web01 mnt]# netstat -ant

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      

tcp        0     64 10.0.0.8:22                 10.0.0.253:49688            ESTABLISHED 

tcp        0      0 :::873                      :::*                        LISTEN      

tcp        0      0 :::22                       :::*                        LISTEN      

1.2.4查看开放端口

netstat -an /netstat -ant /ss -ant /ss -an 

[root@web01 mnt]# netstat -ant

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      

tcp        0     64 10.0.0.8:22                 10.0.0.253:49688            ESTABLISHED 

tcp        0      0 :::873                      :::*                        LISTEN      

tcp        0      0 :::22                       :::*                        LISTEN     

1.2.5查看tcp连接状态 

netstat -lntup /ss -lntup

[root@web01 mnt]# netstat -lntup

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      27169/rsync         

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1188/sshd           

tcp        0      0 :::873                      :::*                        LISTEN      27169/rsync         

tcp        0      0 :::22                       :::*                        LISTEN      1188/sshd     

1.2.6reload 平滑重启

/etc/init.d/nfs reload    (重启nfs)

1.2.7rsync服务及重要参数

rsync -azvP /backup/ rsync_backup@172.16.1.41::nfsbackup --passwrod-file=/etc/rsync.password

[-a参数]<==================>rtopgDl

1 -a选项是rsync里比较霸道的一个选项,因为你使用-a选项,就相当于使用了-rlptgoD这一坨选项。以一敌七,唯-a选项也。(在看了前文之后,你应该可以很轻松的理解这七个选项的作用了)

2 -a选项的学名应该叫做archive option,中文叫做归档选项。使用-a选项,就表明你希望采取递归方式来同步,且尽可能的保持各个方面的一致性。

3 但是-a选项也有阿克琉斯之踵,那就是-a无法同步“硬链接”情况。如果有这方面需求,要加上-H选项。

[--delete选项、--delete-excluded选项和--delete-after选项]

[-v参数]

这个选项,简单易懂,就是让rsync输出更多的信息,我们可以举一个例子:

$ rsync -vI main.c machineB:/home/userB                                                   

main.c

sent 81 bytes  received 42 bytes  246.00 bytes/sec

total size is 11  speedup is 0.09

你增加越多的v,就可以获得越多的日志信息。

[-z参数]

这是个压缩选项,只要使用了这个选项,rsync就会把发向对端的数据先进行压缩再传输。对于网络环境较差的情况下建议使用。

一般情况下,-z的压缩算法会和gzip的一样。

[--exclude=PATTERN]  指定排除不需要传输的文件(和tar参数一样)

[root@nfs01 ~]# rsync -avz --exclude=a --exclude=b --exclude=c/2.txt /oldboy/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 

sending incremental file list

./

c/

c/1.txt

c/3.txt

d/

d/1.txt

d/2.txt

d/3.txt

sent 300 bytes  received 114 bytes  828.00 bytes/sec

total size is 0  speedup is 0.00

[--exclude-from=file]  文件名所在的目录文件,既可以实现排除多个文件(和tar参数一样)

[root@nfs01 oldboy]# rsync -avz --exclude-from=/oldboy/pichu.txt /oldboy/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 

sending incremental file list

./

pichu.txt

c/

c/1.txt

c/3.txt

d/

d/1.txt

d/2.txt

d/3.txt

sent 382 bytes  received 133 bytes  1030.00 bytes/sec

total size is 12  speedup is 0.02

[--bwlimit=RATE]   案列:某DBA做数据同步,宽带占满,导致用户无差异同步数据

[--delete]  让目标目录SRC和源目录数据DST一致,即无差异同步数据

rsync -avz --delete /oldboy/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 

注释:这条命令起到/oldboy/目录和/backup/目录同步==》第一个目录有什么第二个就有什么,一模一样! 

说明:使用无差异同步时,要小心谨慎

1.2.8nfs服务及重要参数

[root@web01 mnt]# mount -t nfs 172.16.1.31:/data /mnt

[root@web01 mnt]# df -h

Filesystem         Size  Used Avail Use% Mounted on

/dev/sda3          8.8G  1.5G  6.9G  18% /

tmpfs              238M     0  238M   0% /dev/shm

/dev/sda1          190M   35M  146M  19% /boot

172.16.1.31:/data  8.8G  1.5G  6.9G  18% /mnt

rpm -qa|grep rpc             检查NFS RPC服务软件有没有安装

rpm -ql nfs-utils            -ql 参数表示查看安装好的软件,都安装了哪些信息

rpm -qf `which ssh`          -查看某个命令或文件属于那个大礼包

/etc/rc.d/init.d/rpcbind     - 启动脚本命令

/usr/sbin/rpcinfo            - 查看NFS注册信息的

showmount -e localhost       查看nfs配置是否生效

rpcinfo -p 10.0.0.31    查看注册信息

rw                   读写访问 

sync                 所有数据在请求时写入共享 

async                NFS在写入数据前可以相应请求 

secure               NFS通过1024以下的安全TCP/IP端口发送 

insecure             NFS通过1024以上的端口发送 

wdelay               如果多个用户要写入NFS目录,则归组写入(默认) 

no_wdelay            如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 

hide                 在NFS共享目录中不共享其子目录 

no_hide              共享NFS目录的子目录 

subtree_check        如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 

no_subtree_check     和上面相对,不检查父目录权限 

all_squash           共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 

no_all_squash        保留共享文件的UID和GID(默认) 

root_squash          root用户的所有请求映射成如anonymous用户一样的权限(默认) 

no_root_squas        root用户具有根目录的完全管理访问权限 

anonuid=xxx          指定NFS服务器/etc/passwd文件中匿名用户的UID 

anongid=xxx          指定NFS服务器/etc/passwd文件中匿名用户的GID

cat /var/lib/nfs/etab    --- NFS服务共享目录配置参数查看文件

cat /proc/mounts         --- NFS客户端挂载后配置参数查看文件 

说明:配置读写权限时,不管服务端还是客户端,只要有一方配置为ro,即最终目录权限为只读权限

exportfs管理命令说明

[root@nfs01 /]# /usr/sbin/exportfs -rv

exporting 172.16.1.0/24:/data/r

exporting 172.16.1.0/24:/data/w

[root@nfs01 /]# # /usr/sbin/exportfs 调换掉 /etc/expots 文件

[root@nfs01 /]# exportfs -o rw,sync  172.16.1.0/24:/data

[root@nfs01 /]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data   172.16.1.0/24

/data/r 172.16.1.0/24

/data/w 172.16.1.0/24

[root@nfs01 /]# cat /etc/exports (nfs配置文件)

#/data 172.16.1.0/24(rw,sync)

/data/w 172.16.1.0/24(rw,sync,all_squash)

/data/r 172.16.1.0/24(ro,sync,all_squash)

[root@nfs01 /]# /usr/sbin/exportfs -rv  

exporting 172.16.1.0/24:/data/r

exporting 172.16.1.0/24:/data/w

[root@nfs01 /]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data/r 172.16.1.0/24

/data/w 172.16.1.0/24

 

挂载命令挂载的格式类型nfs服务器端提供的共享目录nfs客户端的挂载点   

mount -t   nfs  172.16.1.31:/backup /mnt (必须存在)   

完成挂载命令为:mount -t nfs 172.16.1.31:/backup /mnt   次命令要在客户端执行 

1.2.9killall 杀掉进程  根据进程的名字

1.2.10kill   杀掉进程  根据进程的号码pid

-9 表示强制删除 杀掉  ===》工作中避免使用

1.2.11pkill  杀掉进程  根据进程的名字 ==》危险不建议用

1.2.12inotify语法测试

1.监控测试创建事件create 

inotifywait -mrq  /backup  --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e create 

2.监控测试删除事件delete

inotifywait -mrq  /backup  --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e delete

3.监控测试修改事件close_write

inotifywait -mrq  /backup  --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e close_write

4.监控测试移动事件move move_to move_from

inotifywait -mrq  /backup  --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e move

inotifywait -mrq  /backup  --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e move_to

inotifywait -mrq  /backup  --format '%T %w%f' --timefmt '%d/%m/%y %H:%M' -e move_from

5.监控显示所有事件,并显示事件信息

inotifywait -mrq  /backup  --format '%w%f 事件: %e' 

6.监控事件信息精简标准命令

inotifywait -mrq  /backup  --format '%w%f'  -e create,delete,moved_to,close_write

inotifywait /nfsbackup/                             临时监控

inotifywait -r -m /nfsbackup/                       永久监控

1.2.13inotify服务参数

-r| --recursive Watch directoriec recursively      递归监控目录数据信息变化

-q| --quiet Print less (only print events)         打印很少的信息,仅仅打印监控事件的信息

-m| monitor keep listening for events forever      始终保持事件的监听状态

--excludel                排除文件某些目录或文件 不进行监控

--excludei<pattern>       排除文件或目录时,不区分大小写

--timefmt<fmt>            指定时间输出的格式

--format<fmt>             实际监控输出的内容

-e                        指定监听指定的事件,如果省略,表示所有事件都监听

access                    文件或目录被读取

modify                    文件或目录内容被修改

attrib                    文件或目录属性被改变

close                     文件或目录封闭,无论读写模式

open                      文件或目录被打开

moved_to                  文件或目录被移动至监控目录中

move                      文件或目录被移动至另外一个目录或从另外一个目录移动至当前目录

crcatc                    文件或目录被创建在当前目录

1.2.14inotify时间命令参数

 

%w事件出现时,监控文件或目录的名称信息   

%f事件出现时,将显示监控目录下触发事件的文件或目录信息,否则为空   

%e显示发生的事件信息,不同的事件信息用逗号进行分隔   

%Xe显示发生的事件,不同的事件用X进行分隔,可以修改X为指定分隔符   

%T输出时间格式中定义的时间格式信息,通过--timefmt option 语法格式指定时间信息,这个格式是通过strftime函数进行相匹配时间格式信息的   

%d 每月的第几天,显示信息为十进制数(范围是01-31)   

%m显示月份,显示信息为十进制(范围01-12)   

%M显示分钟,显示信息为十进制(范围00-59)   

%y年份信息,显示信息为十进制,并且没有世纪信息   

%Y年份信息,显示信息为十进制,并且包含世纪信息   

%H小时信息,显示信息为十进制,使用24小时制(范围00-23)   

说明:以上信息可以通过man strftime信息获取 

1.1.1inotify脚本相关参数

Ctrl+z     暂停运行进程

jobs       检查放入后台运行的进程信息

bg         表示后台运行进程

fg         表示前台运行进程

让脚本程序在后台运行的方法:

1. sh inotify.sh &

2. nohup sh inotify.sh &

1.1.2inotify优化相关参数

max_queued_events:设置inotify实例事件(event)队列可容纳的事件数量

max_user_watches: 设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)

max_user_instances:设置每个用户可以运行的inotifywait或inotifywatch命令的进程数

1.1.3ssh-keygen 创建公钥

[root@m01 ~]# ssh-keygen -t dsa                          (创建秘钥对,公钥,私钥)

[root@m01 ~]# ssh-keygen -t dsa -f /root/.ssh/id_dsa -P ""    dsa秘钥类型

1.1.4ssh-copy-id 分发公钥

[root@m01 ~]# ssh-copy-id -i /root/.ssh/id_dsa.pub root@172.16.1.41

1.1.5sshpass 免密码分发公钥

sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no root@172.16.1.31"

1.1.6ansible常用模块命令

command命令模块

[root@m01 ~]# ansible oldboy -m command -a "hostname"

ping模块

[root@m01 ~]# ansible all -m ping 

copy复制拷贝模块

[root@m01 ~]# ansible oldboy -m copy -a "src=/etc/hosts dest=/opt/oldboy/oldgirl/"

file管理软件服务模块,例如:创建文件或目录,修改属性

[root@m01 ~]# ansible 172.16.1.8 -m file -a "dest=/data/wanglong mode=700 owner=root group=root"

shell万能模块

[root@m01 ~]# ansible oldboy -m shell -a "cat /etc/hosts >/tmp/oldboy39.txt"

script远程执行脚本模块

[root@m01 ~]# ansible oldboy -m script -a "/server/scripts/yum.sh"   --- 远程执行本地脚本中的命令

cron定时任务模块

[root@m01 ~]# ansible oldboy -m cron -a 'name=hello minute=*/2 job="echo hello >>/tmp/oldboy.log 2>&1"'

yum安装模块

[root@m01 .ssh]# ansible oldboy -m yum -a "name=nmap state=installed"

raw类似于command模块,但是支持管道

[root@m01 ~]# ansible testservers -m raw -a "ifconfig eth0 |sed -n 2p |awk '{print \$2}' |awk -F: '{print \$2}'"

service 管理软件服务模块

[root@m01 ~]#ansible oldboy -m service -a "name=crond state=stop enabled=no"

1.1.7http协议取状态码命令

1. curl -I www.jd.com  -s|awk 'NR==1{print$2}'

2.  curl -I -s -w %{http_code} -o /dev/null www.etiantian.org     

3. curl -s -w "%{http_code}\n" -o /dev/null www.etiantian.org

1.1.8curl

[root@nfs01 ~]# curl www.baidu.com

1.1.9Nginx软件相关命令

/application/nginx/sbin/nginx                <- 启动nginx  

/application/nginx/sbin/nginx -t             <- 检查配置文件语法信息是否正确

/application/nginx/sbin/nginx -s reload      <- 平滑重启

ss -lntup|grep nginx                         <- 监听地址信息发生变化

/application/nginx/sbin/nginx -s stop        <- 检查语法配置正确后,进行优雅关闭nginx服务

curl 10.0.0.8                                 <- 利用curl命令本地检测nginx配置是否成功;

nginx -V                                      ---查看编译参数中,是否加载了状态模块信息

1.1.10MySQL相关命令

/etc/init.d/mysqld start             启动数据库

/etc/init.d/mysqld stop              关闭数据库

mysql -uroot -poldboy123             进入数据库

show databases;               <--- 查询默认的数据库信息

use mysql;                    <--- 表示选择使用一个数据库,相当于cd进入一个数据库

select database();            <--- 表示查看当前所在数据库,类似于pwd命令的功能

select user();                <--- 查看当前登录数据库的用户,类似于whoami命令

create database wordpress;         创建数据库

drop database wordpress;            删除数据库

select user,host from mysql.user;   ---查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库

1.1.11PHP相关命令

/application/php/sbin/php-fpm       启动PHP

lsof -i :9000                       <--- 确认php 9000端口是否正确启动

ps -ef|grep php-fpm

1.1.1upstream 模块参数说明

upstream模块的内容应放于nginx.conf配置的http{}便签内,其默认调度节点算法是wrr(weighted round-robin,即权重轮询),

 

upstream模块内参数参数说明   

server 10.0.0.8:80负载均衡后面的RS配置,可以是IP或域名,如果端口不写,默认80端口,高并发场景下,IP可换成域名,通过DNS做负载均衡   

weight=1代表服务器的权重,默认值为1。权重数字越大表示接受的请求比例越大   

max_fails=1Nginx尝试连接后端主机失败后的次数,这个数值是配合proxy_next_upstream,fastcgi_next_upstream和memcached_next_upstream这三个参数来使用的,当Nginx接收后端服务器的返回这三个参数定义的状态码时,会将这个请求转发给正常工作的后端服务器,例如404,502,503,max_fails的默认值是1   

backup热备配置(RS节点高可用)当前面激活的RS都失败会自动启用热备RS,这标志着这个服务器作为备份服务器,若主服务器全部宕机了,就会向它转发请求;

注意:当负载度数算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup   

fail_timcout=10s在max_fails定义的失败次数后,距离下次检测的间隔时间,默认是10s,如果max_fails是5,它就检测5次,如果5次都是502,那么 ,它就会根据fail_timeout的值,等待10s再去检查一次,如果持续502,在不重新加载Nginx配置的情况下,每隔10s都只检测一次,常规业务2-3秒比较合适,比如京东3秒,蓝汛3秒,可根据业务需求去配置   

down这标志着服务器永远 不可用,这个参数可配合ip_hash使用。 

1.1.2LNMP相关命令

:set nopaste 关闭缩进功能

:set paste   开启缩进功能

sz -y  +文件     (下载到桌面)

rz -y  +文件     (上传到Xshell)

vimdiff    (比对两个文件)

 




Linux命令大全

标签:Linux命令大全详解

原文地址:http://blog.51cto.com/dalongge/2092818

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!