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 当前登录用户信息 11 :0 图形界面 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:15:20 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次