linux 命令汇总

  1 linux 命令总结
  2 ctrl+alt+F1              返回F1终端
  3 ctrl+alt+F2             切换到终端2   类似一直可以切换到F6(共6个终端)
  4 exit                    退出当前用户
  5 init 0                    关闭系统
  6 su - root                切换当前用户(管理员账号)
  7 pwd                        查看当前路径
  8 id                        当前用户信息
  9 who                        当前登录所有用户
 10 whoami                    当前登录用户信息
 110                 图形界面
 12     pts                    图形界面打开的终端
 13     tty                 命令行登录的终端
 14 date -s ‘2018-05-25 11:23’                修改系统当前时间
 15 date 082611282018                         #按照 ‘月日时分年’ 的格式
 16 cal 10 2015                查看日历
 17 man - ls                查看命令使用方法
 18 ls --help                查看命令使用方法
 19 clear
 20 ctrl+L                    清除屏幕
 21 useradd tom                添加用户
 22 userdel -r                删除用户
 23 passwd                     #root可以修改任何用户密码,普通用户只能修改自己的密码
 24 echo '123' | passwd --stdin  tom   强制给用户更改密码
 25 cd  (change directory)  切换文件目录
 26 
 27   ~                      当前用户家目录
 28     .                     当前目录
 29   ..                  代表上一层目录
 30     ../..                上一级目录的上一级目录
 31   -                      代表上一次目录
 32 
 33 touch                     新建文件
 34 mkdir                     新建文件夹/目录
 35    -p                     递归建目录(即可以创建系统没有的目录)
 36     
 37 rm                      删除文件
 38     -r                 删除目录
 39    –rf                 强制删除文件、目录
 40 
 41 ctrl+A                  定位到命令行开头
 42 ctrl+E                     定位点命令行结尾
 43 ls                         查看当前目录文件
 44     -l                    查看当前目录详细信息
 45     -l -d                查看目录本身的信息,可简写为 ll -d
 46     -a                    查看所以文件,包括隐藏文件
 47     -h                    显示文件大小
 48 
 49 cp 源路径 目标路径        复制文件或目录
 50 cp -r                    递归拷贝,用来拷贝目录
 51 cp -a                    拷贝文件及文件的详细信息
 52 mv                        剪切命令,同时可以用来重命名
 53     alex.txt asb.txt    重命名
 54 cp                        使用最原始的cp命令,即强制拷贝
 55 which cp                查看cp命令信息
 56 cat                        查看文件内容,读取全部文件内容
 57 head -n                 查看文件前n行内容
 58      -n +23                从第23行开始,显示文件n行内容
 59 tail -n                    查看文件后n行内容
 60      -f                    只读的方式,实时查看文件内容
 61 more /file1                以百分百的方式查看文件内容
 62 less /file1                以上下翻页的方法查看文件内容
 63 > 文件                    将左边内容以覆盖的方式添加到右边的文件中
 64 >> 文件                    将左边内容以追加的方式添加到右边的文件中
 65 echo 'hedeyong_linux'>>  /FtpServe/bin/start.py     往start.py文件追加内容
 66 echo 'hedeyong_linux'>  /FtpServe/bin/start.py         以覆盖的方式往start.py文件添加内容
 67     
 68 useradd user1            
 69     -c comment 指定一段注释性描述。
 70     -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
 71     -g 用户组 指定用户所属的用户组。
 72     -G 用户组,用户组 指定用户所属的附加组。
 73     -s Shell文件 指定用户的登录Shell。/bin/bash  或:sbin/nologin不可登录
 74     -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
 75 #创建一个用户时,系统创建的文件    
 76     /etc/passwd             存放用户的信息,一行为一个用户信息
 77     /etc/shadow                存放用户的密码文件
 78     /etc/group                存放组信息
 79     /etc/gshadow            存放组密码
 80     /home/user1                用户家目录,需要用mkdir命令创建
 81     /var/spool/mail/user1     用户的邮箱,需要用touch命令创建
 82 
 83 root的用户信息:
 84     root:x:0:0:root:/root:/bin/bash
 85 root:用户名
 86 x:密码占位符  密码文件 /etc/shadow
 87 0:userid
 88 0:groupid
 89 root:用户的描述信息,可有可无
 90 /root:用户的家目录
 91 /bin/bash  : 标识该用户是否可登录,/bin/bash可登录   /sbin/nologin不可登录
 92 
 93 组文件:/etc/group    
 94     wheel:x:10:egon,user1
 95 wheel:组名
 96 x:组密码占位符
 97 10:组id
 98 egon,user1:组成员。可通过vim编辑添加组成员
 99 
