linux命令用途

本文档详尽地介绍了 Linux 系统中的各种命令及其用法,包括文件操作、目录管理、用户管理、网络配置等多个方面,是 Linux 初学者和专业人员不可或缺的参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:mkdir     创建目录的命令 make directorys
         -p  递归创建


2: ls    -1(long)d(directory)显示目录或者文件 全称list
         -d  只想查看文件
-ld  查看文件和内容
-a   显示所有文件
-li  
         -i    文件的索引号
-h    人类可读
-F    给不同类型文件结尾加不同的符号
-p    只是给目录添加/
3:cd    切换目录层次 change directory
         -     回到上一次目录
~     回到根目录
         cd . 当前目录
         cd ..  去上一级目录


4:pwd   查看当前目录


5: touch  “摸”。就是“摸”一下文件,如果文件不存在,就建立新文件,如果文件存在,就改变文件的 
   反问时间atime等时间戳信息。  创建文件     cd /data;touch oldboy.txt           touch/data/oldboy.txt


6:目录分割区别:
   windows 的目录分隔 D:\PIC\tmp-snap-pic201407起
   linux的目录分隔  /data/


7:vi 1.txt 进入VI编辑器(默认命令模式) 点击a或i 进入编辑模式,敲入内容I amstudying linux,然
     后按键盘上的esc键退出编辑模式(进入到命令模式),最后敲:wq 保存并退出。wq 解释write quit.


8: vi/vim   记事本编辑器  命令模式(:wq :q :q! :wq!)<===>插入模式(esc切换命令模式)
    w write  q  quit   !强制
:set nu  显示行号,dd删除当前行,yy拷贝当前行,p粘贴。行号gg定位改行,G切换到文件尾部。gg到文件头部


9: cat   查看文件的内容
       -n  显示行号
cat   >>oldboy.txt<<oldboy
1
2
3
oldboy




10:tac  反转内容输出


11: :q!   什么都不改退出


12:man 查看命令及配置文件等的帮助


13:mv  移动目录或改名(renname命令)


14:touch  创建文件或者修改文件时间戳


15:{} 配合echo打印序列  echo {1..6}


16: echo 打印输出内容(printf复杂的输出)


17: echo "I am oldboy linux" >o.txt   把单行文本覆盖(清空原来内容)到文件里


18: echo "I am oldboy linux" >>oldboy.txt   追加重定项
;多个命令的分隔符
/根或者路径的分隔符。
>标准输出重定向(数据流朝着箭头的方向流动),覆盖原来的文件。
>>追加重定向(数据流朝这箭头的方向流动),再原来的文件的【结尾】 ,【追加】内容.
<或<  标准输出重定向:输入重定向用于改变命令的输入,制定输入内容,后跟文件名。
<<或<<  输入重定向:后跟字符串,用来表示“输入结束",也可用ctrl+d来结束输入


19: cp [-aifpru][源文件][目标文件]   拷贝文件或者目录
                -a:   相当于 -pdr
                -d:   若源文件为链接文件(link  file),则复制链接文件属性而非档案本身
                -f:   强制,若目标档案已经存在且无法开启,则移除后再尝试;
                -i:   若目标文件已经存在时,再覆盖时会先询问;
                -p:   连同档案的属性一起复制过去,而非使用默认属性;
                -r:   递归,用于复制目录;
                -u:   若目标文件存在,则目标文件比源文件旧时才复制;
        提示:如果源文件是多个,那么目的文件在最后,且是目录。


20:rm  删除文件
        rm  +文件名   删除该文件。会提示你删除? 确定YES  不删除NO
        rm  -r  +文件名   递归删除文件或目录   不会提示你
        rm  -f  +文件名   强制删除文件   不会提示你
        rm  -fr +文件名    删除指定的目录和文件
        rmdir  删除空目录,鸡肋命令。


21: head  头部  显示文件的头部-n  行数 -行数, 默认头部10行


22:tail  尾巴  显示文件的尾部-n  行数 -行数 ,默认尾部10行
         -f   跟踪显示文件的结尾
                -
23:grep  核心命令之一(三剑客的老三) 排除-v“paichu" 直接过滤“xiangyaode"
         -E(同时过滤多个字符串)     i(忽略大小写)
24: sed   取各种内容  (三剑客的老二) 擅长输出行
         -s  指定分隔符
          -n  取消默认输出    p=print 打印    d=delete


25:  awk               (三剑客老大)  擅长打印一列
        -NF    取最后一列,表示当前记录列
-NR    显示当前行号
         $1    第一个列
         $NF 最后一列  


26:tree 查看目录结构的命令




27:..   上一级目录
     .     当前目录
    ~     用户的家目录




28:xargs 用于把find/ls的输出交给后面处理。


29:|管道   通过管道把前一个命令的输出交给后一个命令继续处理








30:history 查看历史命令记录


31:!+ 行号 执行行号命令
      + c 调出最近C开头的命令
 
32:alias  查看计算机已经有的别名 BASH内置命令
           别名的作用:
           1)通过给危险命令加一些保护参数,防止人为误操作。
           2)把很多复杂的字符串变成一个简单的字符串。
    unalias  取消别名  


33:which 查看命令的路径  whereis,locate,fing


34:xargs  建立和执行命令行从标准输入
           用于把find/ls 的输出交给后面处理


35:seq   打印数字序列
   
36:find  查找命令
          -type (f d) -name “ddd"按名字查找
          -mtime 按照时间查找


37:ifconfig  可以查看的命令就可以做临时网络配置


38:route   配置默认路由


39:yum  安装包的管理工具 yum is an interactive, rpm based, package manager


40:ROOT 下添加用户设置密码
[root@localhost ~]# useradd hubo
[root@localhost ~]# passwd hubo 
更改用户 hubo 的密码 。
新的 密码:
无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。


41:用户之间相互切换
1)超级用户切换普通用户不要密码,普通用户切换到root或者别的用户需要密码
[root@localhost ~]# su - hubo
[hubo@localhost ~]$ whoami
hubo
[hubo@localhost ~]$ su - root
密码:
[root@localhost ~]# su - oldboy
[oldboy@localhost ~]$ su - hubo
密码:
[hubo@localhost ~]$ su - root 
密码:
[root@localhost ~]# whoami
root


42:yum install tree telnet dos2unix sysstat lrzsz -y   安装必要软件命令


43:yum grouplist   查看已经安装的软件包


44:cat /etc/selinux/config 改配置文件示例


45:runlevel   查看当前系统运行级别


46.命令 init   切换运行级别


47:vimdif - edit two, three or four versions of a file with vim and 'show differences'


48:useradd   添加用户
             -u   UID
-c   注释
-d   指定家目录
-G   指定多个组
-s   指定它登录的程序
-m   如果不存在,则创建用户主目录
-M   不创建家目录
-e   过期时间
-g   指定它属于的组
-D   改变默认的配置
 
