微信做单页的网站,软件开发公司职位介绍,中国中小企业网站建设情况,网站建设课程实训报告Linux运行级别 六种运行级别#xff1a; 0、关机 1、单用户#xff08;可用来找回密码#xff09; 2、多用户无网络 3、多用户有网络#xff08;多用于工作环境#xff09; 4、预留 5、图形界面#xff08;多用于学习环境#xff09; 6、重…Linux运行级别 六种运行级别 0、关机 1、单用户可用来找回密码 2、多用户无网络 3、多用户有网络多用于工作环境 4、预留 5、图形界面多用于学习环境 6、重启 相关命令 a、切换当前运行级别【init 3】仅当前环境下生效重启后失效 b、得到当前运行级别【systemctl get-default】 c、设置默认运行级别【systemctl set-default graphical.target/multi-user.target】{永久生效} 【注】可以在/etc/inittab中查看相关信息
vim命令说明 vim三种模式 1.1 正常模式按【ESC】键进入该模式可以对文档进行复制、粘贴、删除等操作。 1.1.1 复制当前行yy y-yank 1.1.2 复制当前n行nyy 如5yy从光标所在行开始数5行进行复制包括当前行 1.1.3 粘贴到指定行或具体位置p 如果复制的是整行则粘贴到光标所在行的下一行若复制的是某段内容则粘贴到光标所在位置的后面 1.1.4 删除/剪切当前行dd 1.1.5 删除/剪切当前n行ndd 1.1.6 可视化块操作v 移动左右方向键选中相应内容按y复制选中内容移动光标到指定位置按p粘贴 1.1.7 取消上次动作u u-undo 1.1.8 将光标移动到第一行gg 1.1.9 将光标移动到最后一行G 1.2 插入模式按【i】键进入该模式。 1.3 命令模式按【:】键进入该模式。可以对文档进行存盘、查找、退出、显示行号等操作。 1.3.1 保存并退出【:wq】 w-writeq-quit 1.3.2 退出不保存【:q!] q-quit 1.3.3 查找指定条件【/要查找内容】 n-查找下一个N-查找上一个 1.3.4 替换【:[替换范围]s/被替换内容/新内容/flags】 替换范围无-当前行m-第m行m,n-第m到n行%-整个文件 flagsg(global)-替换一行中出现的所有匹配否则只替换一行中的第一次配置内容c(confirm)-替换前需要确认i-忽略大小写 ss是substitute的缩写 1.3.5 显示行号【:set nu】 nu-number 1.3.6 取消行号【:set nonu】 nu-number 1.3.7 取消高亮显示【:set noh】 1.3.8 将光标移动到指定行【:行号】 1.4 个性化配置 配置文件/etc/vimrc 内容增加如下内容 set nu 设置显示行号 set tabstop 4 设置制表符的宽度为4个空格 set shiftwidth4 设置缩进时使用4个空格 set autoindent 启用自动缩进 set smartindent 启用智能缩进
Linux命令说明 一、开关机 1.1 关机 1.1.1 shutdown -h now 参数h-haltnow-马上now可以改为具体数字表示n分钟后关机。 1.1.2 halt 关机但不关闭电源尽量不用该命令 1.2 重启 1.2.1 shutdown -r now 参数r-rebootnow-马上now可以改为具体数字表示n分钟后重启。 1.2.2 reboot
二、用户 2.1 切换用户su - 用户名 su-switch user- 前后有空格的啊 2.2 注销用户logout/exit 2.3 新建用户useradd 用户 默认将该用户放入与该用户名相同的组中 useradd -g 用户 将该用户放入到指定组中 2.4 设置密码passwd 用户 2.5 删除用户userdel 用户 仅删除用户不删除该用户的家目录及邮件目录等信息 userdel -r 用户 r-remove将该用户的所有信息都删除 2.6 修改用户所在组usermod -g 组 用户 2.7 显示用户信息id 用户 2.8 查看当前用户whoami 该用户可能是后切换的 2.9 查看首次登录用户who am i 2.10 用户所在文件/etc/passwd 每行含义-用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell 2.11 密码所在文件/etc/shadow 2.12 sudo命令模拟root来执行某些系统命令(/sbin)比如关机、重启、添加用户等 root把某些系统命令赋给普通用户或组visudo实际上是修改/etc/sudoers 格式如下 root/#组 ALL(ALL) ALL 用户名 IP地址【用户可在该IP的机器上执行命令】可使用身份 具体命令 如lag ALL /sbin/shutdown -h now lag用户可以执行关闭linux命令 sudo -l 可以查看root都赋予它哪些权限 三、组 3.1 新建组groupadd 组 3.2 删除组groupdel 组 3.3 组所在文件/etc/group 每行含义-组名:口令:组标识号:组内用户列表
四、文件/目录 4.1 显示当前目录pwd pwd-print working directory 4.2 显示目录内容ls -al a-alll-list可省略写ll 4.3 切换目录cd cd ~ -切换到当前用户的家目录cd .. -切换到上级目录 4.4 新建目录mkdir -p 目录 p-parents有参数p可以新建多级目录无参数p则只能建1级目录 4.5 删除空目录rmdir 目录 仅删除1级空目录不实用 4.6 删除目录/文件rm -rf 目录/文件 rm-remover-recursion递归f-force直接删除不显示是否删除等提示信息连目录带里面的文件一起删除慎用啊 4.7 创建空文件touch 文件 4.8 拷贝目录/文件cp -r 源目录/文件 目标目录 r-recursion递归 覆盖拷贝不提示\cp -rf 源目录/文件 目标目录 r-recursion递归f-force强制覆盖不提示因为cp默认使用的是别名【cp -i】覆盖是要提示的用\cp则不使用别名 4.9 移动或重命名目录/文件mv 源目录/文件 新目录/文件 4.10 查看文件内容cat 文件 参数n-带行号显示|more 多屏显示空格与ctrlb翻屏 4.11 查看文件内容less 文件 PgUp/PgDn翻页/查找内容q退出适合显示较大文件 4.12 查看文件内容head -n 5 文件 显示头5行文件内容默认10行 4.13 查看文件内容tail -n 5 文件 显示尾5行文件内容默认10行多用于查看日志 tail -f 文件 监控文件变化ctrlc退出 4.14 输出内容到控制台echo 内容 echo $PATH/HOSTNAME 4.15 输出重定向 用新内容替换旧内容 用新内容追加旧内容如echo hello /root/111.txt 4.16 软链接ln -s 源目录/文件 链接名 ln-link类似windows中快捷键方式存放链接文件的路径 4.17 硬链接ln 源文件 链接名 类似C语言中指向某内存地址的2个指针源文件与链接名的内容是一样的任何一个修改另一个也跟着变化 4.18 删除软链接rm 链接名 千万不要加参数-r来删除软链接因为该参数会删除软链接对应的目录/文件内容而不是删除软链接 4.19 删除硬链接rm 链接名 删除硬链接并不会影响另一个文件 4.20 查看历史命令history 10 查看最近执行的10个命令 4.21 执行历史命令!10 执行编号为10的历史命令 4.22 字符相关命令 4.22.1 cut [选项] 文件名 d 分隔符-按指定分隔符来分割列delimiterf 列号-提取第几列field。若2列之间用不固定的空格分隔的话该命令就不能用了 如cat /etc/passwd|grep /bin/bash|grep -v root|cut -d : -f 1 lag zs 查询所有普通用户 4.22.2 printf 输出类型输出格式 输出内容 输出类型 %ns 输出字符串n-输出几个字符 %ni 输出正数n-输出几个数字 %m.nf 输出浮点数如%8.2f输出8位数其中6位整数2位小数 输出格式 \n 换行 \r 回车 \t TAB键 4.22.3 awk 条件1{动作1} 条件2{动作2} ... 文件名 如df -h | awk {printf $1 \t $5 \t $6 \n} df -h|grep sda2|awk {printf $5}|cut -d % -f 1 df -h|awk BEGIN{FS }{printf $1 \t $2 \n} FS分割符前面的BEGIN是在读取内容时先做点什么
五、日期 5.1 显示当前时间date %Y-%m-%d %H:%M:%S 5.2 设置当前时间date -s 2024-03-20 20:23:18 重启失效 5.3 显示日历cal 2024 显示2024年的日历
六、搜索查找 6.1 查找文件find 搜索范围 -name 文件名 从指定目录递归查找指定名称的文件如find /root -name hello* 6.2 快速定位locate 文件名 该命令自己建立数据库并在其中查找而不是遍历目录查找因此要先执行updatedb建立/更新数据库。文件不能匹配通配符 如 updatedb locate hello.c 6.3 过滤查找grep [选项] 要查找内容 源文件 n-显示行号,i-忽略大小写v-反向匹配。在某文件或管道中查找内容 如 grep -n prin /root/test/hello.c cat /root/test/hello.c | grep -n prin 6.4 查找命令所在位置which 命令
七、压缩解压 7.1 内部命令 7.1.1 压缩gzip 文件 该命令只能压缩文件不能压缩目录要想压缩目录必须与tar联合使用该命令默认不保留源文件 7.1.2 解压gunzip 文件 7.1.3 打包tar [选项] xxx.tar.gz 打包内容 tar将某目录下所有内容归档成一个.tar文件然后用gzip将该文件压缩成.tar.gz文件来实现压缩目录 如tar -zcvf home.tar.gz /home z-用gzip压缩c-建立新.tar文件v-显示详细信息f-指定压缩后文件名该参数一定要放到最后一个 7.1.4 拆包tar [选项] xxx.tar.gz -C 拆包后存放路径 如tar -zxvf home.tar.gz -C /root x-释放C-指定释放路径无则默认当前目录 7.2 外部命令 7.2.1 压缩zip [-r] xxx.zip file1 file2... 该压缩格式与windows通用若要压缩目录则加参数r。但该命令不是linux内部命令需要安装 7.2.2 解压unzip [-d] 解压后存放路径 xxx.zip 默认解压到当前目录该命令需安装
八、权限管理重点 8.1 修改文件所有者chown 用户 文件1 文件2... 仅修改文件的所有者而不会修改文件的所在组目录可以加参数-R来递归把目录下所有文件一起修改 8.2 修改文件所在组chgrp 组 文件1 文件2... 仅修改文件所在组 8.3 权限符号drwxr-xr-x 共10位 第0位文件类型-文件d目录l软链接c字符设备文件如鼠标键盘b块设备如硬盘 第1~3位文件所有者的权限 r可读w可写x可执行 第4~6位文件所在组的权限 第7~9位文件其他组的权限 针对目录的权限符号含义 r-可以读取查看目录内容如ls w-可以修改目录如重命名目录在目录内创建或删除文件 x-可以进入目录如cd 这个非常重要若无该权限则目录就进不去进不去目录就无法对目录内的文件做任何操作 针对文件的权限符号含义 该文件所在目录必须拥有x权限否则无意义。连目录都进不去又如何能操作文件呢 r-可以读取查看文件如cat less head tail w-可以修改文件但但但不代表可以删除文件想删除文件的前提是对该文件所在目录有w权限 x-可以执行文件 修改权限chmod 第一种方式用[][-][]来变更文件/目录权限 u-所有者g-所在组o-其他组a-所有人{包括ugo} 1chmod urwx,grx,or 文件/目录 -rwxr-xr-- 2chmod ow 文件/目录 其他组增加w权限 3chmod a-x 文件/目录 所有人都取消执行权限 第二种方式用数字来变更文件/目录权限 r4w2x1{数字1x2w3wx4r5rx6rw7rwx}【记住二进制000,2^2,2^1,2^0】 chmod 751 文件/目录 -rwxr-x--x 8.4 文件系统属性权限chattr change file arrtibutes 语法chattr [-] [选项] 增加权限 - 删除权限 等于某权限 i - 文件锁定该文件只能看其他什么也做不了。针对root也生效 目录只能修改该目录下的文件数据不能建立或删除文件。 举例chattr i /root/test/aaa.txt 锁定该文件root也改不了 lsattr /root/test/aaa.txt 查看该文件的系统属性 chattr -i /root/test/aaa.txt 恢复正常 a - 文件可增加文件内容但不能删除或修改。 目录可以在该目录下新建或修改文件但不能删除。 九、任务调度计划任务 9.1 语法: crontab [选项] e-编辑定时任务{edit}l-查询定时任务{list}r-删除定时任务{remove} 9.2 说明*/1 * * * * date \%F \%T /tmp/mydate.txt 五星上将由于命令中有%因此要用\转义用#注释 第1颗星分钟 取值范围0-59 第2颗星小时 取值范围0-23 第3颗星天数 取值范围1-31 第4颗星月份 取值范围1-12 第5颗星星期 取值范围0-7 0与7都代表周日 符号解析* 任何时间。 , 不连续时间。如[10 8,12,16 * * * 命令]代表每天的8点10分12点10分16点10分都执行一次命令 - 连续时间。如[0 5 * * 1-5 命令]代表每周一到周五早上5点0分执行一次命令 */n 每隔多久执行一次。如[*/10 * * * * 命令]代表每隔10分钟执行一次命令 符号举例45 22 * * * 每天22点45分执行 0 17 * * 1 每周一的17点0分执行 0 5 1,15 * * 每月1号与15号的5点0分执行 40 4 * * 1-5 每周1到周五的4点40分执行 */10 4 * * * 每天4点每隔10分钟执行一次即4:10,4:20,4:30,4:40,4:505点以后就不算了 0 0 1,15 * 1 每月的1号与15号还必须得是周一才在0点0分执行
十、磁盘管理 10.1 常识主引导记录MBR{master boot record}位于硬盘的0柱面0磁头1扇区位置主引导扇区共512字节。 分三部分。主引导程序、硬盘分区表DPTdisk partition table与分区有效标识55AA。 主引导程序占446字节分区表占64字节每个分区占16字节因此最多可以分4区分区有效标识占2字节固定是55AA。 由上述得知分区表的划分,一块硬盘最多可以分为4个分区就像windows中的C、D、E、F盘我们称之为主分区。那如果我们想多划分几个分区怎么办呢 只要把某个主分区改为扩展分区就行了。即我们可以建立n个主分区n31个扩展分区。 扩展分区是不能直接使用的也无法格式化我们将该扩展分区再划分为多个逻辑分区就绕过MBR的限制了。 10.2 硬盘起名在linux中一切皆文件。硬盘起名也是固定的。 IDE硬盘默认文件名为hdxhd-hard diskx是用字母来代表硬盘数。如第一块硬盘hda第二块为hdb...。 硬盘划分的分区文件名hdxnn-分区号如第一块硬盘第1分区为hda1第一块硬盘第2分区为hda2。 SCSI硬盘默认文件名为sdxsd-scsi diskx是用字母来代表硬盘数。如第一块硬盘sda第二块为sdb...。 硬盘划分的分区文件名sdxnn-分区号如第一块硬盘第1分区为sda1第一块硬盘第2分区为sda2。 10.3 增加硬盘新增加一个10G硬盘则该文件名为sdb将该硬盘划分为1个主分区2G和1个扩展分区8G再将扩展分区划分为2个逻辑分区各4G。 10.3.1 显示块设备信息lsblk [选项] lsblk-list block devices参数f-显示文件系统相关信息如类型、标签、UUID等。 通过该命令【lsblk】我们可以看到新增加的硬盘名称为sdb但还没有分区暂时不能使用。 10.3.2 分区fdisk 设备名 fdisk /dev/sdb 10.3.2.1 输入n创建新分区。再输入p创建主分区分区号为1起始扇区2048默认回车截止扇区要改为【2G】这第一个分区大小就固定了。 分区大小截止扇区-起始扇区* 512 / 1024 / 1024 / 1024 2G。可以输入p来查看该分区的详细信息。 10.3.2.2 输入n再输入e创建扩展分区分区号为2一路默认回车把硬盘剩余的8G空间都给它。 10.3.2.3 输入n再输入l将扩展分区再划分为逻辑分区默认分区号5因为前4个号是给主分区与扩展分区预留的逻辑分区必须从5开始。截止扇区改为【4G】 10.3.2.4 输入n再输入l创建逻辑分区默认分区号为6一路默认回车将剩余空间都给它。 10.3.2.5 输入w将以上修改写入到硬盘中。 [注]如果输入错误时按退格键是不好用的得按ctrlBackspace才行。 这时我们用lsblk -f查看就可以看到新增加的硬盘已经分好区了。但还没有UUID与挂载。 UUID是某分区的唯一识别码只有格式化后才有。 10.3.3 格式化mkfs -t 文件系统类型 分区块 mkfs-make file system。文件系统类型用ext4 10.3.3.1 mkfs -t ext4 /dev/sdb1 该命令执行完后用lsblk -f就可以查看到UUID了 10.3.3.2 mkfs -t ext4 /dev/sdb2 出错了因为sdb2是扩展分区不能格式化 10.3.3.3 mkfs -t ext4 /dev/sdb5 格式化逻辑分区 10.3.3.4 mkfs -t ext4 /dev/sdb6 格式化逻辑分区 格式化完毕只要与目录挂载就可以使用了。 10.3.4 挂载mount 设备文件 挂载目录 10.3.4.1 mount /dev/sdb1 /newdisk1 先建立目录/newdisk1再挂载 10.3.4.2 mount /dev/sdb5 /newdisk5 10.3.4.3 在挂载sdb6前先做个小实验。在目录/newdisk6中新建1个文件old.txt由于此时该目录还未被挂载所以该文件被存放在与/挂载的sda2中 回退到根目录下开始挂载。 mount /dev/sdb6 /newdisk6此时再进入到newedisk6中查看刚才新建的old.txt已经不存在了。 我们再新建一个文件new.txt。 10.3.5 卸载umount 设备文件/挂载目录 10.3.5.1 卸载sdb6umount /dev/sdb6卸载后我们进入newdisk6中发现new.txt文件不存在了而old.txt文件回来了。哈哈 10.3.6 永久挂载用命令行挂载的方式在linux重启后会失效只有修改配置文件才会永久生效。 10.3.6.1 修改配置文件/etc/fstab fstab-file system table vim /etc/fstab 如UUID477771fc-7c21-4fce-a137-37ec34c1c0f5 /boot ext4 defaults 1 2 该配置文件挂载行分6部分。 10.3.6.1.1 分区设备文件或UUID建议使用UUID可以用lsblk -f查看而不是设备文件因为设备文件的顺序可以人为修改比如把sdb1改为sdb3 而配置表却没有同步修改则可能会导致系统崩溃。 10.3.6.1.2 硬盘挂载点 10.3.6.1.3 文件系统名称类型 10.3.6.1.4 挂载参数 10.3.6.1.5 分区是否被dump备份0-不备份1-每天备份2-不定期备份 10.3.6.1.6 分区是否被fsck检测0-不检测其他数字代表检测优先级1最高 如/dev/sdb5 newdisk5 ext4 defaults 0 0 10.3.6.2 自动生效mount -a 根据/etc/fstab内容自动挂载永久生效不用重启 该命令非常重要必须执行可以查看挂载是否正确有错误可以马上修改否则有错误重启后会导致系统崩溃。 10.3.6.3 挂载配置文件出错导致系统崩溃 输入root密码进入系统修改/etc/fstab配置文件即可。若该文件只读无法修改则执行命令【mount -o remount,rw /】重新把/对应分区挂载有rw权限啊。 10.4 磁盘情况查询df -h df-disk freeh-human 10.5 目录情况查询du [选项] 目录 du-disk usageh-humana-包含目录内文件c-显示汇总信息 如du -hac /root 10.6 统计文件行数、字数、字节数wc [选项] 文件名 wc-word countl-行数w-字数c-字节数 如 wc aaa.txt 92 228 5744 aaa.txt即92行228个单词5744字节大小 利用该命令也可以查看某目录有多少个文件或有多少个子目录。 10.6.1 统计/opt下文件数【ls -l /opt | grep ^- | wc -l】 其中^-正则表达式表示过滤以-开头的内容 10.6.2 统计/opt下目录数【ls -l /opt | grep ^d | wc -l】 10.6.3 统计/opt下文件数包括子目录【ls -lR /opt | grep ^- | wc -l】 参数R-递归查询子目录 10.6.4 统计/opt下目录数包括子目录【ls -lR /opt | grep ^d | wc -l】 10.6.5 以树状来显示目录结构tree 目录 tree是外部命令得用yum install tree来安装才行 十一、网络配置 11.1 linux网络连接方式与虚拟网卡对应关系VMnet1对应linux的仅主机模式VMnet8对应linux的NAT模式。 11.2 查看并配置网络接口ifconfig [选项] 可用来查看linux的IP 11.3 测试网络是否畅通ping 网址 如果从linux虚拟机 ping windows主机不通有可能是因为windows的防火墙开着呢 11.4 固定IP 先用ifconfig查看IP假设为192.168.126.130现要改为固定IP为192.168.126.188 11.4.1 编辑网络配置文件/etc/sysconfig/network-scripts/ifcfg-ens33 11.4.1.1 取消DHCP自动分配IP服务改为静态分配 BOOTPROTOdhcp BOOTPROTOstatic 11.4.1.2 增加固定IP IPADDR192.168.126.188 11.4.1.3 增加掩码 NETMASK255.255.255.0 11.4.1.4 增加网关 GATEWAY192.168.126.2与VMnet8中的配置一样 11.4.1.5 增加DNS域名解析首选为1 DNS1192.168.126.2 11.4.1.6 生效 11.4.1.6.1 即时生效 service network restart 不用重启 11.4.1.6.2 重启生效 reboot 11.5 查看主机名hostname linux的主机名为lhw 11.6 修改主机名/etc/hostname 重启生效 11.7 关联主机名与IP 11.7.1 windows中关联文件c:\Windows\System32\drivers\etc\hosts 增加linux的主机名与IP对应关系192.168.126.188 lhw 这时在windows的dos窗口中ping linux的命令为ping lhw实际上是ping 192.168.126.188 11.7.2 linux中关联文件/etc/hosts 增加windows主机名与IP对应关系192.168.126.1 laglag是windows主机名ip是VMnet8IP 这时在linux终端中ping windows命令为ping lag实际上是ping 192.168.126.1
十二、进程管理 12.1 进程含义程序运行后会加载到内存中这就是进程。进程名以d结尾表示这是守护进程即后台进程daemon。 12.2 查看进程 12.2.1 ps -ef e-显示所有进程f-全格式ps-process status 12.2.2 ps -aux a-显示所有进程u-以用户格式显示x-显示后台进程运行参数 12.2.3 进程显示内容 USER - 用户名称 UID - 用户ID PID - 进程ID PPID - 进程的父进程ID C - CPU用来计算执行优先级的因子 %CPU - 占CPU百分比 %MEM - 占内存百分比 VSZ - 占虚拟内存大小单位字节 RSS - 占物理内存大小单位字节 TTY - 终端名称 STAT - 进程状态S-睡眠R-运行中Z-僵尸进程 START - 进程启动时间 STIME - 进程启动时间 TIME - 进程占用CPU时间 COMMAND - 进程启动所需的命令与参数 12.3 目录树显示进程pstree [选项] p-显示进程的PIDu-显示进程所属用户 12.4 杀死进程 12.4.1 kill [-9] 进程ID -9强制杀死进程该命令不会杀死该进程的子进程 12.4.2 killall 进程名 杀死该进程及其所有子进程
十三、服务管理 13.1 服务含义服务本质就是进程运行在后台通常监听某个端口等待客户端请求如mysqld、sshd、防火墙因此又称为守护进程。 13.2 服务命令systemctl [选项] 服务名 start-启动stop-停止restart-重启status-状态 如systemctl restart network.service 重新启动linux的网络服务 systemctl能管理的服务在/usr/lib/systemd/system目录下 13.3 自启动服务 13.3.1 查看所有服务自启动状态systemctl list-unit-files 如systemctl list_unit-files | grep firewalld.service 查看防火墙是否自启动 13.3.2 设置服务自启动systemctl enable 服务名 13.3.3 关闭服务自启动systemctl disable 服务名 13.3.4 查看某服务是否自启动systemctl is-enabled 服务名 [注]以上自启动都是针对3与5这2个级别的其他级别也没啥用。 13.4 举例 查看当前防火墙状态关闭防火墙再重启防火墙。 13.4.1 systemctl status firewalld 13.4.2 systemctl stop firewalld 13.4.3 systemctl start firewalld 13.5 打开或关闭端口 13.5.1 打开端口firewall-cmd --permanent --add-port端口号/协议 13.5.2 关闭端口firewall-cmd --permanent --remove-port端口号/协议 13.5.3 重新载入firewall-cmd --reload 13.5.4 查询端口firewall-cmd --query-port端口号/协议
十四、动态监控进程 14.1 top [选项] d-刷新秒数默认3秒i-不显示闲置或僵尸进程p-指定某进程ID并对其进行监控 14.1.1 交互操作 14.1.1.1 P 根据CPU使用率排序 14.1.1.2 M 根据内存使用率排序 14.1.1.3 N 根据PID排序 14.1.1.4 u 仅显示某用户进程输入u然后再输入用户名。取消则输入u再输入空格 14.1.1.5 k 杀死进程输入PID然后输入参数9强制杀死进程 14.1.1.6 q 退出
十五、监控网络情况 15.1 netstat [-anp] an-按一定顺序排列p-显示PID。anp-一个苹果
十六、软件包管理 16.1 RPMRedHat Package Manager的缩写类似Windows中的setup.exe。 16.1.1 查询指定包rpm -q 软件包名 rpm -qa | grep 软件包 如rpm -q firefox firefox-60.2.2-1.el7.centos.x86_64 名称firefox 版本60.2.2 系统1.el7.centos.x86_64 1-发布次数e17.centos-linux平台[这里指RHel7与centOS]x86_64硬件平台64位系统[i686、i386表示32位noarch表示通用] 16.1.2 查询包详细信息rpm -qi 软件包名 16.1.3 查询包中文件rpm -ql 软件包名 16.1.4 查询某文件归属于哪个包rpm -qf 文件 16.1.5 安装包rpm -ivh 带路径的软件包全名 i-installv-verbose提示h-hash进度条记不住就记hiv-艾滋病U-升级 16.1.5 依赖性有些包需要先安装依赖的包或某些依赖的文件如安装httpd时需要/etc/mime.types我们不知道该文件在哪个包里可以到www.rpmfind.net网站查。 16.1.6 卸载包rpm -e [--nodeps] 软件包 e-erasenodeps-强制删除不考虑是否有依赖关系就是卸啊 16.1.7 包名与包全名的区别未安装前要使用带路径的全包名安装后可以使用简略的包名了。 16.2 YUMYellow dog Updater,Modified的缩写yum是在网上的yum应用商店里下载软件。 16.2.1 网络地址配置文件/etc/yum.repos.d/目录下 repository-仓库 内容以CentOS-Base.repo为例 [base] 容器名称 nameCentOS-$releasever - Base 容器说明 mirrorlisthttp://mirrorlist.centos.org/?release$releaseverarch$basearchrepoosinfra$infra 镜像站点 #baseurlhttp://mirror.centos.org/centos/$releasever/os/$basearch/ yum服务器源地址与镜像网站二选一即可 gpgcheck1 1-RPM数字证书生效0-RPM数字证书不生效 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 数字证书公钥文件保存地址不用动 enabled1 0-该容器不生效其他-生效 光盘yum源 将/etc/yum.repos.d/下的所有文件的扩展名都改名或将他们移动到备份目录下只保留CentOS-Media.repo。修改其内容 将baseurl改为本地光盘挂载目录其他2个地址注释掉同时将enabled0改为1。 16.2.1 查询包yum list/search 软件包 16.2.2 安装包yum [-y] install 软件包 16.2.3 卸载包yum [-y] remove 软件包 yum卸载时会将相关依赖包都卸载而这些依赖包可能有别的程序要使用这有可能导致系统崩溃出问题 十七、shell 17.1 shell定义命令行解释器。 17.2 编写shell 17.2.1 以#!/bin/bash开头 举例vim hello.sh内容如下 #!/bin/bash echo helloworld 17.2.2 执行方式 17.2.2.1 sh ./hello.sh 17.2.2.2 ./hello.sh 该文件有可执行权限一定要带路径 17.2.3 变量 17.2.3.1 系统变量$HOME $PWD $SHELL $USER等可用set来显示shell中的所有变量。 17.2.3.2 自定义变量 17.2.3.2.1 定义变量变量名值 不能有空格 17.2.3.2.2 撤销变量unset 变量名 17.2.3.2.3 静态变量readonly 变量名不能unset 17.2.4 将命令的返回值赋给变量 如adate 等价于 a$(date) 反引号表示先运行里面的命令并把结果返回给变量 17.2.5 环境变量 17.2.5.1 export 变量名变量值 将shell变量输出为环境变量即全局变量 17.2.5.2 source 配置文件 让修改后的配置文件马上生效 17.2.5.3 echo $变量名 查询环境变量值 17.2.5.4 举例 17.2.5.4.1 在配置文件/etc/profile中增加环境变量内容export LAG_HOME/home/lag 17.2.5.4.2 source /etc/profils 让刚才新增加的变量马上生效 17.2.5.4.3 echo $LAG_HOME 17.2.6 位置参数变量 ./my.sh 100 200 这里的100与200就是位置参数变量 17.2.6.1 基本语法 17.2.6.1.1 $n n为数字$0命令本身$1-$9为前9个参数10以上用${10}${11}... 17.2.6.1.2 $* 代表所有参数$*把所有参数当做一个整体类似字符串 17.2.6.1.3 $ 代表所有参数$把每个参数分别对待类似数组 17.2.6.1.4 $# 代表所有参数的个数 17.2.7 预定义变量 17.2.7.1 $$ 当前进程的进程号(PID) 17.2.7.2 $! 后台运行的最后一个进程的进程号(PID) 17.2.7.3 $? 最后一次执行命令的返回状态,0-正确执行 17.2.8 运算符 17.2.8.1 语法$((运算式)) 或 $[运算式] 或 expr m n 用(())它里面的内容的语法类似C语言如 !但有些特殊表达式用不了 17.2.8.2 使用expr表达式的符号 - \* / % 加、减、乘、除、取余 17.2.8.3 举例计算(23)*4的值echo (23)*4$[(23)*4] 这种方式空格无所谓 17.2.9 条件判断 17.2.9.1 语法[ 条件 ] 注条件的前后必须有空格返回非空-true也可使用$?验证0-true1-false 17.2.9.2 判断 17.2.9.2.1 两个字符串比较 [ ok ok ]注意一定要有空格啊 17.2.9.2.2 两个整数比较 17.2.9.2.2.1 小于 -lt lt-less than[ 23 -lt 33 ] 17.2.9.2.2.2 小于等于 -le le-less equal] 17.2.9.2.2.3 等于 -eq eq-equal[ 34 -eq 34 ] 17.2.9.2.2.4 大于 -gt gt-great than 17.2.9.2.2.5 大于等于 -ge ge-great equal 17.2.9.2.2.1 不等于 -ne ne-not equal 17.2.9.2.3 文件权限判断 17.2.9.2.3.1 -r 有读的权限 17.2.9.2.3.2 -w 有写的权限 17.2.9.2.3.3 -x 有执行的权限 17.2.9.2.4 文件类型判断 17.2.9.2.4.1 -f 文件存在且是常规文件 if [ -f /root/test.txt ] 17.2.9.2.4.2 -e 文件存在 17.2.9.2.4.3 -d 文件存在且是目录 17.2.10 if语句 if [ 条件判断式 ] 或 if ((条件判断式)) then 代码 elif [ 条件判断式 ] then 代码 else 代码 fi 17.2.11 case语句 case $变量名 in 值1) 代码 ;; 值2) 代码 ;; *) 其他代码 ;; esac 17.2.12 for语句 17.2.12.1 语法1 for 变量 in 值1 值2 值3 ... do 代码 done 17.2.12.2 语法2 for((初始值;循环条件;变量变化)) 【空格不重要因为用了(())因此里面语法类似C语言】 do 代码 done 举例1加到100 SUM0 for((i1;i100;i)) do SUM$((SUMi)) # SUM$[$SUM$i] done echo 1加到100等于$SUM 17.2.13 while语句 while((条件)) do 代码 done 17.2.14 控制台输入 read 选项 变量 p-读取时的提示t-等待时间 举例 read -p 请输入年龄 AGE echo $AGE 17.2.15 函数 17.2.15.1 系统函数 17.2.15.1.1 basename [路径名] [后缀] 返回完整路径最后/部分常用于获取文件名。若带有后缀参数则返回不带后缀的文件名 如basename /root/test/aaa.txt aaa.txt 17.2.15.1.2 dirname [路径名] 返回完整路径最后/的前面部分常用于获取路径部分。 如dirname /root/test/aaa.txt /root/test 17.2.15.2 自定义函数 17.2.15.2.1 语法 # 函数定义时没有形参与实参的概念默认用 $* $ $1 $2 ...来得到参数 # 返回值取值范围0~255,0-成功。可以用个$?得到该值因此一般情况下都不需要有返回值。 # 可以用一个变量来接收想要返回的值在调用该函数后将其显示出来即可实现返回值的功能。 # 调用该函数时也没有括号有参数则用空格隔开 [function] 函数名[()] { 代码 [return 0] } 【注】[]内是可以省略不写的但不建议省略。 17.2.15.2.2 举例 # 函数定义 function getSum() { SUM$(($1$2)) } # 调用函数 read -p 请输入第一个数值 VAL1 read -p 请输入第二个数值 VAL2 getSum $VAL1 $VAL2 echo 相加结果等于%SUM
十八、日志管理 18.1日志文件位置/var/log/目录下 18.2重要的日志 18.2.1 boot.log 系统启动日志 18.2.3 cron: 定时任务日志 18.2.4 lastlog: 记录所有用户最后一次登录时间该文件内容为二进制得用命令lastlog查看内容 18.2.5 maillog: 邮件信息日志 18.2.6 message: 系统重要信息日志如果系统出现问题首先就要检查该日志。 18.2.7 secure: 验证与授权信息日志只要涉及到账号与密码都记录到此日志中。 18.3日志服务 18.3.1 服务名rsyslogd 18.3.2 服务配置文件/etc/rsyslog.conf 该文件配置了哪些动作记录到哪个日志文件中 18.3.2.1 配置文件格式 *.* 存放日志文件mail.* -/var/log/maillog 18.3.2.1.1 第一个*含义日志类型 18.3.2.1.1.1 auth pam产生的日志 18.3.2.1.1.2 authpriv ssh、ftp登录信息的验证信息产生的日志 18.3.2.1.1.3 cron 定时任务产生的日志 18.3.2.1.1.4 kern 内核产生的日志 18.3.2.1.1.5 lpr 打印产生的日志 18.3.2.1.1.6 mail 邮件产生的日志 18.3.2.1.1.7 user 用户程序产生的日志 18.3.2.1.1.8 local 1-7 自定义的日志设备 18.3.2.1.2 第二个*含义日志级别 18.3.2.1.2.1 debug 调试 18.3.2.1.2.2 info 信息 18.3.2.1.2.3 notice 最具有重要性的普通条件信息 18.3.2.1.2.4 warning 警告 18.3.2.1.2.5 err 错误 18.3.2.1.2.6 crit 严重 18.3.2.1.2.7 alert 需要立刻修改 18.3.2.1.2.8 emerg 内核崩溃 18.3.2.1.2.9 none 什么都不记录 18.3.3 日志文件格式 事件产生时间 产生事件服务器主机名 产生事件的服务名或程序名 事件具体信息 18.3.4 举例将ssh登录信息记录到日志/var/log/myssh.log中 18.3.4.1编辑/etc/rsyslog.conf增加一下内容 authpriv.* /var/log/myssh.log 18.3.4.2重启linux登录查看/var/log/myssh.log 18.4 日志轮替 18.4.1 日志轮替文件命名 18.4.1.1 日志轮替配置文件/etc/logrotate.conf中参数为dateext则以日期作为日志文件扩展名。 18.4.1.2 若无dateext参数则以xxx.nn0的方式来轮替日志。 18.4.2 日志轮替配置文件 18.4.2.1 配置文件内容/etc/logrotate.conf 18.4.2.1.1 daily 每天对日志进行一次轮替 18.4.2.1.2 weekly 每周对日志进行一次轮替 18.4.2.1.3 monthly 每月对日志进行一次轮替 18.4.2.1.4 rotate n 保存n份日志文件超过n时删除旧的 18.4.2.1.5 create 日志轮替后创建新的空日志文件 18.4.2.1.6 dateext 以日期作为日志轮替文件扩展名 18.4.2.1.7 size 4M 日志大于4M才轮替 18.4.2.1.8 compress 日志文件是否压缩 18.4.2.1.9 单独为某个日志配置 18.4.2.1.9.1 直接写入到配置文件/etc/logrotate.conf /var/log/myssh.log{ monthly minsize 10M rotat 2 } 18.4.2.1.9.2 将某个单独的日志配置文件放到/etc/logrotate.d目录中 18.5 日志轮替机制 在/etc/cron.daily/目录下有个logrotate的shellcron定时任务会每天都执行一次这个shell来完成日志轮替工作。 18.6 查看内存日志journalctl