100 vim             编辑文件
101     a          进入编辑模式,然后可通过上下键选择
102     esc         推出编辑
103     yy         复制文件或目录
104     p         粘贴
105     dd         删除文件
106     G         调到最后一行
107     shift+:  输入命令
108     wq         保存退出
109     wq!     强制保存退出
110 
111 usermod            修改用户账号的各项设定
112     -c<备注>  修改用户帐号的备注文字。 
113     -d登入目录>  修改用户登入时的目录。 
114     -e<有效期限>  修改帐号的有效期限。 
115     -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 
116     -g<群组>  修改用户所属的群组。 
117     -G<群组>  修改用户所属的附加群组。 
118     -l<帐号名称>  修改用户帐号名称。 
119     -L  锁定用户密码,使密码无效。 
120     -s<shell>  修改用户登入后所使用的shell。 
121     -u<uid>  修改用户ID。 
122     -U  解除密码锁定。 
123     -a    追加,例如:usermod user1 -a -G group2    为用户user1的附加群组追加一个group2的群组
124                       usermod -a -G group2 user1
125 groupadd            创建一个组
126     -g:            指定新建工作组的id;
127 groupmod            功能说明:更改群组识别码或名称。 
128                     语  法:groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称] 
129     groupmod -n linux linuxso   将linuxso组改名为linux
130 groupdel             删除组
131 
132 文件权限信息:
133     -rw-r--r--. 1 root root 2262 5月  24 19:39 /etc/passwd
134 第一段内容:代表文件类型
135 -     普通文件
136 d    目录文件
137 b    块文件
138 l   链接文件
139 p   管道文件
140 s   socket文件
141 rw-r--r--表示:
142 r:read 可读        对应数字 4
143 w:write 可写       对应数字 2
144 x:execute 可执行   对应数字 1
145 -:占位符            对应数字 0
146     前面三位对应的文件的属主对该文件的权限
147     中间三位对应的文件的属组对该文件的权限
148     后面三位对应的文件的其他人对该文件的权限
149 对文件:
150     读:可以读文件的内容
151     写:可以修改文件的内容
152     执行:可以把文件当做程序去执行  #需要有可读权限
153 对目录:
154     读:可以浏览到该目录下的子目录和子文件名
155     写:可以在该目录下新建文件,删除文件,重命名文件
156     执行:可以cd进去改目录
157 
158 chown             修改文件属主和组信息(即组权限)
159     -R            递归修改目录
160     chown egon:egon /home/oldboy   更改oldboy用户的属主和组信息
161     
162 chmod             更改文件权限
163     -R             对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
164     chmod u=r,g=-,o=r egon.txt        #u:属主 g:组 o:其他人 a:表示三者   -表示什么权限都不给
165     chmod a=rwx file          和 chmod 777 file 效果一样
166     chmod u+x ex1.py          将 ex1.py 设定为只有该档案拥有者可以执行 
167     
168 sh egon.txt     执行文件的内容
169 ./ echo.txt        验证文件内容
170 
171 cat.a.txt b.txt > c.txt     将a.txt b.txt 合并成一个文件
172 touch {a..c}{1..3}.txt        快速创建文件(a1.txt a2.txt a3.txt b1.txt b2.txt b3.txt c1.txt c2.txt c3.txt)
173 tar                            归档命令
174     c                        创建一个新的tar文件
175     t                        列出tar文件中目录的内容。
176     x                        从tar文件中抽取文件。
177     f                        指定归档文件或磁带(也可能是软盘)设备(一般都要选)。
178     v                        显示所打包的文件的详细信息,v是verbose的第1个字母。
179     z                        使用gzip压缩算法来压缩打包后的文件。
180     j                        使用bzip2压缩算法来压缩打包后的文件。
181 tar -cvf arch.tar arch         将arch目录打包成一个名为arch.tar的归档文件
182 tar -cvf my.tar /etc /root/an.cfg   将 /etc/ 目录和 /root/an.cfg 文件打包进去为my.tar
183 tar -cvf /tmp/test test.tar *        将该路径下所有文件打包至/tmp/test
184 tar -cvf /tmp/etc.tar /etc             将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar仅打包,不压缩!
185 tar -zcvf /tmp/etc.tar.gz /etc        将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar打包后,以 gzip 压缩
186 tar -jcvf /tmp/etc.tar.bz2 /etc     将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar打包后,以 bzip2 压缩
187 tar xvf test.tar                    解压打包文件
188 tar xvf /tmp/test.tar –C /test2                将/tmp下test.tar文件解压至/test2目录下
189 tar xvf /tmp/test.tar.bz2 –C /test2        将/tmp下test.tar.bz2文件解压至/test2目录下
190 
191 gzip test.tar.gz                        用gzip方式压缩
192     gunzip test.tar.gz                用gzip方式解压缩
193 bzip2 test.tar.bz2                        用bzip2方式压缩
194     bunzip2 test.tar.bz2            用bzip2方式解压缩
195 
196 vi                        编辑器
197 vim 文本路径            #只能打开文本文件
198 进入命令行模式
199     a/A                    进入插入模式并在光标之后进行添加。
200     i                    进入插入模式并在光标之前进行插入。
201     o                    进入插入模式并在当前(光标所在)行之下开启新的一行。
202     esc                    返回命令行模式
203 命令行模式:
204     G                     转到文件末尾       数字n+G 跳转至第n行
205     gg                     转到文件开头
206     H                     跳到当前屏幕最上方的第一个字符
207     M                    跳到当前屏幕中间一行的第一个字符
208     L                    跳到当前屏幕最下方的第一个字符
209     $                     转到行尾
210     0                     转到行首
211     yy                     复制     先按数字3,再按yy,复制三行
212     P(大写)            在下一行粘贴     先按数字n,再按p ,粘贴n行
213     p                     在上一行粘贴     先按数字n,再按p ,粘贴n行
214     dd                     删除    先按数字n,再按dd ,删除n行
215     u                   撤销当前操作
216     ctrl+r              恢复一步操作
217     /bash  +n           查找含bash文件,按n跳转
218 扩展模式
219     shift+:             进入扩展模式,esc 返回命令行模式
220     w                    保存
221     q                    退出(不保存)  q!强制退出并保存
222     wq                    保存退出
223     wq!                强制保存退出
224     s                     修改当前行
225     %s                  表示所有行,即全文
226     g                     一行的所有内容
227     %s /python/PYTHON/g      将全篇文章的python替换成PYTHON
228 
229 init 0                     关机
230 init 1                     以root用户进入单用户模式
231 init 2                    多用户模式,但没有启用网络功能
232 init 3                    多用户 文本终端
233 init 4                     多用户自定义模式,开发使用
234 init 5                     多用户 图形界面
235 init 6                     重启
236 
237 关闭系统的命令:
238     shutdown -h now 
239     halt
240     poweroff
241     init 0
242 重启系统的命令:
243     shutdown -r now
244     reboot
245     init 6
246     Ctrl+Alt+Delete键
247     
248 单用户模式修改root用户密码
249     1)重启按e 进入进入到GRUB启动菜单
250     2)找到单用户配置文件  (开头:linux16 /Vmlinuz-3.10
251     3)删除rhgb quiet  设置
252     4)在UTF-8后面输入:init=/bin/sh
253     5)ctrl+x 重启
254     6)输入:monut -o remount,rw /
255     7)vi/vim 进入/etc /passwd  删除root用户密码占位符
256         或者echo ‘abc123’ | passwd –stdin root  给root用户重置密码,
257     8)输入 touch  /.autorelabel 更新系统信息    
258     9) 输入 exec /sbin/init 重启系统
259 
260 系统监控
261 top                            查看CPU和进程状态
262 free                          监控内存   以kb为单位
263 free –w                      buffer cache 分开计算
264 free –m                     监控内存  以Mb为单位
265     buffer                  缓解内存和硬盘之间的速度差, 为一些将要写入内存但还没有写入的数据
266     cache                      已经写入内存,为方便再次取用而缓存的一些常用数据
267 ps                            用来显示当前进程的状态。
268 Ps –aux                     显示所有的与用户相关的完整信息
269 ps aux | head -3            查看前三条
270 ps aux | grep ‘firefox’ head -3    查找firefox的进程 (grep 过滤)
271 ps –elf                     查看进程,并查看父进程id号
272 
273 pgrep                        通过名称或其他属性查找进程
274 pgrep firefox                查找名为firefox的进程
275 kill -9 11727               强制杀死进程号为11727的进程
276      -9                     强制杀死
277 pkill -9 进程名             按进程名杀
278 pstree 进程名/进程号           查看进程树
279 
280 
281 echo $[1+2]                 简单计算
282 uname –r                    查看系统内核版本
283 uname –a                    查看系统内核版本
284 cat /etc/redhat-release        查看系统版本
285 while :;do free ;slepp 1;clear;done        每秒查看一次内存,并清屏
286 echo 3 > /proc/sys/vm/drop_caches            清除缓存cache
287 top &                         后台运行
288 
289 df               显示文件系统中磁盘使用和空闲区的数量
290     –h           以G为单位查看
291     -i           以文件数查看
292     -T             查看文件类型
293     -a             显示所有磁盘
294 du  -sh /etc    统计/etc的文件夹大小
295 dd if=/dev/zero of=/a.txt bs=200MB count=1   测试硬盘读写速度
296 0
297 fdisk            创建磁盘分区。
298     -d            删除一个(已经存在的)分区,其中d是delete的第1个字母。
299     -l            列出(已经存在的)分区的类型,其中l是list的第1个字母。
300     -m            列出fdisk中使用的所有命令,其中m是menu的第1个字母。
301     -n            添加一个新的分区,其中n是new的第1个字母。
302         p        主分区
303         e        扩展分区
304         l        逻辑分区
305     -p            列出分区表的内容,其中p是print的第1个字母。
306     -q            退出fdisk,但是不存储所做的变化,其中q是quit的第1个字母。
307     -t            改变分区系统的id,其中t是title的第1个字母。
308     -w            退出fdisk并存储所做的变化,其中w是write的第1个字母。
309 fdisk -l /dev/sda        查看第一块硬盘分区信息
310 mkfs                    格式化磁盘
311 mkfs.ext4 /dev/sdb1        将分区/dev/sdb1格式化为ext4文件系统
312 mkfs.xfs /dev/sdb1        将分区/dev/sdb1格式化为xfs文件系统
313 
314 mkswap /dev/sdb2        使用 mkswap 命令将/dev/sdb2设置交换分区
315 swapon /dev/sdb2        启用交换分区
316 swapon -s                查看交换分区的状态
317 
318 挂载的定义:挂载指将一个设备(通常是存储设备)挂接到一个已存在的目录上。
319 mount                    实现文件系统的挂载。
320 mount /dev/sdb1 /wg        将/dev/sdb1分区挂载到/wg目录上的命令
321 
322 umount                    实现文件系统的卸载。
323 umount /wg                卸载/wg上的文件系统的命令:
324     -l                    强制卸载
325     
326 yum install net- tools -y    yum下安装net工具包
327 
328 iptables -F             清空防火墙网络规则
329 setenforce 0            表示临时关闭selinux防火墙 (执行这两条命令会断网)
330 ifconfig                 临时设置ip地址(重启失效)
331 ifconfig ens33 101.5.210.1/24         将ens33网卡设置ip地址为101.6.210.1,子网掩码为:255.255.255.0
332 ifconfig ens33:0 101.5.210.1/24     设置虚拟网卡
333 ifconfig ens33 down                 关闭网卡
334 ifconfig ens33 up                    启动网卡
335 
336 cd /etc/sysconfig/network-scripts/        网卡配置文件存放路径,修改配置文件可永久修改ip地址
337 vim ifcfg-ens33                            修改网卡配置文件
338     HWADDR=
339     TYPE=
340     BOOTPROTO=static
341     IPADDER=
342     NETMASK=
343     GATEWAY=
344     DNS1=
345     DNS2=
346     NAME=
347     UUID=
348     ONBOOT=YES
349 systemctl restart network             重启网络状态
350 systemctl status network             查看网络状态
351 systemctl stop network                关闭网络
352 systemctl start network                开启网络
353 
354 route-n                                查看网关
355 vim /etc/resolv.conf                修改dns配置文件
356     nameserver 166.111.8.28            #添加dns配置信息
357     nameserver 166.111.8.29            #添加dns配置信息
358 vim /etc/hosts                        本地解析,指定解析服务器,优先级高于resolv
359     166.111.8.28 www.baidu.comm        制定166.111.8.28服务器解析www.baidu.com域名
360 route add default gw 101.5.210.1 dev ens33        #为网卡ens33增加网关101.5.210.1
361 route del default gw 101.5.210.1 dev ens33        ##删除网卡ens33的网关101.5.210.1
362 
363 软件包管理
364 rpm :二进制格式软件包
365 rpm –ivh            安装rpm包
366     –i                安装(Install)软件。
367     –U                升级(Upgrade)旧版本的软件。
368     –e                移除/删除(Erase)软件。
369     –v                显示详细的处理信息。
370     –h                显示安装进度。卸载不能用
371     -q  zsh            查看zsh软件包是否安装成功
372     -qa                显示目前操作系统上安装的全部软件包
373     -qa | grep zsh
374     -ql                查看软件包安装路劲
375     -qi                查看安装软件包的详细信息
376     -qf                查看某一个文件是哪个软件包产生的显示这个文件是由哪个软件包安装的
377 rpm –e zsh            卸载zsh软件包
378 rpm –e zsh --nodeps 忽略依赖性,强制卸载zsh包
379 rpm –ivh zsh --force    #在已安装软件包的情况下,强制安装,即手动更新。
380 rpm -ivh http-*            #下载以http开头的所有软件包
381 
382 
383 
384 yum:自动解决依赖性安装二进制软件包
385 mount /dev/sr0 /media    #将光盘挂载到/media目录下
386 
387 yum –y install 软件名                掌握使用yum安装软件
388 yum –y remove 软件名                掌握使用yum删除软件
389 yum –y groupinstall 组件名           掌握使用yum安装组件
390 yum –y groupremove 组件名            掌握使用yum删除组件
391 yum clean all                        掌握清除yum缓存
392 yum search                            使用yum查找软件包
393 yum - y erase apr                    卸载apr软件包
394 yum - y install http*                下载以http开头的所有软件包
395 
396 
397 cd /etc/yum.repos.d                 查看yum网络源配置文件 (vim Cent_Bas.repos)
398 cd /media/repodata 
399 
400 自己手动配置yum云:
401 源目录: /media
402 cd /etc/yum.repos.d
403 vim tset.repo
404     [标题:test]
405     name=shoudong peizhianzhaung yuan
406     baseurl=file:///media
407     enable=1
408     gpgcheck=0
409 yum install httpd    配置完成后即可安装
410 
411 手动关闭yum自动更新
412 vim /etc/yum/yum-cron-hourly.conf
413     download_updates = no            #参数yes改为no
414     
415 vim /etc/yum.conf 
416     cachedir=/缓存地址
417     keepcache=1
418 手动配置yum缓存
419 yum makecache -y
420 mkdir /my_repo                                #创建自己的配置源
421 cp /rpms/base/packages/* /my_repo         #将软件包拷贝到自己的配置源
422 
423 手动配置依赖性关系
424 rpm -ivh createrepo-0.9.9-23.rpm  安装createrepo命令工具
425 createrepo /my_repo/
426 vim /etc/yum.repos.d/http.repo   
427     [httpd]
428     name=httpd
429     baseurl=file:///my_repo
430     enable=1
431     gpgcheck=0
432     
433 yum grouplist    查看yum软件包组
434 yum -y groupinstall "systemtools"    安装systemtools软件包组
435 
436 手动配置python3.6   须先安装开发工具、zlib-*系列包
437 yum install lrzsz                    安装lrzsz软件包,用来向虚拟机传输数据
438 tar -xvf Python                        解包,完成后自动创建一个Pytho的目录
439 ./python/configure --prefix=/usr/local/python3.6   进行安装初始化,并创建安装路径
440 make                                 编译命令
441 make install                        编译安装
442 
443 源码安装
444     1、命令:yum -y groupinstall "开发工具"        #安装开发工具
445     2、命令yum -y install zlib-*                    #安装zlib系列包
446     3、命令:yum –y lrzsz                #安装传输工具
447     4、拷贝文件
448     5、命令:tar –xvf Python-3.6.1.tgz        #解压文件
449     6、命令:mkdir –p /user/local/pyrhon3        #创建安装目录
450     7、命令:./python/configure --prefix=/usr/local/python3.6   
451     #进行安装初始化,并指定安装路径
452     8、命令:make                 #编译命令
453     9、命令:make install        #编译安装
454     10、命令:ln -s /usr/local/python3/bin/python3 /usr/bin/python3
455     #建立python3的软链
456     11、命令:vim ~/.bash_profile     #加入环境变量
457     12、检验python3是否安装成功        #输出“Hello World”
458     
459 安装samba服务
460 1、准备环境
461     iptables –F                            临时清除防火墙
462     systemctl stop firewalld            
463     systemctl disable firewalld            关闭开机自启
464     setenforce 0
465         /etc/sysconfig/selinux
466         #SELINUX=disabled
467             ====》part2:配置ip       arping ip地址   ping通时返回ip地址
468     
469 2、安装软件包
470 yum -y install samba
471 3、修改配置文件
472 /etc/samba/smb.conbf
473     [public]
474             comment = Public Stuff
475             path = /share
476             public = yes
477             writable = yes
478             printable = no
479             write list = +staff
480 
481 4、启动服务
482 systemctl start smb
483 
484 5、测试
485 samba用户必须是系统用户,登录类型为/sbin/nologin不可登录型
486     [root@www repo_bak]# useradd smb1
487     [root@www repo_bak]# smbpasswd -a smb1
488     [root@www repo_bak]# useradd smb2
489     [root@www repo_bak]# smbpasswd -a smb2
490     [root@www repo_bak]# useradd smb3
491     [root@www repo_bak]# smbpasswd -a smb3
492     [root@www repo_bak]# usermod -s /sbin/nologin smb1
493     [root@www repo_bak]# usermod -s /sbin/nologin smb2
494     [root@www repo_bak]# usermod -s /sbin/nologin smb3
495     
496 安装nginx
497 1、准备环境
498     iptables –F                            临时清除防火墙
499     systemctl stop firewalld            
500     systemctl disable firewalld            关闭开机自启
501     setenforce 0
502         /etc/sysconfig/selinux
503         #SELINUX=disabled
504             ====》part2:配置ip       arping ip地址   ping通时返回ip地址
505     
506 2、安装软件包
507 二进制方式安装
508     yum install epel-release -y
509     yum install nginx -y 
510 源码安装
511     yum –y install gcc-* 
512     yum –y install glibc-* 
513     yum –y install pcre -y
514     ./configure --prefix=/usr/local/nginx --with-pcre=/usr/lib64
515     ./configure --prefix=/usr/local/nginx --with-http_rewrite_module
516     make
517     make install
518 3、修改配置文件
519     二进制:/etc/nginx/nginx.conf
520     源码:/usr/local/nginx/conf/nginx.conf
521     vim /usr/local/nginx/conf/nginx.conf
522     #user  nobody;
523     worker_processes  3;
524 4、启动服务
525     二进制:systemctl restart nginx
526     源码:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
527     ps aux | grep nginx
528     #/usr/local/nginx/sbin/nginx -s stop 关闭
529     #/usr/local/nginx/sbin/nginx -s reload 重新加载配置文件
530 5、测试
531     浏览器打开192.168.205 显示welcome to nginx!即成功
532     
533 安装nfs服务
534 1、准备环境
535     iptables –F                            临时清除防火墙
536     systemctl stop firewalld            
537     systemctl disable firewalld            关闭开机自启
538     setenforce 0
539         /etc/sysconfig/selinux
540         #SELINUX=disabled
541             ====》part2:配置ip       arping ip地址   ping通时返回ip地址
542     
543 2、安装软件包
544     yum install rpcbind nfs-utils –y
545 3、修改配置文件
546     NFS服务的配置文件:/etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,
547     所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
548     /etc/exports文件内容格式:
549     <输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
550         客户端常用的指定方式
551             指定ip地址的主机:192.168.0.200
552             指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
553             指定域名的主机:david.bsmart.cn
554             指定域中的所有主机:*.bsmart.cn
555             所有主机:*
556     NFS主要有3类选项:
557         访问权限选项
558             设置输出目录只读:ro
559             设置输出目录读写:rw
560         用户映射选项
561             all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
562             no_all_squash:与all_squash取反(默认设置);
563             root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
564             no_root_squash:与rootsquash取反;
565             anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
566             anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
567         其它选项
568             secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
569             insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
570             sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
571             async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
572             wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
573             no_wdelay:若有写操作则立即执行,应与sync配合使用;
574             subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
575             no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
576     例如:
577         
578         /share 192.168.31.0/24(rw,sync,fsid=0)
579 4、启动服务
580     chmod -R o+w /share        #开权限(nfs开启了w权限还不行,others还需要对/share目录有w权限)
581 
582     systemctl enable nfs-server.service        #为nfs做开机启动:
583     systemctl enable rpcbind.service        #为rpcbind做开机启动:
584 
585     systemctl start rpcbind.service                启动(必须先启动rpcbind服务)
586     systemctl start nfs-server.servic            启动(必须先启动rpcbind服务)
587 5、测试
588 
589 安装计划任务crond服务
590 计划任务:事先手动将计划任务设定好,后台运行,到了预定的时间就会自动执行的任务
591 crond服务相关的软件包
592     [root@MiWiFi-R3-srv ~]# rpm -qa |grep cron
593     cronie-anacron-1.4.11-14.el7.x86_64
594     crontabs-1.11-6.20121102git.el7.noarch
595     cronie-1.4.11-14.el7.x86_64
596         这些包在最小化安装系统时就已经安装了,并且会开机自启动crond服务,
597         并为我们提供好编写计划任务的crontab命令。
598 计划任务分为两类:系统级和用户级
599     系统级计划文件存放在/etc/crontab路径下
600     用户的计划文件放在/var/spool/cron/用户名
601 编写计划任务:
602     系统级可以直接对文件进行修改或使用 crontab -e命令
603     用户级使用 crontab -e命令
604         crontab -e -u user1    #指定user1编写计划任务
605 crontab命令编写计划任务
606     语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
607     crontab任务配置基本格式:
608     *  *  *  *  *  command
609     分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令
610     第1列表示分钟1~59 每分钟用*或者 */1表示
611     第2列表示小时1~23(0表示0点)
612     第3列表示日期1~31
613     第4列表示月份1~12
614     第5列标识号星期0~6(0表示星期天)
615     第6列要运行的命令
616     参  数: 
617         -e  编辑该用户的计时器设置。 
618         -l  列出该用户的计时器设置。 
619         -r  删除该用户的计时器设置。 
620         -u<用户名称>  指定要设定计时器的用户名称。
621 注意:
622     1 查看计划任务的执行:tail -f /var/log/cron
623     2 写计划任务时,命令必须加上绝对路径,否则会出现这种情况:
624         从日志中看,确实触发了计划任务的执行,但是命令却没有执行成功,
625         比如* * * * * reboot就会出现这种情况,需要将reboot写成/usr/sbin/reboot
626 crontab例子:
627     30 21 * * * /usr/local/etc/rc.d/apache restart #每晚的21:30 重启apache
628     45 4 1,10,22 * * /usr/local/etc/rc.d/apache restart #每月1、10、22日的4 : 45重启apache
629     10 1 * * 6,0 /usr/local/etc/rc.d/apache restart #每周六、周日的1 : 10重启apache
630     0,30 18-23 * * * /usr/local/etc/rc.d/apache restart #每天18 : 00至23 : 00之间每隔30分钟重启apache
631     0 23 * * 6 /usr/local/etc/rc.d/apache restart #每星期六的11 : 00 pm重启apache
632     * 23-7/1 * * * /usr/local/etc/rc.d/apache restart #晚上11点到早上7点之间,每隔一个小时的每分钟重启 apache
633     0 */1 * * * /usr/local/etc/rc.d/apache restart #每一小时重启apache 
634 常见的时间格式可以用如@yearly的方式代替
635     @reboot 代表的意思Run once, at startup.
636     @yearly 代表的意思Run once a year, "0 0 1 1 *".
637     @annually 与@yearly相同意思
638     @monthly 代表的意思Run once a month, "0 0 1 * *".
639     @weekly 代表的意思Run once a week, "0 0 * * 0".
640     @daily 代表的意思Run once a day, "0 0 * * *".
641     @midnight 与@daily的意思相同
642     @hourly 代表的意思Run once an hour, "0 * * * *".
643 查看cron服务是否起作用
644     cat /var/log/cron        查看定时任务是否准时调用了可以/var/log/cron中的运行信息
645     tail -f /var/spool/mail/用户名     查看普通用户的计划任务执行情况
646     
647 date '+%Y-%m-%d'    以2017-06-01的格式获取时间信息
648      %H  %M %S 分别表示时、分、秒  %T 表示完整时间
649 date '+%Y-%m-%d_%T'    显示2017-06-01_12:1520
650 
651 touch `date '+%Y-%m-%d'`.txt        创建2017-06-01.txt(``表示取执行结果)
652 * * * * * /usr/bin/tar cvf /etc_bak/$(date '+\%Y-\%m-\%d_\%T').tar.gz /etc
653 
654 Shell
655     shell一般代表两个层面的意思,一个是命令解释器,比如BASH,
656     另外一个就是shell脚本。本节我们站在命令解释器的角度来阐述shell
657 
658 每个用户登录shell需要执行的四个文件
659     /etc/profile
660     /home/egon/.bashrc_profile
661     /home/egon/.bashrc
662     /etc/bashrc
663 非登录shell加载的文件
664     /home/egon/.bashrc
665     /etc/bashrc
666     通常,我们会将环境变量设置在 /home/egon/.bashrc 中
667     如果不管哪种登录都想使用的变量 就设置在/etc/bashrc中
668 添加语句:
669     PATH=/usr/local/python3:$PATH
670     export PATH
671 
672 bash中元字符:
673     bash中的特殊字符,键盘上能敲出来的特殊字符都有其特殊意义
674     元字符是被shell解释的
675     
676 `` 命令替换 取命令的执行结果
677     res=`ls`                 #取命令的运行结果,赋值给变量res
678 $()同``但它弥补了``的嵌套缺陷
679      res=$(echo $(ls))         #替代方案
680 ~ 家目录
681 ! 取非/匹配最近一次历史命令
682 ! ls 带空格 将命令的返回值取反
683     [root@~]# ! echo ok #将结果取反
684     ok
685     [root@ ~]# echo $?
686     1
687 @ 无特殊含义
688 # 注释
689 $ 变量取值
690 $() 同``
691 ${} 变量名的范围
692 $[] 整数计算     
693 & 后台执行;&& 逻辑与    
694 * 匹配任意长度字符串;计算乘法
695 () 在子进程中执行    
696 "" 软引 ''硬引
697 ; 可以接多个命令    
698 : 空命令 真值    
699 | 管道; || 逻辑或
700  转义;
701 {} 命令列表 ,注意括号内的开头和结尾必须是空格{    ls; cd /;   }
702 [] 字符通配,匹配括号内之一;    
703     
704 正则表达式
705 正则:用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。
706       或者说:正则就是用来描述一类事物的规则。
707 在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的    
708 
709 文本处理工具/命令:grep
710 参数
711     -n  :显示行号
712     -o  :只显示匹配的内容
713     -q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
714 
715     -l  :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc 
716     -A  :如果匹配成功,则将匹配行及其后n行一起打印出来
717     -B  :如果匹配成功,则将匹配行及其前n行一起打印出来
718     -C  :如果匹配成功,则将匹配行及其前后n行一起打印出来
719     --color
720     -c  :如果匹配成功,则将匹配到的行数打印出来
721     -E  :等于egrep,扩展
722     -i  :忽略大小写
723     -v  :取反,不匹配
724     -w:匹配单词
725     -r  递归查询
726 grep种类
727     grep
728     fgrep
729     pgrep
730     egrep
731     常用grep、egrep
732 正则介绍
733     ^    行首
734     $    行尾
735     .    除了换行符以外的任意单个字符
736     *    前导字符的零个或多个
737     .*    所有字符
738     []    字符组内的任一字符
739     [^]    对字符组内的每个字符取反(不匹配字符组内的每个字符)
740     ^[^]    非字符组内的字符开头的行
741     [a-z] 小写字母
742     [A-Z] 大写字母
743     [a-Z] 小写和大写字母
744     [0-9] 数字
745     <    单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
746     >    单词尾
747     grep 加 -E 或 egrep 或转义
748     ? 前导字符零个或一个
749     + 前导字符一个或多个
750     x{m} x出现m次
751     x{m,} x出现m次至多次(至少m次) 
752     x{m,n} x出现m次至n次
原文地址:https://www.cnblogs.com/hedeyong/p/6900552.html