标签: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命令大全详解
原文地址:http://blog.51cto.com/dalongge/2092818