49:passwd    修改用户密码,如果不指定用户,则修改当前用户密码,普通用户只能改自己的密码。
             -k    保留即将过去的用户在期满后能仍能使用
-d    删除用户密码,仅能root权限操作
-u    解锁用户密码,仅能root权限操作
-f    强制操作,仅root权限才能操作
--stdin    从stdin读入密码。
-S     查看状态
-l    锁住用户无权更改其密码,仅能通过root权限操作
-n    多少天之内不能改密码
-x    多少天之内必须改密码
-w    过期多少天之内提醒
-i    过期多少天之内处理
 
50:whoami    查看当前命令行终端用户


51:su        切换用户角色,注意带上-


52:history   查看命令行    -c  (清除所有)   -d 行号 (清除行号那条)


53:chmod +x  脚本及文件可执行权限


54:chown -R  授予用户及组权限


55:/etc/init.d/iptables stop   关闭防火墙


56:su - root 普通用户切换到root用户


57:sudo      让普通用户可以拥有指定的root权限功能


58:yum    包管理工具,解决rpm包的依赖。


59:rpm -ivh   软件安装命令    rpm -ivh 包名.rpm


60:chkconfig   查看设置开机自动软件的命令
             -add/
--list   程序名


61:echo $PATH 查看环境变量
        -n   不换行输出
        -e   可以指定特殊的字符



62:PATH       环境变量大写,所有包含在环境里面的路径,都可以直接敲出来执行。
           全局生效/etc/profile。 普通用户生效~/.bash_profile或者~/.bashrc
  
63:netstat***** 查看网络状态  lntup或an
    
64:uname       查看系统版本,内核版本
       -a      -r     -m
65:losf   -i :port    查看端口
       [--tcp -t]  [--udp -u]  [--listening -l]   [--all -a]   [--numeric -n]  [--program -p] 
       lsof -i :port   查看端口
  lsof|grep del   查看文件的占用情况
  
66:chattr           改变文件属性   (-i,+i)


67:lsattr            查看文件属性


68:查看磁盘空间
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        14G  2.6G   11G  20% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   33M  147M  19% /boot
[root@localhost ~]# df -hi
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda3        885K   83K  802K   10% /
tmpfs            123K     1  123K    1% /dev/shm
/dev/sda1         50K    38   50K    1% /boot


69:隐藏版本号
[root@localhost ~]# cat /dev//null >/etc/issue
[root@localhost ~]# cat /etc/issue


70:chattr           改变文件属性
锁定关键系统文件
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/inittab


解锁关键系统文件
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/inittab


71:lsattr            查看文件属性
[root@localhost ~]# lsattr /etc/passwd
-------------e- /etc/passwd


linux 系统的目录结构
逻辑上所有的目录只有一个顶点 /(根),所有目录的起点。
根下面类似一个倒挂的树一样的层次结构


只有一颗树




linux的目录结构也是有规律的,而且也是按照类别组织的。
应用程序 /usr/bin
数据文件 /usr/share
配置文件/etc
启动命令/etc/init.d


小结:
1)linux的所有目录结构是一个有层次的倒挂着的树形目录结构。
2)根”/“是所有目录的顶点。祖宗
3)目录结构和分区设备是没有关系的。也就是不同的目录可以跨越不同的磁盘设备或分区。、
4)所有的目录都是按照一定的类别有规律的组织和命名的。


相对路径和绝对路径:
cd /data/
相对路径:
[root@localhost ~]# cd data/
[root@localhost ~]# cd ..


/        存放系统相关的程序,也就是At&t开发的Unix程序
/usr     用户程序,及数据,帮助文件等的目录
/boor    启动Linux的核心文件
/dev/    设备目录
/etc/    配置文件以及服务启动的目录
/proc    显示内核及进程信息虚拟文件系统
/tmp     临时文件目录
/home    普通用户家目录
/var     变化目录,一般是日志文件的目录
/bin  和/sbin 和/usr/sbin/  用户命令的目录




/boot:启动Linux的核心文件;
以下是其他常用的linux操作系统目录:
    /bin:存放最常用命令; 
  /dev:设备文件;
  /etc:存放各种配置文件;
  /home:用户主目录;
  /lib:系统最基本的动态链接共享库;
  /mnt:一般是空的,用来临时挂载别的文件系统;
  /proc:虚拟目录,是内存的映射;
  /sbin:系统管理员命令存放目录;
  /usr:最大的目录,存许应用程序和文件;
  /usr/X11R6:X-Window目录;
  /usr/src:Linux源代码;
  /usr/include:系统头文件;
  /usr/lib:存放常用动态链接共享库、静态档案库;
  /usr/bin、/usr/sbin:这是对/bin、/sbin的一个补充;


cat /proc/loadavg    查看负载信息
cat /proc/cpuinfo    查看CPU信息
cat /proc/meminfo    查看内存信息
/var    
网卡的配置文件
cat /etc/sysconfig/network-scripts/ifcfg-eth0
vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启网卡
/etc/init.d/network restat
查看本机的dns
cat /etc/resolv.conf
查看主机名
cat /etc/hosts


查看inoded的总量和使用量
[root@localhost ~]# df -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      905760 89264 816496   10% /
tmpfs          125517     1 125516    1% /dev/shm
/dev/sda1       51200    38  51162    1% /boot
查看磁盘的使用量
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        14G  2.8G   10G  22% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   33M  147M  19% /boot


1)一个文件至少要占用一个inode和一个block
2)ext3/ext4 文件系统block大小一般1K,2K,4K。其中引导分区等为1K,其他普通分区为4K(C6)
3)查看inode和block的大小以及数量


查看block大小
[root@localhost ~]# dumpe2fs /dev/sda3|grep -i "block size"
dumpe2fs 1.41.12 (17-May-2010)
Block size:               4096
[root@localhost ~]# dumpe2fs /dev/sda1|grep -i "block size"
dumpe2fs 1.41.12 (17-May-2010)
Block size:               1024


linux扩展名的作用
  1)tar, .tar.gz,.tgz,.zip,.tar.bz 表示压缩文件,创建命令一般为 tar,gzip,zip等。
  2).sh 表示为shell脚本文件,通过shell语言开发的程序。
  3).pl表示perl语言文件,通过perl语言开发的程序。
  4).py比如使python语言文件,通过python语言开发的程序。
  5).html,.htm,.php,.jsp,.do表示网页语言的文件。
  6).conf 表示系统服务的配置文件。
  7).rpm 表示rpm安装包文件
   运维开发语言:Shekk/python/php 三者之一,至少会一个,最好会两种


硬盘要分区,然后格式化,创建文件系统。
    一般分2部分  第一Inode,第二Block。
查看Inode大小
[root@localhost ~]# dumpe2fs /dev/sda1|grep -i "inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:          128
[root@localhost ~]# dumpe2fs /dev/sda3|grep -i "inode size"
dumpe2fs 1.41.12 (17-May-2010)
Inode size:          256




