📑打牌 : da pai ge的个人主页
🌤️个人专栏 : da pai ge的博客专栏
☁️宝剑锋从磨砺出,梅花香自苦寒来
☁️运维工程师的职责:监控,备份,应急故障处理
一、Linux文件处理命令: 1、命令名称:ls(显示目录文件) 命令的格式:命令 [-选项] [参数]-a 显示所有文件,包括隐藏文件-l 详细信息显示-d 查看目录属性-h 文件大小显示为常见单位-i 查询文件的inode号-R 递归显示目录及其子目录-n 显示文件的UID和GID 2、命令名称:touch(创建空文件/更新修改和访问时间) 命令格式:touch 文件名 Linux文件命名规则: (1)除了/之外,所有字符都合法。 (2)有些字符最好不用。 (3)避免使用.作为普通文件开头。 (4)Linux严格区分大小写。 (5)长度不能大于255字符。 3、命令名称:mkdir(创建新目录) 命令格式:命令:[-选项] [参数]-v 显示创建过程-p 递归创建 4、命令名称:cd(切换目录) 命令格式:命令 [-选项] [参数] 语法:cd 目录 cd ~ 进入当前用户的家目录 cd - 进入上次目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd . 进入当前目录 5、命令名称:pwd(显示当前所在目录) 6、命令名称:tree(显示目录树) 命令格式:tree 目录-d 只显示目录 (在centos7.x下需要安装后才可使用) 6.5、命令名称:pstree(查看进程树之间的关系) 格式:pstree [选项]-A:进程树之间的链接以ASCII码字符链接。-p:同时列出每个进程的PID。-u:同时列出每个进程的所属账号名称。 7、命令名称:cp(复制、复制并改名) 命令格式:cp 源文件或目录 目标目录-r 复制目录-p 保留文件属性-a 相当于-rp 8、命令名称:mv(剪切、改名) 9、命令名称:rm (删除)-r 删除目录-f 强制删除 10、命令名称:rmdir(删除空目录)-p 递归删除空目录-v 显示指令执行过程 11、命令名称:cat(显示文件内容) 命令格式:cat 文件名-n 列出行号 cat 显示多个文件内容 cat 将多个文件合并(按照文件先后顺序) (如文件超过一页内容后只能显示最后一页的内容) 12、命令名称:more(分页显示文件内容) b 向上翻页(打开文件时使用) 空格 向下翻页 Enter 换行 q或Q 退出 13、命令名称:less(分页显示文件内容) 命令格式:less 文件名 显示文件内容的时候支持关键词查找。 14、查看文件首部指定行:head-n 数字 #查看文件指定首部n行。 15、查看文件指定尾行:tail-n 数字 #查看文件尾行。-f #持续显示文件变化情况。 16、命令名称:ln(生成链接文件)-s 创建符号链接 文件系统: 1.block:文件系统中存储数据的最小单元,ext4、xfs等文件系统中,创建时默认4k,分为存储文 件数据的data block和存储目录数据的directory block。 2.inode:又称“索引节点”,每一个inode对应一个文件或目录,记录了文件的大小、所占用的 block以及目录的directory block信息。 3.Inode Bitmap:翻译成中文就是“inode位图”,用二进制的方式记录了inode的使用情况。 4.Block Bitmap:翻译成中文就是“块位图”,同Inode Bitmap,用二进制方式记录了块的使用情 况。 二、权限管理命令:-rw-r--r-- 1 root root 08-11 01:45 aa.txt 权限位是十位 第一位:代表文件类型- 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符设备文件 s 套接字 p 管道 其余九位为权限: r w x r w x r w x 读 写 执行 读 写 执行 读 写 执行 4 2 1 4 2 1 4 2 1 文件所有者(u) 文件所属组(g) 其他用户(o)other 1、命令名称:chmod(修改文件的权限) 命令格式: chmod u+x 文件 chmod g+w,o+w 文件 chmod u=rwx 文件 chmod 644 文件 2、命令名称:chown(修改文件或目录的所有者,所属组) 命令格式:chown user1 ss chown user1:user2 ss chown :user1 ss 3、命令名称:chgrp(改变文件或目录的所属组) 命令格式:chgrp 用户组 文件或目录 chgrp roushan ss 4、命令名称:umask(显示和设置掩码值) 对目录和文件生效,在默认掩码为0022下文件最大权限缺省为644,目录缺省最大权限为755. 777-022--------------- 755 三、查找命令: 1、命令名称:which(查看命令文件位置和命令可能出现的别名) 2、whereis(查找命令及帮助文档所在位置) 3、locate(按照文件名查找,按照数据库查找) updatedb 强制更新数据库 locate命令的使用实例: # locate /etc/sh 搜索etc目录下所有以sh开头的文件。 在使用locate命令时,要使用绝对路径查询。 4、命令名称:find(搜索系统中符合条件的文件)-name 根据文件名查找 通配符:* 任意多个字符 ? 任意一个字符 [] 指范围值,外侧加引号-size 根据大小查找 find ./ -size -10k 查找小于10k的文件或目录 find ./ -size -10M 查找小于10M的文件或目录 find ./ -size +10G 查找大于10G的文件或目录-user 根据所有者查找 find / -user root 查找根下所有root用户的文件-group 根据所属组查找 find / -group root 查找根下所有root组的文件-perm 根据文件权限查找 find /boot -perm 644-按时间查找 按天 ctime atime mtime 按分钟 cmin amin mmin c change 表示属性被修改过:所有者、所属组、权限 a access 被访问过(被查看过) m modify 表示内容被修改过 find /etc -mmin -120 查找120分钟内内容被修改过的 find /etc -ctime +7 查找七天之前属性被修改过的-type 根据文件类型查找 例:-type f 二进制文件(普通文件)-type l 软连接文件-type d 目录-逻辑连接符-a (and 逻辑与)-o (or 逻辑或) 例:find /etc -size +1k -a -size -10k #在etc目录小查找大于1k并且小于10k的文件-命令执行连接符(对查找到的文件,进一步处理) find ... -exec 命令 {} \; {}表示find查询的结果集 \是转义符,不使用命令别名,直接执行命令。 ;分号是表示语句结束 转义符:在Linux中有个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令 别名)使用rm删除文件前会提示确认信息,就因为rm -i 这个参数。如果想使用命令原意,可以在加 \转义。如:\rm tese.txt 不会提示,直接删除。 -inum 根据文件i节点查询 find ./ inum 231906 -exec rm {} \; 有一些文件的硬链接数量有很多,有相同的i节点,查找其中的一个文件的i节点号,一次性删除。 xargs命令:把前一个命令输出的结果当成多个参数。 例: find / -name "aaa*" | xargs rm -rf 5.grep “字符串” 文件名(在文件内查找符合条件的字符串行) 命令所在路径:/bin/grep-v 反向选择-i 忽略大小写 6.管道符 命令1 | 命令2 将命令1 的标准输出作为命令2的标准输入 四.帮助命令: 1.man 命令 命令名称:man man -f 命令 查看命令的帮助 #查看命令有哪些级别的帮助,在使用命令前要执行mandb生成man缓存信息,否则命令执行不成功。 图形界面因为安装原因所以比字符界面man级别更多。 查看指定级别: man 级别 命令 man的级别: 1:查看命令的帮助 2:查看可被内核调用的函数的帮助 3:查看函数和函数库的帮助 4:查看特殊文件的帮助(主要是/dev目录下的文件) 5:查看配置文件的帮助 6:查看游戏的帮助 7:查看其他杂项的帮助 8:查看系统管理员可用命令的帮助 9:查看和内核相关文件的帮助 2.help 内部命令 查看内部的帮助信息 type 命令 的方式查看命令是否为内部命令。 内部命令如cd、pwd、echo等。 外部命令如:ls、vi等命令。 3.type查看命令类型(内建命令/外部命令) [root@localhost ~]# type cd cd is a shell builtin [root@localhost ~]# type ls ls is aliased to `ls --color=auto' 4.命令 --help 查看命令的常见选项 5.info 命令 #比man更详细的帮助命令。 回车:进入子帮助页面(带有*号标记) u:进入上层页面 n:进入下一个帮助小节 p:进入上一个帮助小节 q:退出 五.网络命令 1.ping 测试网络连通性-c 指定ping次数 2.ifconfig 查询本机网络信息 ifconfig命令使用方法 注意:下面操作使用root用户(动态修改) 命令:ifconfig 作用:用来配置网络或显示当前网络接口的状态 [root@localhost ~]# ifconfig ens33: flags=4163 mtu 1500 inet 192.168.12.18 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::c09d:975d:89cd:fd3f prefixlen 64 scopeid 0x20 ether 00:0c:29:02:83:db txqueuelen 1000 (Ethernet) RX packets 3255 bytes 4458479 (4.2 MiB) RX errors 0 dropped 26 overruns 0 frame 0 TX packets 1130 bytes 81645 (79.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 上图信息大概说明: 第一行: UP-->网卡开启状态 BROADCAST-->广播 RUNNING-->网线处理连接状态 MULTICAST-->支持组播 mtu 1500-->(Maximum Transmission Unit)最大传输单元大小为1500字节 第二行:该网卡的IP地址,子网掩码,广播地址 第三行:IPV6的配置信息 第四行:网卡的MAC地址 ether表示连接类型为以太网 txqueuelen 1000 --》传输队列的长度 第五六行:网卡接收数据包的统计信息和接收错误的统计信息 第七八行:网卡发送数据包的统计信息和发送错误的统计信息 临时修改IP地址 例1:临时修改网卡IP地址 ifconfig 网卡名称 IP地址 ---直接修改网卡的IP地址,重启失效 [root@localhost Desktop]# ifconfig ens33 ens33: flags=4163 mtu 1500 inet 192.168.12.18 netmask 255.255.255.0 broadcast 192.168.1.255 [root@localhost Desktop]# ifconfig ens33 192.168.12.110 netmask 255.255.255.0 说明:修改后当前终端会终断,需要重新使用新的IP地址进行连接 [root@localhost Desktop]# ifconfig ens33 ens33: flags=4163 mtu 1500 inet 192.168.12.110 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fee8:ac4 prefixlen 64 scopeid 0x20 ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethernet) RX packets 2028 bytes 198715 (194.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 385 bytes 51073 (49.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost Desktop]# systemctl restart network //CENTOS7的网卡重启方法 [root@localhost Desktop]# service network restart //CENTOS6的网卡重启方法 例2: 添加多个临时IP地址 ifconfig 网卡名称:0 第一个IP地址 (netmask 子网掩码) ---增加一个IP ifconfig 网卡名称:1 第二个IP地址 (netmask 子网掩码) ---增加一个IP [root@localhost ~]# ifconfig ens33:0 192.168.12.110 netmask 255.255.255.0 up [root@localhost ~]# ifconfig ens33: flags=4163 mtu 1500 inet 192.168.12.18 netmask 255.255.255.0 broadcast 192.168.1.255 ens33:0: flags=4163 mtu 1500 inet 192.168.12.110 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethernet) 删除临时IP [root@localhost ~]# ifconfig ens33:0 del 192.168.12.110 [root@localhost ~]# ifconfig ens33: flags=4163 mtu 1500 inet 192.168.12.110 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fee8:ac4 prefixlen 64 scopeid 0x20 ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethe rnet) RX packets 3056 bytes 311813 (304.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 961 bytes 145297 (141.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:1: flags=4163 mtu 1500 inet 192.168.1.111 netmask 255.255.255.0 broadcast 192.168.1.255 ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethernet) 例3:添加真实网卡: nmcli connection add con-name 网卡名称 type 接口类型 ifname 网卡名称 nmcli connection add con-name ens37 type ethernet ifname ens37 例4:停止或启动某网卡 centos6: [root@localhost ~]# if down eth0 [root@localhost ~]# if up eth0 centos7: [root@localhost ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ens33 #重 载配置文件。 [root@localhost ~]# nmcli connection down ens33 #停止。 [root@localhost ~]# nmcli connection up ens33 #启动。 3.w 查询当前登陆服务器的用户 第一行:当前时间,持续运行时间,登陆用户数量,1分钟,5分钟,15分钟 前的平均负载 第二行:用户名 TTY:登陆终端 FROM:来源IP 登陆时间 IDLE:用户闲置时间 JCPU:所有进程占用CPU时间 PCPU:当前进程占用CPU时间 WHAT:用户正在进行的操作 4.who 查询登录用户 5.last 列出登陆系统的相关信息 第一列:用户名 第二列:终端位置 第三列:登录IP或内核版本 第四列:开始时间 第五列:结束时间 第六列:持续时间 6.lastlog 7.write 用户名 write root tty1 “发送内容” ctrl+d 保存,发送 显示所有账号最后一次的登陆时间 给在在线用户写信 8.wall 对所有在线用户广播 wall 字符串 或 wall enter(回车) 字符串 ctrl+d 9.mail 邮件命令 发信: mail 用户名 标题 内容 ctrl+d 结束 发送 收信: mail h 列出邮件列表 q 退出 10.netstat 常见端口: 查看网络连接状态 20 21 ftp服务 文件共享 22 ssh服务 安全的远程连接 23 telnet 25 smtp:简单邮件传输协议 发信 110 pop3:邮局协议 收信 80 http超文本传输协议 3306 mysql端口 3389 Windows终端端口 /etc/service 所有常见的端口 netstat -tlun 查看本机所有监听的端口-t tcp协议-u udp协议-l 监听-n 以IP和端口的形式显示信息-a 显示所有选项-p 显示建立相关连接程序名 例: 列出所有端口:netstat -a | more 列出所有tcp端口:netstat -at 列出所有udp端口:netstat -au 只显示监听端口:netstat -l 只列出所有监听tcp端口:netstat -lt 只列出所有监听udp端口:netstat -lu 六.关机和重启命令 1.关机 poweroff 掉电关机 init 0 以0级别运行 shutdown -h now now也可以替换为具体时间 shutdown +5 “system will shutdown after 5 minutes” #设定5分钟后关机,发给所有用户关机提示信息告知登录用户。 此命令执行五分钟后,登录的用户将退出登录,但系统并不会关闭。 需要自行shutdown -h now进行关机(C7此命令直接关闭系统)。 shutdown +2 -h "system will shutdown after 1 minutes" #如果想要关闭系统并提示用户即将关机信息那么要执行此命令 2.重启 shutdown -r now reboot init 6 3.数据同步 sync 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入 磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户 通常不需执行sync命令,系统会自动将缓冲区的数据写 入磁盘。只有用户需要非正常关机时,才需手 动执行sync命令。 七.挂载命令 Linux系统一切设备皆文件。比如第一张光盘,会被自动识别为/dev/sr0(设备文件的命名方式是 主设备号加次设备号。主设备号说明设备类型,次设备号说明是第几个设备),但并此时的光盘还不 能正常的读取。需要先进行挂载而后才能进行正常的读取。需要指定挂载点并执行挂载命令。(不同 的光盘之间需要重新挂载并指定挂载点才能正常使用) 1.mount 查询系统中已经挂载的设备 常见的存储设备: /dev/sda1 第一个scsi硬盘的第一个分区 /dev/cdrom 光盘 /dev/sr0 光盘 常用挂载点见目录 挂载格式: mount -t 文件系统类型 -o 特殊选项 设备文件名 挂载点-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统。-o 特殊选项:可以指定挂载的额外选项,比如读写权限,同步异步等,如果不指定则默认值 生效。 例1:mount 查看挂载信息 /dev/sda1 on /boot type ext4 (rw) 我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我 们重新挂载分区,并采用 noexec 权限禁止执行文件执行,看看会出现什么 情况(注意不要用/分区做试验,不然系统命令也不 能执行了) [root@localhost ~]# mount -o remount,noexec /boot [root@localhost ~]# cp /usr/bin/ls /boot [root@localhost ~]# /boot/ls-bash: /boot/ls: 权限不够 [root@localhost ~]# mount -o remount,exec /boot 例2:挂载硬盘分区,移动硬盘 [root@localhost ~]# mkdir /mnt/disk1 #创建挂载点 [root@localhost ~]# mount /dev/sdb1 /mnt/disk1 #挂载硬盘分区或者移动硬盘 例3:挂载光盘 [root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom 参数说明 atime/noatim e 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间, 默认为更新。 async/sync异步/同步,默认为异步。 auto/noauto自动/手动,mount -a 命令执行时, 是否会自动安装/etc/fstab文件内容挂载默认自动。 defaults定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项。 exec/noexec执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许。 remount重新挂载已经挂载的文件系统,一般用于指定修改特殊权限。 rw/ro读写/只读,文件系统挂载时,是否具有读写权限,默认是rw。 suid/nosuid具有/不具有SUID权限,设定文件系统是有具有SUID和SGID的权限,默认有。 user/nouser 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允 许, 只有root可以挂载分区。 usrquota写入代表文件系统支持用户磁盘配额,默认不支持。 grpquota写入代表文件系统支持组磁盘配额,默认不支持。 #/mnt/cdrom必须是已存在的目录 例4:挂载U盘 [root@localhost ~]# fdisk -l #查看当前系统下的存储设备,确认U盘的设备名称 [root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb #fat32格式的U盘挂载方式-t vfat fat32-t fat fat16 注:Linux默认情况不识别NTFS格式 例5:挂载.iso文件 mount -o loop /root/CentOS-7-x86_64-DVD-1810.iso /mnt/ 加入loop选项让文件以块设备的方式进行挂载。 例6:卸载 umount 设备名称或挂载点 #所有挂载的设备卸载方式都一样 例7:挂载NTFS格式 yum -y install epel-release yum -y install ntfs-3g mount -t ntfs-3g /dev/sdb1 /media/ ls /media 挂载注意事项: 同一个文件系统不应该重复挂载在不同的挂载点。 同一个目录不应该重复挂载多个文件系统。 作为挂载点,一定要是空白目录。 八.打包压缩 1.tar:文件的归档(打包)和压缩 归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率 用法:tar [选项] 压缩后生成文件 打包文件 参数:-c:创建文件-x:提取 解压还原文件-v:显示执行详细过程-f:指定备份文件 -t:列出压缩包中包括哪些文件,不解包,查看包中的内容-C:指定解压位置 例1:对/boot/grub 目录打包并解包。 [root@localhost ~]# tar -cvf ./grub.tar /boot/grub/ 或: [root@localhost ~]# tar cvf ./grub.tar /boot/grub/ tar: 从成员名中删除开头的“/” /boot/grub/ /boot/grub/splash.xpm.gz [root@localhost ~]# ls ./gurb.tar [root@localhost ~]# tar -xvf ./grub.tar #解压缩 boot/grub/ boot/grub/splash.xpm.gz [root@localhost ~]# ls ./boot #得到 boot 目录例 1:指定解压位置 -C [root@localhost ~]# tar xvf ./grub.tar.bz2 -C /opt/ tar: 从成员名中删除开头的“/” /boot/grub/ /boot/grub/splash.xpm.gz [root@localhost ~]# ls /opt/ boot 例 2:把两个目录或目录+文件打包成一个软件包: [root@localhost ~]# mkdir ./back [root@localhost ~]# cp /etc/passwd back/ [root@localhost ~]# tar -cvf back.tar /boot/grub back/ /etc/passwd tar: 从成员名中删除开头的“/” /boot/grub/ /boot/grub/splash.xpm.gz back/ back/passwd /etc/passwd 例3:在打包过程中跳过某个或多个文件。- -exclude:指定跳过的文件。 [root@localhost ~]# cp /etc/passwd ./back/ [root@localhost ~]# cp -a /etc/fstab ./back/ [root@localhost ~]# cp -a /etc/shadow ./back/ [root@localhost ~]# cp -a /etc/group ./back/ #创建目录和目录下文件。 [root@localhost ~]# tar - -exclude /root/back/group -cvf /root/back.tar /root/back/ #在打包过程中指定跳过group文件。 例 4:不解包,查看 tar 中的内容: [root@localhost ~]# tar -tvf ./grub.tar tar 归档+压缩: 常用参数:-z:以 gzip 方式压缩 扩展名: tar.gz-j:以 bz2 方式压缩的 扩展名:tar.bz2-J:以 xz 方式压缩 扩展名:tar.xz 例 1:创建.tar.gz 包 [root@localhost ~]# tar -cvf ./etc.tar /etc [root@localhost test]# tar -zcvf ./etc.tar.gz /etc [root@localhost test]# tar -zxvf ./etc.tar.gz 例 2:创建.tar.bz2 包 [root@localhost ~]# tar -jcvf ./etc.tar.bz2 /etc [root@localhost ~]# tar -jxvf ./etc.tar.bz2 #解压缩 [root@localhost ~]# tar jxvf ./etc.tar.bz2 -C /opt #解压到 opt 目录下 例 3:创建.tar.xz 包 [root@localhost ~]# tar -Jcvf ./etc.tar.xz /etc [root@localhost ~]# tar -xvf ./etc.tar.xz 对比三种压缩方式后压缩比例: [root@localhost ~]# ll -h ./etc.tar* 2.zip 管理压缩文件 zip 软件包解压缩命令: zip 是压缩程序,unzip 是解压程序。 例 1:压缩文件: 例 2:将所有.jpg 的文件压缩成一个 zip 包 [root@localhost ~]# zip ./all.zip *.jpg 例 3:压缩一个目录 [root@localhost ~]# zip -r ./grub.zip /boot/grub 解压缩:-d:指定解压目录。 [root@localhost ~]# unzip ./grub.zip [root@localhost ~]# unzip ./grub.zip -d /opt/ 3.file 命令 作用:确定文件类型 用法: file /etc/passwd 注:linux 系统不根据后缀名识别文件类型 用 file 命令查看文件的类型。 [root@localhost ~]# file /etc/passwd /etc/passwd: ASCII text