1:正则表达式:
^ 的意思是以...开头。例如:^oldboy,表示匹配以oldboy 字符串开头的内容。^属于正则表达式的技术。
   grep -v ^# /etc/ssh/sshd_config 
   
2:$ 的意思是以...结尾。例如oldboy$表示已oldboy字符串结尾。


3:^$  意思是空行


4:[^oldboy]  ^意识是非,即不是oldboy字符串。


5:\  让一个字符串脱掉马甲,还原他本来的意义。


6:ls -lrt /etc    执行这个命令后最新的文件会在最下面。


7:ln 命令 创建链接


8:find ./ -type f -name "*.log" -mtime +7|xargs rm -f   删除7天以前的log文件
   find ./ -type f -name "*.log" -mtime +3 -exec rm -f {} \; 删除3天以前的log文件
   find /app/logs/ -type d -mtime +30|xargs rm -rf  删除30天以前的目录,慎用
   
   脚本创建测试数据:
for n in `seq 10`
do
  date -s "10/2$n/17"
  touch access-www-`(date +%F)`.log
done
date -s "10/31/17"  
 
9:记住并要经常查看系统日志/var/log/messages   生产环境要特别重视这个文件!


10:cat -n test.txt   查看文件


11:more  查看文件但是不能向上回滚。


12:less   查看文件可以向上回滚。


13:linux 系统运行级别一般为0-6
    0  关机模式  1  单用户模式  2 无NFS的多用户模式  3 文本模式  4 无用 5 图形化 6重启模式 init6

14:LANG="zh_CN.GB18030"  解决乱码


15:tar gzip  打包组合zcvf,解包组合zxfv
        bzip打包组合jcvf,解包组合jxvf
z(gzip),c(create),v(verbose).file,x(extract),j(bzip)
--exclude -X(--exclude-form),
    tar zcvf etc.tar.gz ./etc   打包命令  打包gz包
    tar zcvf  包名       结果
tar tf     查看包里面的东西
tar zcvf oldboy2.tar.gz --exclude=oldboy/jeacen ./oldboy   排除jeacen 打包
    tar xf oldboy2.tar.gz   解包oldboy2.tar.gz 
    tar xf oldboy2.tar.gz -C /tmp/    指定解压目录在tmp下
tar jcvf etc.tar.bz ./etc     打包bz压缩包
tar jxvf etc.tar.bz     解包bz 压缩包


59:rpm -ivh   软件安装命令    rpm -ivh 包名.rpm    解压缩包




16: awk ' {print $3' '$6}' oldboy.txt 过滤


17:如何查看/etc/services 文件的又多少行?
    1)wc -l /etc/services  直接查看文件行数
    2)cat -n file|tail -1  直接查看文件行数
3)sed -n '$=' /etc/services 直接查看文件行数
4)awk ' {print NR} /etc/services |tail -1  直接查看文件行数
5)grep -n $ /etc/services |tail -1  直接查看文件行数

18:ps -ef   查看运行进程


19:grep -E "3306|1521" /etc/services   过滤/etc/services 下的3306,1521,两数字的行的内容


1:linux权限
   r  read  可读权限
   w  write  可写权限
   x  (Execute ,执行权限)
   - (没有任何权限)
   
2:硬链接
  1)不同的文件名具有相同inode节点号的文件是互为硬链接文件。
  2)删除硬链接文件或者删除源文件之一,文件实体并未被删除。
  3)只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。
  4)当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者
    磁盘fsck检查的时候,数据也会被回收。
  5)硬链接文件是文件的又一个人口。
  6)可以通过给文件设置硬链接文件,来防止重要文件被误删。
  7)通过执行命令“in源文件 硬链接”,即可完成创建硬链接。
  8)rm -f 硬链接文件 
 
3:软链接   查看软链接  readlink
  1)软链接类似windows里的快捷方式,软链接里面存放的是源文件的路径,并且执行源文件。
  2)删除源文件,软链接文件依然存在,但是无法访问指向的路径内容了
  3)执行命令   “ln-s源文件 软链接文件”即可完成创建软链接。
  4)软链接和源文件是不同类型的文件,也是不同的文件。inode 号不同。
  5)rm -f  软链接文件


4:控制文件删除:以下两个条件同事具备才生效。
   1)受文件的硬链接数控制,有一个硬链接i_link +1,减少一个硬链接,i_link -1,
     当i_link=0时,文件被删除。
     例:创建一个文件i_link=1,为这个文件创建一个硬链接,i_ling=2!删除一个硬链接,
     i_ling -1, 删除源文件i_link=0了.


   2)受进程占用控制,当有进程使用这个文件,有一个进程占用这个文件i_count+1,即i_count=1。
     当减少一个进程占用i_count-1,即i_count=0,
     当没有进程调用,i_count=0,文件就被删除了。


     当i_link=0并且i_count=0的时候,文件才会被真正被删除。
 
1:清理磁盘空间日志文件
1)企业面试题,企业生产案例
磁盘报错“No space left on device”,但是 df -h查看磁盘空间没满,请问为什么?
df -i
实战演示:
[root@localhost ~]# yum install httpd -y
[root@localhost conf]# getenforce 
Disabled
[root@localhost conf]# grep log httpd.conf 
[root@localhost conf]# sed -i 's@CustomLog logs/acce_log combined@CustomLog /app/log/access_log combined@g' /etc/httpd/conf/httpd.conf
[root@localhost conf]# grep app httpd.conf
[root@localhost conf]# mkdir /app/log -p
[root@localhost conf]# dd if=dev/zero of=/dev/sdc bs=8k count=10
[root@localhost conf]# mkfs -t ext3 /dev/sdc
[root@localhost conf]# mount -o loop /dev/sdc /app/log
[root@localhost conf]# df -h
[root@localhost conf]# /etc/init.d/httpd restart
[root@localhost conf]# cd /app/log
[root@localhost conf]# tail -f access_log
[root@localhost conf]# df -h
[root@localhost conf]#pwd
[root@localhost conf]#ll
[root@localhost conf]# rm -f access_log
[root@localhost conf]# df -h
[root@localhost conf]# lsof|grep del
[root@localhost conf]# /etc/init.d/httpd restart
生产场景:最佳解决方案:
1)删除文件,重启
2)清空文件,不删除
3)不要删当天的被进程占用的文件,删以前的。


2:清空文件内容
1)[root@localhost conf]# >access_log
2)[root@localhost conf]# cat /dev/null >access_log


3:查看文件的占用情况
[root@localhost conf]# lsof|grep del


4:bash 的内置命令
alias--->
bg
break
cd--->
continue
echo--->
eval
exec
exit--->
export--->
fg
getopts
help--->
history--->
jobs
kill
let--->
logout--->
printf--->
pwd--->
read
return
shift
source--->
test
times
trap
typeset
ulimit--->
umask
unalias--->
unset
type    显示命令类型的信息
内置命令的帮助:help 命令名
检查是不是内置命令:type 命令名


5:
0超级用户
1-499 虚拟用户
500-65535  普通用户
服务运行时需要用户角色的,可以不用登陆,因此,工作中我们需要运行如mysql数据库,
可以创建如下用户:
[root@localhost conf]#groupadd mysql -g 49
[root@localhost conf]#groupadd mysql -u49 -s/sbin/nologin -g musql
[root@localhost conf]#id mysql
uid=49(mysql)gid=(mysql)组=49(mysql)
[root@localhost conf]#tail -l /etc/passwd
mysql:x:49:49::/home/mysql:/sbin/nologin
[root@localhost conf]#su - mysql
This accountis currently not available




1:正则表达式:
简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,
通过特殊的符号的辅助,我们可以快点的过滤,替换某些特定的字符串。


运维工作中,会有大量访问日志,错误日志,大数据。如何能够快速的过滤出我们需要的内容,
这就要靠正则表达式。


awk,sed,grep(egrep) 三剑客要想能工作的更搞笑,那一定离不开正则表达式的配合的。


我们想要玩好三剑客,首先就要掌握正则表达式。


linux里正则表达式。主要是awk,sed,grep(egrep)三剑客的正则表达式。


正则表达式实际就是一些特殊字符,赋予他特定的含义
1)^word 表示以word开头的。
2)word$ 搜索以word结尾的。
3).  代表且只能代表任意一个字符。
4)\  例\.   转移符号,让有着特殊身份意义的字符,脱掉马甲,还原原型。
5)*   例o*   重复0个或多个前面的一个字符
6).*   匹配所有字符。 ^.*  以任意字符开头。
7)[]   字符集合的重复特殊字符的符号。
8)[^word]   匹配不包含^后的任意字符串的内容。  
9)a\{n,m\}   重复n到m次,前一个重复的字符。如果用egrep就不用\
   \{n,\}     重复至少n次,前一个重复的字符
   \{n\}      重复n次,前一个重复的字符


2:扩展的正则表达式:ERE
1)+   重复一个或一个以上前面的字符。
2)? 重复0个或一个0前面的字符。
3)|  用或的方式查找多个符号的字符串。
4)() 找出“用户组”字符串。


3:查以I ,M开头的文件名
root@localhost ~]# vim oldboy.log
[root@localhost ~]# cat oldboy.log 
I am oldboy linux teacher
I like chinese chess,table tennis
My blog is http://oldboy.blog.51cto.com
My qq is 49000448
[root@localhost ~]# grep -i "^I" oldboy.log 
I am oldboy linux teacher
I like chinese chess,table tennis
[root@localhost ~]# grep -i "^M" oldboy.log 
My blog is http://oldboy.blog.51cto.com
My qq is 49000448
my god,my name is not oldboy,but OLDBOY
[root@localhost ~]# grep "bl.g" oldboy.log 
My blog is http://oldboy.blog.51cto.com


4:此处的点号,是正则表达式的,表示任意单个字符,-n 是给过滤出的每一行加行号。
[root@localhost ~]# grep -n . oldboy.log 
1:I am oldboy linux teacher
2:I like chinese chess,table tennis
3:My blog is http://oldboy.blog.51cto.com
4:My qq is 49000448
5:my god,my name is not oldboy,but OLDBOY




5:取ip 地址
1)方法一示例:
[root@localhost ~]# ifconfig ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.18.239  netmask 255.255.255.0  broadcast 172.16.18.255
        inet6 fe80::20c:29ff:fe25:bbd  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:25:0b:bd  txqueuelen 1000  (Ethernet)
        RX packets 4123  bytes 436394 (426.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5037  bytes 507439 (495.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost ~]# ifconfig ens32|grep "inet"
        inet 172.16.18.239  netmask 255.255.255.0  broadcast 172.16.18.255
        inet6 fe80::20c:29ff:fe25:bbd  prefixlen 64  scopeid 0x20<link>
[root@localhost ~]# ifconfig ens32|grep "inet 172"|awk -F " " '{print $2}'
172.16.18.239


2)方法二示例:
[root@localhost ~]# ifconfig ens32|sed -n '/inet 172/p'
        inet 172.16.18.239  netmask 255.255.255.0  broadcast 172.16.18.255
[root@localhost ~]# ifconfig ens32|sed -n '/inet 172/p'|sed 's#^.*inet ##g'
172.16.18.239  netmask 255.255.255.0  broadcast 172.16.18.255
[root@localhost ~]# ifconfig ens32|sed -n '/inet 172/p'|sed 's#^.*inet ##g'|sed 's#  ne.*$##g'
172.16.18.239  


3)方法三示例:
[root@localhost ~]# ifconfig ens32|grep "inet"
        inet 172.16.18.239  netmask 255.255.255.0  broadcast 172.16.18.255
        inet6 fe80::20c:29ff:fe25:bbd  prefixlen 64  scopeid 0x20<link>
[root@localhost ~]# ifconfig ens32|grep "inet 172"|awk -F "[ ]+" '{print $3}'
172.16.18.239


4)方法四示例:
[root@localhost ~]# ifconfig ens32|sed -n '2p'
        inet 172.16.18.239  netmask 255.255.255.0  broadcast 172.16.18.255
[root@localhost ~]# ifconfig ens32|sed -n '2p'|awk -F "[ ]+" '{print$3}'
172.16.18.239


5)方法五示例:
[root@localhost ~]# ifconfig ens32|awk -F "[ ]+" 'NR==2 {print $3}'
172.16.18.239


6)方法六示例:
[root@localhost ~]# ifconfig ens32|sed -n 's#^.*inet \(.*\)  netmask.*$# \1#gp'
 172.16.18.239


6:sed小括号()分组功能
示例:
[root@localhost ~]# echo "ddd kkk" >b.txt
[root@localhost ~]# cat b.txt 
ddd kkk
[root@localhost ~]# sed 's#(ddd) (kkk)##g' b.txt 
ddd kkk
[root@localhost ~]# sed 's#\(ddd\) \(kkk\)#\1#g' b.txt 
ddd
[root@localhost ~]# sed 's#\(ddd\) \(kkk\)#\1 \2#g' b.txt 
ddd kkk


7:文件的权限数字内容
r   read   可读    用4表示
w   write  可写    用2表示
-   没有           用0表示
x   执行           用1表示
示例一
[root@localhost ~]# touch /etiantian
[root@localhost ~]# ls -l /etiantian 
-rw-r--r-- 1 root root 0 11月  2 22:04 /etiantian
[root@localhost ~]# stat /etiantian 
  文件:"/etiantian"
  大小:0         块:0          IO 块:4096   普通空文件
设备:fd00h/64768d Inode:1008044     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2017-11-02 22:04:46.103015422 +0800
最近更改:2017-11-02 22:04:46.103015422 +0800
最近改动:2017-11-02 22:04:46.103015422 +0800
创建时间:-
[root@localhost ~]# stat /etiantian|sed -n 4p|awk -F "[(/]" '{print $2}'
0644
示例二
[root@localhost ~]# stat -c %a /etiantian 
644


本题的四点思路:
1.通过 stat 输出包含目标的内容。
2.通过head,tail,sed,awk,grep 定位到单行====>这是取行惯用命令。
3.通过cut,awk 等设置分隔符取出需要段内容====>这是取列的惯用命令。
4.当命令结果包含我们需要的内容的时候,我们要想到命令的参数是否有具体的参数能够一步达到我们需要的
结果呢?这样就会去 man stat了。




1:echo  -n   不换行输出
        -e    激活反斜线 功能

2:看日期时间
[root@localhost ~]# echo `date +%F`
2017-11-04


3:打包日志
1)不带时间打包
[root@localhost ~]# tar zcvf oldboy1.tar.gz ./oldboy
[root@localhost ~]# ll
-rw-r--r--  1 root root  295 11月  4 09:55 oldboy1.tar.gz


2)带时间打包
[root@localhost ~]# tar zcvf oldboy1-$(date +%F).tar.gz ./oldboy
[root@localhost ~]# ll
-rw-r--r--  1 root root  295 11月  4 09:57 oldboy1-2017-11-04.tar.gz


3)打包3天前的内容
[root@localhost ~]# echo $(date +%F -d '-3 day')
2017-11-01
[root@localhost ~]# tar zcvf oldboy-$(date +%F -d '-3 day').tar.gz ./oldboy
[root@localhost ~]# ll
-rw-r--r--  1 root root  295 11月  4 09:57 oldboy1-2017-11-04.tar.gz
-rw-r--r--  1 root root  295 11月  4 10:30 oldboy-2017-11-01.tar.gz


4)保留最近7天的内容
find/log -type f -name"*.log"-mtime +7|xg


4:cut   按列切割   -d指定分隔符,-f数字选列,-c  按字符


5:date 命令    -s  修改时间。
  cal   日历
  
6:查看3天前的
[root@localhost ~]# date +%F -d '3 day ago'
2017-11-01


7:排除空行
1)用grep方法
[root@localhost ~]# vi test.txt
[root@localhost ~]# cat test.txt
test


liyao


oldboy
[root@localhost ~]# grep -v "^$" test.txt
test
liyao
oldboy
2)用sed方法
[root@localhost ~]# vi test.txt
[root@localhost ~]# cat test.txt
test


liyao


oldboy
[root@localhost ~]# sed '/^$/d' test.txt 
test
liyao
oldboy
3)awk的方法
[root@localhost ~]# vi test.txt
[root@localhost ~]# cat test.txt
test


liyao


oldboy
[root@localhost ~]# awk /^[^$]/ test.txt 
test
liyao
oldboy


8:以下路径的内容解答
/var/log/messages            系统日志
/var/log/secure              系统日志安全
/car/spool/clientmqueue      邮件临时目录
/proc/interrupts             查看中断文件 
/etc/fstab                   磁盘文件系统开机自动挂载文件
/etc/profile                 全局的环境配置文件


9:如何快递查到ifconfig的全路径。
1)
[root@localhost ~]# which ifconfig 
/usr/sbin/ifconfig
2)
[root@localhost ~]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
3)
[root@localhost ~]# find / -name ifconfig
/usr/sbin/ifconfig


10:关机重启命令
关机
shudown -h now   ----->立刻关机(生产常用)
shhutdown -h +1  ----->1分钟以后关机
init 0           ----->关机
halt             ----->立即停止系统,需要人工关闭电源       
halt -p
poweroff         ----->立即停止系统,并且关闭电源
重启
reboot            ---->生产常用
shutdown -r now   ---->生产常用
shhutdown -r +1   ---->1分钟以后重启
init 6
注销
logout
exit              ---->生产常用
ctl +d            ---->快捷键(生产常用)


11:下面命令的功能
Ctrl +a      切换到命令行开始
Ctrl +e      切换到命令行末尾
Ctrl +c      终止当前命令或脚本
Ctrl +d      退出当前shell,相当于exit。
Ctrl +l      清除屏幕内容,相当于clear。
Ctrl +u      清除(剪切)光标之前的内容
Ctrl +k      删除光标以后的内容
Ctrl +r      查看最近的命令
tab          命令补全工具


12:属组的数字算法
[root@localhost ~]# ls -l oldboy
-rw-r--r-- 1 root root  0 10月 22 00:00 access-www-2017-10-22.log
属组:root rw- =4+2+0=6
其他组:root r-- =4+0+0=4
其他:  r--  =4+0+0=4
oldboy 文件的权限 644
r=4   w=2  x=1


13:权限  chmod  改变文件访问权限 分为数字和字符表示法 -R  递归
u   代表属主用户
g   代表属组
o   代表其他用户
a   代表属主,属组和其他用户,也就是上面三个用户(或组)的所有;
权限定义字母
r    代表读权限    表示具有读取阅读文件内容的权限
w    代表写权限    表示具有新增,修改文件内容的权限
                   (特别提示:删除文件(修改文件名等)的权限是受父目录的权限控制,和文件本身权限无关)
x    代表执行权限   表示具有执行文件的权限(文件本身要能够执行,普通用户同时还需要具备r 的权限,root用
                        户不需要权限也能执行,当然文件本身也需要能够执行)

权限增减符
+    添加某个权限
-    取消某个权限
=    取消其他所有权限赋予给定的权限。
用字符式语法比较灵活组合起来方便:例如:
u=r+x           为文件属主添加读写权限
ug=rwx,o=r      为属主和属组添加读,写,执行权限,为其他用户设置读权限。
a+x             为文件的属主,属组和其他童虎添加执行权限:
g=u             让文件的属组和属主的权限相同;
u=rwx,g=rw,o=rw 为属主添加读,写,执行权限,属组添加读,写权限,为其他用户设置读,写权限


1)给test.txt575权限
[root@localhost oldboy]# chmod 575 test.txt
[root@localhost oldboy]# ls -l test.txt 
-r-xrwxr-x 1 root root 13 10月 29 02:24 test.txt
2)给oldboy 里面的文件给 755权限
[root@localhost ~]# chmod -R 755 oldboy
[root@localhost ~]# ll oldboy
-rwxr-xr-x 1 root root  0 10月 22 00:00 access-www-2017-10-22.log
-rwxr-xr-x 1 root root  0 10月 23 00:00 access-www-2017-10-23.log
-rwxr-xr-x 1 root root  0 10月 24 00:00 access-www-2017-10-24.log


14:改变文件所属关系命令   chown改变文件拥有者以及用户组,-R递归
#chown [选项]... [所有者][:[组]] 文件...
方法
chown  用户  文件或目录   <===仅仅授权用户。
chown  :组   文件或目录   <===仅仅授权组。  等同于chgrp组  文件或目录
chown  用户:组   文件或目录   <====表示授权用户和组
强调:其中的冒号“:”可以用点号“.”替代。要授权的用户和组名,必须是系统里实际存在的。


15:
演示环境:
一个家庭(用户组)incahome:成员oldboy,oldgirl
[root@localhost ~]# groupadd incahome
[root@localhost ~]# useradd oldboy -g incahome
[root@localhost ~]# useradd oldgirl -g incahome
[root@localhost ~]# id oldgirl
uid=1002(oldgirl) gid=1000(incahome) 组=1000(incahome)
[root@localhost ~]# id oldboy
uid=1000(oldboy) gid=1000(incahome) 组=1000(incahome)
给权限
[root@localhost ~]# chown -R oldboy /home/oldboy
[root@localhost ~]# chown -R oldgirl /home/oldgirl




16:为什么默认权限是755,644 而不是其他值呢?
网站目录安全权限:目录755,文件644是相对安全的权限,并且用户为root以及用户组root。生产工作中
一定要尽量要我们的文件和目录达到以上默认权限,包括属组。
示例
[root@localhost ~]# mkdir newdir
[root@localhost ~]# touch newfile
[root@localhost ~]# ls -lrt
drwxr-xr-x  2 root root    6 11月  6 12:49 newdir
-rw-r--r--  1 root root    0 11月  6 12:49 newfile




[root@localhost ~]# umask 
0022
[oldboy@localhost root]$ umask 
0002


17
1)用户对应的前三位的x位上如果有s就表示,suid.当x位上没有x的时候,suid就是S
[root@localhost ~]# ls -l `which passwd`
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd


[root@localhost ~]# chmod 4644 abc
[root@localhost ~]# ls -l abc 
-rwSr--r-- 1 root root 0 11月  6 14:47 abc


2)setuid位是让普通用户可以以root(或其他)用户的角色运行只有root(或其他)账号才能运行的程序或命令
,或程序命令对应本来没有权限操作的文件等。(注意和su及sudo的区别)


希望oldboy命令设置suid 加深对suid的理解
oleboy用户能够删除本来无权删除的文件
1)sudu
2) suid
chmod u+s `which rm|tail -1`




1:程序概念
简单的说:我们使用的命令就是程序,QQ程序,听歌MP3,MP4软件,linux系统也是程序。
基本特征:一堆代码,一个文件,一个命令。程序静态的,放在电脑里还没有被运行
程序:磁盘里。


2:进程概念
简单的说,把系统中的程序运行起来就是进程。    进程放在内存中
所谓进程(Processes)就是指现在系统正在执行程序,每当输入一个命令时,Shell也会同时启动一个进程。
每个进程启动时,系统会指定一个唯一的数值给每个进程,数值称为进程(ID)。
每个进程都可能以两种方式存在:一个前台和一个后台。
一般的系统网络服务都是以后台方式存在,且都会常驻在系统中,直至关机或者主动杀死时才结束,例如sshd。


3:linux的定时任务crond (crontab)服务
1)crond时linux系统中用来定期执行命令和或者指定程序任务的一种服务或软件。
一般在我们安装co5/co6系统的时候,crond就会默认存在了。
我们优化开机自启动服务的时候,第一个就是crond。
Crond服务默认情况(每分钟),会检查系统中是否有需要执行的定时任务,如果有,
就会根据事先定义好的规则来执行这个定时任务。


秒级任务:
1)crond 自身无能为力
2)为自己写守护进程shell循环
3)Quartz也可实现秒级任务


4:为什么需要定时任务?
服务器:7*24小时开机提供服务是网站的基本特征。
有重要数据:1天备一次,5份以上。
            服务器上的数据一般最低1天备一次,每分钟(实时备份)再增量备份。
半夜1点备份:我们每天爬起来备份,然后睡觉,假设一次备份持续5小时。
定时任务就产生了。定时任务可以实现帮助我们自动备份数据。
crond服务====闹钟


5:linux定时任务分类:
1)系统自身的定期执行的任务
[root@localhost ~]# ll /etc/|grep cron
-rw-------.  1 root root      541 Aug  3 23:33 anacrontab
drwxr-xr-x.  2 root root       54 Oct 23 21:54 cron.d
drwxr-xr-x.  2 root root       57 Oct 23 21:54 cron.daily
-rw-------.  1 root root        0 Aug  3 23:33 cron.deny
drwxr-xr-x.  2 root root       22 Jun 10  2014 cron.hourly
drwxr-xr-x.  2 root root        6 Jun 10  2014 cron.monthly
drwxr-xr-x.  2 root root        6 Jun 10  2014 cron.weekly
-rw-r--r--.  1 root root      451 Jun 10  2014 crontab
2)用户执行的定时任务


6:linux的定时任务分类:
1)at适合执行一次就结束的调度任务。突发性的任务,每天晚上。了解即可。
   依赖服务atd
2)anacron 适用于非7*24小时开机的服务器准备的。开机执行的,检测停机期间没有执行的任务,
   在开机后一次性执行一遍。
3)Crond,Crond服务默认情况(每分钟),会检查系统中是否有需要执行的定时任务,如果有,
   就会根据事先定义好的规则来执行这个定时任务。*****
   crond依赖的服务,crond
提示:我们说的crond是一个定时任务守护进程,而crontab是用户用来设置定时任务规则的命令。


7:定时任务的使用格式
用户的定时任务规则一般分为6个段(每个段通过空格来分隔,系统的定时任务为/etc/crontab,分为7段,
空格来分隔),前五段为时间的设定段,第六段为所执行的命令或脚本任务段。
基本命令格式如下:
01 * * * * cmd
02 4 * * * cmd
22 4 * * 0 cmd
42 4 1 * * cmd
提示:
1,cmd为要执行的命令或脚本。
2,每个列之间必须要有空格。
系统定时任务:
时间记忆口诀:分时日月周
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root


# For details see man 4 crontabs


# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed


8:crontab语法格式中特殊符号的含义
1)*号    示任意时间都,实际就是“每”时间的意思。举例:如 00 23 * * *cmd表示每月每周每日的23:00都
          执行cmd任务。需要注意的是:每隔时间上的*表示每,如果位上是*就是该位上时间的取值范围,
 例如:小时上的*等价于 00-23。
 经验技巧:定时任务规则如果到小时,就最多提每天。
 分位上的*就等价于0-59,表示没分。
2)-号    表示分隔符,表示一个时间范围,区间段,如17-19点,每天的17,18,19的00分执行任务。
          00 17-19 * * * cmd。就是17,18,19点整点分别执行的意思。
3),号   表示分隔时段的意思。30 17,18,19 * * * /bin/sh/scripts/oldboy.sh表示每天17,18和19点的半点
          时刻执行/bin/sh/scripts/oldboy.sh脚本。也可以和“-”结合使用,例如:30 3-5,17-19 * * *
 /bin/sh/scripts/oldboy.sh
4)/n     n代表数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成*/10 * * * * cmd,其中,
          */10,*的范围是0-59,因此,也可以写成0-59/10。
 
9:定时任务
每分钟打印一次自己名字拼音到“/server/log/自己的名字命名的文件”中。
[root@localhost ~]# crontab -e
[root@localhost ~]# crontab -l
#print a name
* * * * * echo lodboy >> /server/log/oldboy.log
[root@localhost ~]# mkdir /server/log -p
[root@localhost ~]# tail -f /server/log/oldboy.log
lodboy
lodboy


10:vi命令考察,根据中文给出命令
退出保存                               :wq
退出并强制保存,!为强制的意思         :wq!
强制退出,不保存                       :q!    或ZZ
光标移动到文件的最后一行                G     shift+g
光标移动到文件的第一行                  gg
从光标所在位置讲光标移动到当前行的开头  ^    home键
从光标所在位置讲光标移动到当前行的结尾  $    end键
取消上一次的动作                        u 
删除一行                                dd    删n行  ndd
向下搜索                                /字符
向上搜索                                ?字符


11:定时任务的回顾
1)定时任务要加必要你的注释
2)执行shell脚本任务前加/bin/sh
3)定时任务命令或脚本的结尾要加>/dev/null 2>&1
4)定时任务命令的执行,超过2条的命令执行,最好用脚本文件
5)在指定的用户下执行相关的定时任务
6)生产任务程序不要随意打印输出信息  tar zcf echo 123 >a.log
7)定时任务执行的脚本要规范路径
8)配置定时任务规范操作过程,防止出错


1,增加执行任务频率调试任务(某些任务不能用于生产环境)
2,调整系统时间调试任务(不能用于生产环境)
3,通过脚本日志输出调试定时任务
4,注意一些任务命令带来的问题(*/1 * * * * echo "==" >> /tmp/oldboy.log  >/dev/null 2>&1)
5,注意环境变量导致的定时任务故障
6,通过crond定时任务日志调试定时任务
7,其他稀奇古怪的问题调试的方法


1,系统环境,变量问题
2,定时任务要用绝对路径
3,脚本前线问题加/bin/sh
4,时间变量问题用反斜线\%
5,>/dev/null 2>&1问题   (1>dev/null 2>/dev/null)
6,定时任务规则之前加注释
7,使用脚本程序替代命令行定时任务
8,避免不必要的程序及命令输出
9,切到目标目录的上一级目录打包
10,定时任务脚本中的程序命令尽量用全路径


两种删除方法
1)
ls|xargs rm -f
find ./ -type -f




1:管理用户命令汇总
命令
useradd   *****    同adduser命令,执行此命令可在系统中添加用户。
userdel   *****     执行此命令可删除用户及相关用户的配置或文件。
passwd    *****    执行此命令可为用户设置密码。
chage               修改用户密码有效期限。
usermod   *****    修改用户的命令,可以通过usermod来修改登录名,用户的家目录等等。
id        *****    查看用户的UID,GID及所归属的用户组
su        *****    用户切换工具
sudo      *****    是通过另一个用户来执行命令,su 是用来切换用户,然后通过切换到的用户来完成相应的任务
                   但sudo能在命令后面直接接命令执行,比如 sudo ls /root,不需要root密码就可以执行只有
  root才能执行相应的命令或具备的目录权限:这个权限需要通过visudo命令或者直接编辑
  /etc/sudoers来实现。
visudo    *****    配置sudo权限的编辑命令;也可以不用这个命令,直接用vi来编辑/etc/sudoers实现。
                   但推荐用visudo来炒作(会自动检查语法)。    
finger             查看用户信息工具


2:组管理命令汇总
groupadd   *****   添加用户组
         -g
groupdel           删除用户组
gpasswd            为用户组设置密码
groups             显示用户所属的用户组
newgrp             更改用户所属的有效用户组




3:/etc/skel 目录
/etc/skel 目录是用来存放新用户配置文件的目录。当我们添加一个用户时,系统会从/etc/skel目录里面拷贝文件


4:/etc/default/useradd文件
/etc/default/useradd文件是在使用useradd添加用户时一个需要调用的一个默认的配置文件,可以
使用“useradd -D 参数”,这样的命令格式来修改文件里面的内容。






5:账号过期
[root@devops-zabbix oldboy]# useradd -e "2017/11/18" m1
[root@devops-zabbix oldboy]# chage -l m1
最近一次密码修改时间 :11月 08, 2017
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :11月 18, 2017
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7


6:修改默认权限
[root@devops-zabbix ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@devops-zabbix ~]# useradd -D -s /bin/sh
[root@devops-zabbix ~]# cat /etc/default/useradd 
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes


7:--stdin  改密码
[root@devops-zabbix ~]# echo "12345678"|passwd --stdin m1
更改用户 m1 的密码 。
passwd:所有的身份验证令牌已经成功更新。


8:7天内不能更改密码,60天以后必须修改密码,过期10天通知oldboy用户,过期后30天后禁止用户登录。
[root@devops-zabbix ~]# chage -l oldboy
最近一次密码修改时间 :11月 04, 2017
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@devops-zabbix ~]# passwd -n 7 -x 60 -w 10 -i 30 oldboy 
调整用户密码老化数据oldboy。
passwd: 操作成功
[root@devops-zabbix ~]# chage -l oldboy
最近一次密码修改时间 :11月 04, 2017
密码过期时间 :1月 03, 2018
密码失效时间 :2月 02, 2018
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :7
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :10


9:chage 用法
[root@devops-zabbix ~]# chage -l m1
最近一次密码修改时间 :11月 08, 2017  <=====-d   将最近一次密码设置时间设为最近日期
密码过期时间 :从不                   <=====
密码失效时间 :从不                   <=====-I   密码过期后多久停权
帐户过期时间 :11月 18, 2017      <=====-E   帐户过期时间
两次改变密码之间相距的最小天数 :0                  <=====-m   改变密码最小天数
两次改变密码之间相距的最大天数 :99999              <=====-M   改变密码最大天数
在密码过期之前警告的天数 :7                          <=====-W   密码过期之前警告的天数


10:删除用户的相关命令
userdel  -r  删除用户连带家目录删除


vi /etc/passwd  生产环境用这个停账号


./etc/passwd -用户账号资料文件
./etc/shadow -用户账号资讯加密文件
./etc/group  -用户组资讯文件


11:用户信息修改相关命令
usermod  -c     修改注释
         -d     修改目录
-e     账号停止日期
-f     账号停权日期
-g     修改它的组组
-G     修改它的多个组
-l     更改登录名
-s     更改shell
-u     更改UID
-L     冻结密码
-U     取消冻结
 
./etc/passwd -用户账号资料文件
./etc/shadow -用户账号资讯加密文件
./etc/group  -用户组资讯文件


12:查询相关的命令
id命令  查看用户信息
[root@devops-zabbix ~]# id oldboy
uid=1000(oldboy) gid=1000(incahome) 组=1000(incahome)


w命令
[root@devops-zabbix ~]# w
 21:02:56 up  3:34,  1 user,  load average: 0.03, 0.05, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    172.16.18.1      17:28    0.00s  0.76s  0.01s w


who命令  只是显示那个登录了
[root@devops-zabbix ~]# who
root     pts/0        2017-11-08 17:28 (172.16.18.1)


last命令  显示那个在登录
lastlog   显示谁登录我的机器
[root@devops-zabbix ~]# last
root     pts/0        172.16.18.1      Wed Nov  8 17:28   still logged in   
reboot   system boot  3.10.0-693.el7.x Wed Nov  8 17:28 - 21:04  (03:36)    
root     pts/0        172.16.18.1      Wed Nov  8 17:06 - crash  (00:21)    
reboot   system boot  3.10.0-693.el7.x Wed Nov  8 17:02 - 21:04  (04:01)    
root     pts/0        172.16.18.1      Wed Nov  8 09:32 - down   (07:09)    
reboot   system boot  3.10.0-693.el7.x Wed Nov  8 09:28 - 16:41  (07:13)    
root     pts/0        172.16.18.238    Tue Nov  7 22:54 - 22:54  (00:00)    
root     pts/0        172.16.18.238    Tue Nov  7 22:54 - 22:54  (00:00)    


13:su 命令用法
su  -   使一个shell成为登录的shell,如执行su - oldboy是,表示该用户想改变身份为oldboy,并且使用
        oldboy用户的环境变量配置。
-c  切换到一个shell下,执行一个命令,然后退出所切换的用户环境



14:sudo命令用法
sudo -l  列出用户在主机上可用的和被禁止的命令;当配置好sudo授权规则后,可用这个参数来查看授权情况。
     -v  验证用户的时间戳:当用户运行sudo,输入用户密码后,在短时间内可以
-u  指定以某个用户身份执行特定的命令操作。
-k  删除时间戳,下一个sudo命令要求提供密码。前提是该用户授权中不能有NOPASSWD参数。
 
1:用户权限集中管理方案
1)建立3个初级运维,一个高级运维,一个网络工程师,一个运维经理,密码同意111111
批量创建用户,给密码
for user in chuji001 chuji002 chuji003 net001 senior001 manager001
do
   useradd $user
   echo "111111"|passwd --stdin $user
done
更改用户 chuji001 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 chuji002 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 chuji003 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 net001 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 senior001 的密码 。
passwd:所有的身份验证令牌已经成功更新。
更改用户 manager001 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@devops-zabbix ~]# tail -6 /etc/passwd
chuji001:x:1007:1007::/home/chuji001:/bin/bash
chuji002:x:1008:1008::/home/chuji002:/bin/bash
chuji003:x:1009:1009::/home/chuji003:/bin/bash
net001:x:1010:1010::/home/net001:/bin/bash
senior001:x:1011:1011::/home/senior001:/bin/bash
manager001:x:1012:1012::/home/manager001:/bin/bash


建立5个开发人员,属于phpers组
groupadd -g 999 phpers
for n in `seq 5`
do
  useradd -g phpers php00$n
  echo '111111'|passwd --stdin $user
done
for user in kaifamanager001 seniorphpers
do
  useradd $user
  echo "111111"|passwd --stdin $user
done




1)安装sudo命令,syslog服务
查询sudo和rsyslog安装没有
[root@devops-zabbix ~]# rpm -qa|egrep "sudo|rsyslog"
rsyslog-8.24.0-12.el7.x86_64
sudo-1.8.19p2-10.el7.x86_64
如果没有安装则执行下面命令安装
yum install sudo syslog -y


2)配置/etc/sudoers
增加配置"Defaults         logfile=/var/log/sudo.log"到/etc/sudoers中,注意:不包含引号
[root@devops-zabbix ~]# echo "Defaults         logfile=/var/log/sudo.log">>/etc/sudoers
[root@devops-zabbix ~]# tail -1 /etc/sudoers
Defaults         logfile=/var/log/sudo.log
[root@devops-zabbix ~]# visudo -c             #检查sudoers文件语法
/etc/sudoers:解析正确




1:配置DNS
[root@devops-zabbix ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 114.114.114.114
[root@devops-zabbix ~]# vim /etc/resolv.conf


2:查看网关
route -n  命令
[root@devops-zabbix ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.18.2     0.0.0.0         UG    100    0        0 ens32
172.16.18.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32


3:删除默认网关
[root@devops-zabbix ~]# route del default gw 172.16.18.2
[root@devops-zabbix ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.18.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32


4:添加默认网关
[root@devops-zabbix ~]# route add default gw 172.16.18.2
[root@devops-zabbix ~]# route -n
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.18.2     0.0.0.0         UG    100    0        0 ens32
172.16.18.0     0.0.0.0         255.255.255.0   U     100    0        0 ens32


5:修改主机名的步骤
a)hostname hubo
b)vi /etc/sysconfig/network
c)vi /etc/hosts
 
6:修改网卡:
编辑配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens32,
然后/etc/init.d/network restart
ifup ens32     启动网卡
ifdown ens32   停掉网卡
ifconfig       查看配置别名ip等
ifconfig ens32:x 10.0.0.25/24 up    配置别名IP,VIP
ifconfig ens32:x down    停掉别名IP


7:查看设备
ifconfig      查看IP  
route -n      查看默认网关
hostname      查看主机名
netstat -rn   查看路由


8:网络检查:
1)ping www.baidu.com          icmp协议基础。
2)traceroute www.baidu.com    基础检查
3)telnet 10.0.0.25 80         检查服务器web有没有开启,服务开没开,以及防火墙有没有挡住
4)nmap 10.0.0.25 -p 80
5)win:跟踪路由
tracert -d www.baidu.com


9:抓包工具:
tcpdump
tcpdump -n icmp -i ens32






10:DNS域名解析:
dig 
nslookup
host




11:排错
如果win32和linux服务器无法连接网络,分别描述排查方法?
提示:基本检查思路:
     a.物理链接是否通畅
b.本机IP,路由,DNS的设置情况是否达标。
c.测试到网关或路由的通畅情况。先测试网关然后再测路由器一级一级的测试。
d.测试ping公网ip的通畅情况(平时要记几个外部ip)
e.测试DNS的通畅,可以ping baidu.com 看是否出对应IP。


12:网站服务器访问慢,打不开的排错
1)ping www.baidu.com          icmp协议基础。
2)traceroute www.baidu.com    基础检查
3)telnet 10.0.0.25 80         检查服务器web有没有开启,服务开没开,以及防火墙有没有挡住
4)nmap 10.0.0.25 -p 80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值