linux基础

  • 文件目录

    • /根目录 /root管理员的家目录 /home普通用户的家目录 /boot引导文件启动的目录 /dev保存硬件配置的目录,如用户的账户和密码服务相关的配置文件等 /etc 配置文件 /bin、/sbin、/usr/bin、/usr/sbin用户所执行命令的存放目录,带s的只有管理员可以用 /media、/mnt挂载目录 /tmp临时目录 /var动态数据保存位置,主要保存日志文件等

  • dnf安装(redhat8)

    • vim rh8.repo [Base0s] name=Base0S baseurl=file:///media/cdrom/Base0S enabled=1 gpgcheck=0[AppStream] baseurl=file:///media/cdrom/AppStream enabled=1 gpgcheck=0

    • /etc/yum.repos.d

    • mkdir -p /media/cdrom mount /dev/cdrom /media/cdrom

    • vim /etc/fstab

    • dnf install ipconfig

  • cd 切换

    • cd..当前目录为pq

    • cd..当前目录为tmp

    • cd ./pq/qz返回了qz,此时指代当前目录tmp

  • 快捷

    • man 查看某个命令详细使用方法man ls和ls --help一样 --help 查看某个命令的使用 空格向下翻页page down page up 向上翻一页 home 回到页面最上端 end页面最后 n定位到下一个搜索 ?从下往上搜索 /从上往下搜索 N 定位到上一个搜索 q退出当前文档

      • man 文档结构 name 命令的名称SYNOPSIS 参数用法DESCRIPTION 描述介绍EXAMPLES举例说明DEFAULTS 默认的功能OPTIONS具体可用的选项FILES用到的文件SEE ALSO有关的资料

  • echo

    • 打印文本

      • echo "Hello, World!"

    • 打印变量的值

      • name="Alice" echo "Hello, $name"

    • 打印换行符

      • echo -e "Line 1\nLine 2"

    • 将输出重定向到文件

      • echo "Some text" > output.txt

    • 打印不换行

      • echo -n "This is a line without newline"

  • date用于显示或设置系统的日期和时间

    • 显示当前日期和时间: date

    • 显示特定格式的日期和时间: date "+%Y-%m-%d %H:%M:%S"

    • 显示当前日期: date "+%Y-%m-%d"

    • 显示当前时间: date "+%H:%M:%S"

    • 设置系统日期和时间: date -s "2022-01-01 12:00:00"

    • 显示当前时区: date "+%Z"

    • 显示当前星期的第几天: date "+%u"

  • timedatectl设置系统时间

    • timedatectl status 显示当前系统的时间、日期、时区以及NTP设置等信息

    • timedatectl set-time "YYYY-MM-DD HH:MM:SS" 设置系统时间和日期

      • timedatectl set-time 2022-03-21 timedatectl set-time 15:30

    • timedatectl set-timezone Asia/Shanghai设置时区

    • sudo timedatectl set-ntp [true/false] 启用或禁用NTP

    • timedatectl | grep "Time zone" 显示当前时区

  • poweroff关机 关闭系统

  • 创建目录 mkdir

    • 1)切换到指定目录 cd /tmp 创建mkdir pq ls /tmp pq

    • 2)直接创建,不论位置 mkdir/tmp/pq

    • 3)mkdir -p创建多级目录的时候 从2018到2023年每个月一个目录,(用逗号隔开) mkdir -p{2018,2019,2020,2021,2022,2023}/{1,2,3,4,5}

    • 4)创建隐藏目录 mkdir .目录名

    • 5)mkdir 目录1,目录2..连续创建多个目录

    • 6)mkdir 目录名{10..20}连续创建指定范围的目录

    • 7)mkdir -p /cctv/myweb/{baidu,souhu}连续创建同路径的目录

    • 相对路径和绝对路径 相对路径:从当前位置出发 绝对路径:从根/出发 相对路径 . 当前目录 ..上一级目录 例如:mkdir/tmp/pq/qz

    • 递归式创建 mkdir -p/tmp/pq/qz

  • ls查看当前文件或文件夹

    • 第一段的第一个字符表示文件类型,- 普通文件,d目录,l连接文件(快捷方式),b块设备文件(存储设备),c字符设备文件(输入输出设备)

    • 第一段的第2个到10个字符表示权限 r读w写执行

    • 第二段的数字表示访问连接数

    • 第三段和第四段表示文件所属用户和组

    • 第五段文件大小

    • 第六段到第九段文件最后一次修改时间

    • 最后一段是文件名

  • alias设置别名

    • alias 别名=’命令’ alias ck=’ls -alh’,使用ck的时候效果等同于ls -lah

    • alias后面什么都不加,查看所有别名

    • unalias取消别名 unalias 别名

  • 文件管理

    • 创建文件touch

      • 一般用于服务测试

      • 相对路径touch ck 当前目录下

      • 绝对路径touch /tmp/pq/1 指定目录创建

      • touch -d "2022-04-09 15:00" abc.txt

    • rm删除

      • rm 参数1 [参数2...参数n]

      • rm-f 删除不提醒

      • rm -i删除时提醒

      • rm -r递归删除目录树,删除目录时必用

      • rm -rf递归删除不提醒,慎用

      • rm= rm -i 别名

      • 删除/tmp下所有内容两种方法 1.rm -rf /tmp/* 2. cd /tmp rm -rf *

    • cp复制

      • cp 源文件 1,源文件2 .. 目标位置 把前面所有参数复制到最后一个参数位置 复制多个文件的时候,最后一 个参数必须是目录

        • cp /tmp/a/pq tmp/b

      • -f同名文件不提醒,强制覆盖

      • -i同名文件提醒是否覆盖 -r复制目录的时候必须用

      • -p保留源文件的所有属性

    • file

      • 一个用来确定文件类型的命令

      • file filename: 显示单个文件的类型。 file *: 显示当前目录下所有文件的类型。 file /bin/* | grep text: 显示 /bin 目录下所有类型为文本的文件。 file -i filename: 显示文件的 MIME 类型,这在网络环境中特别有用。

        • 例如,如果你有一个名为 script.sh 的文件,你可以使用 file 命令来确定它是否是一个shell脚本: file script.sh 输出可能会是: script.sh: Bourne-Again shell script, ASCII text executable 这意味着 script.sh 是一个可执行的 Bourne-Again shell(Bash)脚本。

    • mv移动 重命名

      • mv /tmp/a.txt /tmp/b.txt 重命名

    • tar归档,打包

      • 将不同路径的文件进行归档,打包为一个文件,在过程中可以选择压缩,释放时,根据文件的原有路径进行释放。

      • tar 选项 目标归档文件名(成品名字) 源文件

        • 选项: -c创建归档文件 -x释放归档文件 -z使用gzip压缩 -j使用bzip2压缩 -f 指定归档文件名(打包之后的名字) -v 显示过程 -p归档后保留文件权限 -C释放归档文件时,指定其他路径

        • 归档打包: tar -zcvf /tmp/etc.tar.gz /etc/* tar -zcvf /tmp/etc1.tar.gz /etc/* /bin/* /var/*

        • 释放归档文件:(解压) tar -zxvf /tmp/etc.tar.gz #没有指定目标路径,会在当前目录中释放。 tar -zxvf /tmp/etc1.tar.gz -C /cctv/data #将归档文件释放到指定目录中

      • 压缩命令

        • gzip

          • gzip -9文件名 #数值1到9表示压缩比例,9压缩比例最高,速度最慢。gzip -9 service

          • gzip -d 压缩文件名 #解压后,压缩文件消失 gzip -d service.gz 压缩后保留压缩文件: gzip -d -c services.gz >services #-c选项,压缩文件后显示内容信息

        • bzip2 压缩命令,用法同gzip

          • bzip的压缩比例高,gzip的压缩速度快

        • gunzip和bunzip2解压缩,作用与gzip -d和bzip2 -d相同。

  • find 查找文件或目录

    • find[查找位置][查找条件]

    • 查找条件 -name根据名字查,可以使用通配符?* -size根据大小查,可以使用+(相当于大于)-(相当于小于) -user根据用户查 -perm匹配权限 -type根据类型查,d:目录;f:文件;b:块文件;c:字符文件 group匹配所有组 -mtime匹配文件修改内容时间 -atime匹配访问文件的时间 -nouser匹配无所有者的文件 -nogroup匹配五所有组的文件-nogroup -prune忽略某个目录 查找位置为空,在命令提示符当前位置查 -0 或者 -a并且

      • 查找/tmp/abc下的所有文件 find/tmp/abc -type f

      • 查找/tmp/abc下小于10k的 find/tmp/abc -size “-10k”

      • 查找/tmp/abc下的所有.txt文件 find/tmp/abc -name”*.txt”

      • 查找/tmp/abc下属主是root的 find/tmp/abc -user “root”

      • 查找/tmp/abc下大于10k的 find/tmp/abc -size “+10k”

      • 查找/tmp/abc下的所有目录 find/tmp/abc -type d

      • 查找/tmp/abc下大于10k的文件 find/tmp/abc -size “+10k” -a -type f

      • 查找/tmp/abc下在10k-100k之间的文件 find/tmp/abc -size “+10k” -a --size “-100k” -a -type f

      • 查找/tmp/abc下在10k-100k之间 find/tmp/abc -size “+10k” -a --size “-100k”

      • 查找/var小于1k的日志文件 find /var -size “1k” -a -name”*.log” -a -type f

      • 查找/tmp/abc下的所有非目录 find/tmp/abc ! -type d

      • 查找777权限的文件 find -perm 777

      • 查找属于特定组的所有文件: find /path/to/search -group groupname

      • 查找在过去24小时内内容被修改过的文件: find /path/to/search -mtime 0

      • 查找在过去24小时内被访问过的文件: find /path/to/search -atime 0

      • 查找没有有效所有者的文件: find /path/to/search -nouser

      • 查找没有有效所属组的文件: find /path/to/search -nogroup

      • 在搜索时忽略特定目录(例如忽略名为 ignore_dir 的目录): find /path/to/search -path /path/to/search/ignore_dir -prune -o -print

  • 通配符

    • 在命令体系中,可以使用特定的符号代替一个或者多个字符,实现快速查找和操作

    • ?:可以代替任意一个字符,0-9或a-z的字符 *:可以代替一组字符,最少0个,最大127个 ls -l/bin/p*

  • du空间大小

    • 统计指定的目录或文件,占用的空间大小

    • -a显示指定目录中,每个文件或子目录的空间大小

    • -s只显示指定目录的总空间大小

    • -h显示存储单位

  • 重定向

    • >重定向符:将命令执行成功后显示的信息导出到指定的文件或位置,覆盖,一换一

      • man ls> abc.txt

    • >>多重重定向:以追加的方式将信息导出到文件

      • man ls> abc.txt cat abc.txt ls cat 2.txt cat >2.txt cat >>2.txt

  • cat查看文件内容

    • -n显示行号

  • vim编辑

    • 插入命令

      • a在光标所在字符后面插入 A在光标所在行尾插入 i在光标所在字符前插入 I(大i)在光标所在行首插入 o在光标下插入新行 O在光标上插入新行

    • 定位命令

      • : set nu设置行号 : set nonu取消行号 gg到第一行 G到最后一行 nG到第n行 :n到第n行 $移至行尾 0移至行首

    • 删除命令

      • nx删除光标所在处字符删除光标所在处后n个字符 x删除光标处所在字符 dd删除光标所在行,ndd删除n行 dG删除光标所在行到文件末尾内容 D删除光标所在处到行尾内容 :nl,n2d删除指定范围的行

    • 复制和剪切命令

      • yy复制当前行 nyy复制当前行以下n行 dd剪切当前行 ndd剪切当前行以下n行 p、P粘贴在当前光标所在行下或行上

    • 取消和替换命令

      • r取代光标所在处字符 R从光标所在处开始替换字符,按Esc结束 u取消上一步操作

    • 搜索和搜索替换命令

      • /string搜索指定字符串搜索时忽略大小写 :set ic n搜索指定字符串的下一个出现位置 %s/old/new/g全文替换指定字符串 :n1,n2s/old/new/g在一定范围内替换指定字符串

    • 保存和退出

      • :w 保存修改 :w new filename另存为指定文件 :wq保存修改并退出 :q!不保存退出 :wq!保存修改并退出(文件所有者及root可使用)

  • ln创建链接文件

    • 链接文件俗称快捷方式,在创建链接文件时,一定要使用绝对路径。

    • 软连接:对指定的文件进行了快捷引用,当实体文件被改名或者删除后,软连接将失效。

      • ln -s /文件路径/文件名 目标文件名(软连接快捷方式) #创建软连接

      • ln -s /abc.txt adc.txt

    • 硬链接:对指定文件建立了第二个文件名,两个文件名管理的是同一个文件,当实体文件名被修改或者删除时,不影响硬链接文件名的使用,因为实体文件没有被删除。

      • ln /文件路径/文件名 目标文件名 #创建硬连接

  • grep显示文本中,符合指定字符串的行

    • I 忽略大小写 -v反向选择

    • grep “http” /etc/services

    • grep -v “^$” /etc/services ”^”表示指定字符开头,”字符$”表示指定字符结尾,”^$”表示空行。 grep "^1" /root/1.txt grep "2$" /root/1.txt

    • ls -l|grep “root”将之前的结果作为下次查询的条件

    • |grep 对于有输出内容的筛选

      • ll|grep

        • 子主题 1

      • cat 文件名| grep 筛选的文本

        • 子主题 1

      • tail -n 文件名 | grep 筛选的文本

        • 子主题 1

  • |管道符

    • 将前一个命令生成的结果交给后一条命令进行调用

    • 在shell脚本的主要作用是获取信息

  • wc

    • 对文件内容进行统计,行数,单词数,字节数

    • -l统计行数 -w统计单词数 -c统计字节数

  • 常规操作

    • 修改ip地址

      • 修改网络配置文件 Vim/etc/sysconfig/network-scripts/ifcfg-ens33

        • 按i进入输入模式 BOOTPROTO=DHCP -->BOOTPROTO=static 将网卡获取方式自动获取改为手动配置 ONBOOT=no -->ONBOOT=yes 开机启动网卡 IPADDR=192.168.1.1(IP地址) NETMASK=255.255.255.0(子网掩码) GATEWAY=192.168.1.100(网关) 保存退出

      • 重启网络服务修改的ip生效 systemctl restart network /service network restart

      • 若想联网,设置dns等等配置 DNS=114.114.114.114 DNS=8.8.8.8

    • 暂时关闭防火墙

      • systemctl stop firewalld service iptables stop /setenforce 0 永久关闭防火墙 systemctl disable firewalld 查看防火墙状态service firewalld status

  • yum源配置

    • 1.名字 2.标注 3.路径(本地、网络) 本地:镜像iso file,ftp 网络 baseurl=http 4.检测 5.自启 Yum源是0,可能出现的问题 查挂载,设置已连接和镜像文件包,配置文件写错了

      • 1)清空原先yum配置 rm -rf /etc/yum.repos.d/* 2)重新设置本地yum源 vim /etc/yum.repos.d/yum.repo [yum] name=yum baseurl=file:///media 本地yum源位置挂载在目录media上 gpgcheck=0 关闭公钥检查 enabled=1启动yum源 保存退出 3.yum.repolist all查看yum是否搭载完成 4.清除原先yum源 yum clean all 5.建立源缓存yum makecache 6.yum install -y 软件名进行安装 7.yum -y remove 软件名进行删除

  • 挂载

    • mount 硬件(光盘、硬盘)本地目录 目的是通过目录调取硬件设备,把光盘挂载在本地目录下

    • 光盘sr0或者cdrom cdrom是sr0的软连接 mount /dev/sr0 /media

    • 切换进media软件库未安装的切换进去Packgae目录cd /media/Packgaes

  • rpm

    • 安装

      • rp m -ivh 包名 -i安装 -v显示过程 -h显示进度条

    • 卸载

      • rpm- e软件名 #卸载软件,不会卸载依赖环境,如果卸载的软件被其他程序所依赖,则无法卸载。 --force #强制执行 --nodeps #跳过依赖关系监测

    • 已安装

      • rpm -qa #查询所有已安装的软件包 rpm - qa |grep 软件名 #查询所有已安装的软件包,用来确认软件是否已安装 rpm -qi软件名 #查询已经安装的指定软件的详细信息 rpm-ql软件名 #查询已安装的软件路径

    • 未安装

      • rpm -qpi 软件包名 #查询软件包的详细信息 rpm -qpl 软件包名 #查询软件包的安装路径

  • 常见辅助命令

    • history查看历史命令 !+命令编号,重新执行命令 clear清屏 which查找外部命令文件位置 根据环境变量定义的位置查找

    • more分页显示/整页

      • more分页显示文件内容 more文件路径 回车一行一行往下翻 空格一页一页往下翻 q退出

    • less分页显示/一行

      • Less分页显示文件内容,可以上翻页 less abc.txt PageUp上翻页 PageDown下翻页 /***在文件中查找*** n查找结果往后翻 N查找结果往前翻 q退出

    • tail

      • tail -n 文件 查看文件的倒数几行 查看文件的11-20行(总共50行) 取前20行,倒数第10行 head -20 文件名 |tail -10 tail -40 文件名 |head-10 不加-n默认10行 tail -f 文件名 动态查看文件末尾内容(当文件末尾内容发生变化的时候自动更新)

      • tail查看文件后面几行【默认是后10行)

      • tail-n :_后面接数字,代表显示几行的意思

      • tail-f∶表示持续侦测后面所接的文件,要等到按下[ctrl]-c才会结束tail的侦测

  • 用户和组

    • 用户分类

      • 用户管理

        • 用户密码管理

          • 设置用户密码和修改密码 passwd命令:root能够修改任何用户的密码,并且不需要旧密码验证。 其他用户只能修改自己的密码,需要旧密码验证,普通用户需要授权之后才能修改密码。 Passwd用户名

        • 锁定用户

          • usermod -L 用户名:锁定用户的密码验证过程,防止用户登录。但是如果有切换用户并且不验证身份的操作,锁定用户不生效。 将用户的登录shell设置为nlogin,是直接设置拒绝用户登录,不管身份是否验证,都不允许登录。 passwd -l 用户

        • 解锁用户

          • Usermod -u 用户名 Passwd -u 用户名

        • 查看用户密码状态 passwd -S 用户名

      • 超级用户:root,拥有最大的权限,能够对系统内核进项编译修改。 普通用户:由管理员创建,正常用于登录和远程访问的用户。 服务用户:管理服务进程,访问服务进程的用户,此用户不能登录系统和远程访问。

    • 组分类

      • 基本组;用户默认所属组,或者主要的组。 附加组:属于用户的扩展组,会继承该组所设置的权限。 在Linux中,所有的组都只有访问权限(对文件或目录),没有定义对系统的管理权限。

    • id

      • 打印当前用户或指定用户的用户ID(UID)、组ID(GID)以及所属的任何附加组的信息

      • 显示当前用户的UID、GID和所属组: id 这会产生如下类似的输出: uid=1000(用户名) gid=1000(用户组名) groups=1000(用户组名),27(sudo),999(docker)

    • 用户文件管理

      • /etc/passwd

        • 文件中记录着用户的相关信息,用户可以通过管理用户的命令进行修改,也可以使用vim命令进项修改 Tom:x:1000:1000:tom:/home/tom:/bin/bash:

        • 第一段:用户名 第二段:密码或者密码占位符,x表示投影密码(由shadow文件管理密码),!!空密码(不需要密码验证,如服务用户),空白(没有设置密码,但用户需要密码验证),*任意密码验证(服务用户需要身份验证,但是支持匿名访问) 第三段:uid,用户id号,在服务器中每个用户的id号是唯一的,最大值65535,1到1000之间的被常用服务占用,可以手动修改。 第四段:gid,用户所属基本组的id号。 第五段:备注说明 第六段;用户家目录所在位置,宿主目录。 第七段:用户登录时,所执行的shell(运行环境或者运行状态),bash(设置登录环境,建立对话界面),nologin(禁止登录)

      • /etc/shadow

        • 投影密码文件,用户独立管理用户密码和相关信息。 Tom:x:18620:0:999:7:::

        • 第一段:用户名 第二段:密码字符串(加密后) 第三段:最后一次修改密码的时间,从1970年1月1日开始计算 第四段:密码最短使用时间,0表示可以随时修改密码 第五段:密码最大使用时间,99999表示不限期 第六段:密码到期后提醒时间 第七段:密码到期后禁用用户时间 第八段:账户失效时间。密码有效使用时间,到期后修改密码也无法使用,一般使用是在收费项目中。 第九段;保留

    • 用户相关命令

      • 创建用户

        • useradd 选项 参数 用户名 useradd zhang3

        • 选项: -u:指定给用户id号 useradd -u 2000 zhang3 -g:指定基本组id号或者基本组名 useradd -g root zhang3 -G指定附加组 Usermod -G tech zhang3 useradd -M l4,z3,w5 tech(组) 同时添加所有用户到附加组 -d指定家目录位置 useradd -d /var/ftp/ zhang3 -s:指定用户的执行shell useradd -s /sbin/nologin zhangsan3 注:#符号表示当前用户为超级用户,$表示普通用户 -e:指定用户账户失效时间 useradd -e 2023-2-15 zhang useradd -u 2000 -g 2002 -e 2023-2-15 zhang3 -N不创建与用户同名的组

      • 修改用户

        • 需要修改用户的信息时,可以使用usermod命令修改,或者直接修改配置文件。 usermod 选项 参数 用户名 选项与useradd的相同 -c用户添加备注 usermod -c hh ck -d -m 可重新指定用户的家目录并自动把老的数据迁移过去 -e账户的到期时间 -g变更用户组 G变更扩展组 -L锁定用户禁止用户登录系统 -U解锁用户 -S变更解释器 -u 修改用户的UID usermod -d /var/ftp zhang1

        • vim /etc/passwd 修改用户相关信息

      • 删除用户

        • userdel 用户名 #只删除用户,保留用户家目录 -r #删除用户时,同时删除家目录

    • 组相关命令

      • 组配置文件

        • /etc/group 第一段:组名 第二段:密码占用符 第三段:组ID号 第四段;附加用户名

      • 创建组

        • groupadd 选项名 组名 -g指定组ID号,GID 500-65535 groupadd jishu

      • 修改组

        • groupmod -g GID号 组名 #修改组的ID

      • 删除组

        • groupdel 组名 #如果一个组为某一个用户的基本组,在用户没有被删除之前,该组无法删除。

    • 文件权限

      • 权限说明

        • 在使用ls -l命令查看文件或者目录时,显示的信息中,第一段包含了文件的权限,共10个字符,第一个字符文件的类型, -表示普通文件, -d表示目录, -b表示块设备(存储文件), -c字符设备, -l软连接。 第二个到第十个字符表示权限,每三个字符为一组,分别表示所属用户 ,所属组,其他用户的权限; -rwxrwxrwx ;r代表读取,w代表写,x代表可执行权限,-代表没有对应的权限。

          • rw- r-- r-- 用户用户组 其它用户 文件 目录 r cat ls w vim touch/mkdir x ./文件名 cd

      • chmod 表达式 文件名 修改用户对文件的操作权限

        • 特殊权位

          • SUID、SGUID、SBIT所有者特殊权位和组权位、粘滞位,使普通用户在执行应用程序或者通过程序调用文件时,临时具备文件所有者的权限。 特殊权位会在x的位置添加s标记,如果小写s表示该文件原有可执行x的权限,如果是大写S表示源文件没有可执行权限。

          • SUID SGID SBIT粘滞位 4 2 1 777 rwxrwxrwX 1755 rwxr-xr-t t=r-x +SBIT 6764 rwsrwSr-- rwS=rw-+SGIDrws=rwx+SUID 5537 r-s-wxrwt r-s=r-X+SUIDrwt =rwx+SBIT

        • 可分配权限

          • r:读取 w:修改 x:可执行 s:特殊权限 t:粘滞位 当前目录只能属主和root操作,其他人不能操作

            • 表达式 分配的权限对象 u:所属用户 chmod u+rw uu g:所属组 chmod g=rwx uu o:其他用户 chmod o+w uu a:所有用户 all chmod a+wx uu

          • r :使用数字4表示 w:使用数字2表示 x:使用数字1表示 777数组中第一个数字表示所有者,第二个数字表示所属组,第三个数字表示其他用户。 修改一个文件的权限,所有者读写执行rwx,组读写rw,其他用户读执行rx chmod 765 文件名

        • 权限分配符,定义符

          • +:在现有的权限基础上添加权限 -:在现有的权限基础上取消权限 =:赋予权限,代替原有权限

            • 例如:给a文件设置所有者读写执行权限 chmod u+x a chmod o-w a chmod g=w a

      • chown修改文件属主

        • 每个文件和目录都有一个关联的"所有者"和"组"。所有者是一个用户,而组则可以包含多个用户。文件的组所有权决定了属于该组的所有用户对该文件的访问权限

        • chown 所属用户:所属组 文件名 -R使用递归方式,给指定的目录汇总所有文件进行权限或者属主修改 chown :xxxx uu chown ckck uu修改属主不需要冒号,如果加上冒号默认修改组为基本组id

        • 命令用来改变文件或目录的用户及/或组所有者

        • 如果你只想改变组所有权,可以省略用户名: chown :组名 文件名 这里是一些使用 chown 的例子: 改变文件的所有者: chown username filename 同时改变文件的所有者和组: chown username:groupname filename 改变目录及其内容的所有者(使用 -R 或 --recursive 选项来递归地操作): chown -R username directoryname 改变文件的组所有权,而不改变所有者: chown :groupname filename

      • umask 权限掩码

        • 设置用户创建目录和文件的默认权限,创建文件系统使用最大权限减去掩码的值,剩余的数值是当前权限。 目录的最大权限:777 文件的最大权限:666 权限掩码默认:022 默认创建目录时;777-022=755 修改掩码值:umask 022掩码值越大,得到的权限越小,创建文件时,权限掩码如果是奇数,再减1.

  • 磁盘命令

    • 磁盘管理

      • 磁盘分区

        • MBR分区

          • MBR:主引导记录,是兼容性非常高的分区模式。分区类型划分为:主分区,扩展分区,逻辑分区。每块硬盘最多创建4个主分区或3个主分区+1个扩展分区。

          • 主分区的作用:能够连接0磁道的引导扇区,读取系统启动信息,加载启动内核。过程称为激活,或者活动分区。

          • 扩展分区的作用:用于管理逻辑分区的结构,所有逻辑分区都必须在扩展分区上创建。扩展分区不能够直接格式化使用。通过扩展分区,可以增加分区的数量。

          • 逻辑分区的作用:用户创建的,用户存储不同数据的分区。

        • 分区管理

          • fdisk 分区管理命令 -l 查看分区信息 fdisk /dev/硬盘名称 进入指定硬盘的分区管理界面 3硬盘接口 SATA SCSI M.2 sd IDE hd

            • 命令字符说明: m :显示命令字符帮助 n :添加一个新的分区 d :删除分区 t :修改分区文件系统类型 p :查询分区信息 w :保持退出 q :不保存退出

          • 步骤

            • 1)给虚拟机添加硬盘 虚拟机 设置 硬盘 添加硬盘reboot 2)给/dev/sdb创建分区 fdisk /dev/sdb 3)输入n创建分区 p 创建主分区 3个或4个主分区 e 创建扩展分区 1个扩展分区 l 创建逻辑分区 逻辑分区 在扩展分区之上数量随意,从5开始,1-4分配给主分区和扩展分区

            • 创建主分区n,p

              • 子主题 1

            • 创建扩展分区n,e

              • 子主题 1

            • 创建逻辑分区n,l

              • 子主题 1

            • 删除分区d

              • 子主题 1

            • 修改分区文件系统类型:

              • 子主题 1

            • 查看分区p

              • 子主题 1

      • 格式化

        • 格式化分区

          • mkfs.文件系统 分区名

            • 把第二块SCSI磁盘的一个逻辑分区格式化为XFS mkfs.xfs /dev/sdb5

            • mkfs.ext4 /dev/sdb1 mkfs.ext4 #格式化分区为ext4类型 mkfs.vfat #格式化为fat类型,一般U盘使用此格式 mkfs.xfs #xfs类型,存储文件的效率比较高

          • mkfs -t 文件系统 分区名

            • 把第二块SCSI磁盘的一个主分区格式化为XFS mkfs -t xfs /dev/sdb1

        • 查看分区ID号和文件系统类型

          • blkid命令 lsbulk -f 查看挂载情况 df 查看内存free -m

      • 建立交换分区 交换分区又称为虚拟内存swap

        • 创建交换分区有两种方法:

          • 将整个分区格式化为swap。

            • mkswap /dev/sdb5 #建立交换分区

            • swapon 分区名 #启用交换分区 swapon /dev/sdb5

            • swapoff 分区名 #停用交换分区 swapoff /dev/sdb5 #关闭交换分区,不能将所有的交换分区都关闭。

            • mkfs -t vfat -F 32 分区名 把分区格式化FAT32 mkfs.vfat -F 32 分区名

          • 创建一个块设备文件,构建swap

            • dd if=/dev/zero of=/swap1 bs=1M count=2048 格式说明: dd 创建块设备(存储设备) if= 输入文件 of= 输出文件 bs= 基本存储块容量 count= 存储块的数量 mkswap /swap1 swapon /swap1

              • [root@server0 ~]# dd if=/dev/zero of=/swapfile bs=1024k count=512 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 4.96061 s, 108 MB/s 使用 mkswap 命令来格式化交换文件 [root@server0 ~]# mkswap /swapfile Setting up swapspace version 1, size = 524284 KiB no label, UUID=78b8c7bf-b898-450e-ab64-d4d78f256f1e 启用交换分区 [root@server0 ~]# swapon /swapfile swapon: /swapfile: insecure permissions 0644, 0600 suggested. 查看交换分区 [root@server0 ~]# swapon -s Filename Type Size Used Priority /swapfile file 524284 0 -1 #写入开机启动 [root@server0 ~]# cat /etc/fstab /swapfile swap swap defaults 0 0 创建大小为512M的交换文件: [root@server0 ~]# dd if=/dev/zero of=/swapfile bs=1024k count=512 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 4.96061 s, 108 MB/s 使用 mkswap 命令来格式化交换文件 [root@server0 ~]# mkswap /swapfile Setting up swapspace version 1, size = 524284 KiB no label, UUID=78b8c7bf-b898-450e-ab64-d4d78f256f1e 启用交换分区 [root@server0 ~]# swapon /swapfile swapon: /swapfile: insecure permissions 0644, 0600 suggested. 查看交换分区 [root@server0 ~]# swapon -s Filename Type Size Used Priority /swapfile file 524284 0 -1 #写入开机启动 [root@server0 ~]# cat /etc/fstab /swapfile swap swap defaults 0 0

      • 挂载和卸载

        • mount

          • 将设备文件挂载到一个目录上,使用目录的功能进行文件和子目录的管理。

          • mount 设备 挂载点 挂载分区到/data目录: mount /dev/sdb1 /data 一个设备可以在多个挂载点进行挂载使用。一个挂载点可以被多个设备挂载,但是只能访问最后一次挂载的设备文件。 df 查看挂载点信息 mount 不使用选项时,显示所有挂载信息。

        • 挂载iso镜像文件

          • dd if=/dev/sr0 of=/abc.iso #将光盘的内容制作为iso文件 mount -o loop 镜像文件 挂载点 mount -o loop /abc.iso /web

        • 卸载挂载点

          • 如果是更换光盘的操作,一定先卸载挂载点,在更换光盘,否则挂载点会出错。 umount 挂载点 先卸载挂载点,在卸载硬盘 umount 硬件文件 umount /data umount /dev/sdb1

        • 自动挂载

          • 将挂载设备添加到/etc/fstab文件中,系统启动时,会自动挂载设备。 永久挂载vim /etc/fstab 添加: ① ② ③ ④ ⑤ ⑥ /dev/sdb1 /cctv xfs defaults 0 0

            • 第1段:分区名(要挂载的硬件文件) 第2段:挂载点名称 第3段:文件系统类型 第4段:默认选项 第5段:分区备份标记,0表示不备份,1表示可以使用dump工具备份 第6段:分区检测标记,0表示不检测,1表示开机时自动检测。

          • mount -a #挂载所有配置文件(fstab)中的设备。 umount -a #卸载所有设备,根分区、临时分区、正在被使用的交换分区不能被卸载。 lost+found是一个本地设备挂载标记,没有实际作用

    • 查看磁盘和内存命令

      • df显示指定磁盘文件的可用空间 参数: -h:使用-h选项自动以KB、MB、GB的单位来显示,可读性高~~~(最常用)重点是看使用率,避免使用率超过80%类似我们windows的CDEF盘总览

        • tmp临时文件,主要看根目录

      • du,显示每个文件和目录的磁盘使用空间 参数: -h :以人们较易读的容量格式(G/M)显示 du -h以K(kb) M(兆)G为单位显示,提高可读性~~~(最常用的一个)

        • ./代表当前目录

        • du-sh目录的大小

        • du -sh ./*当前目录下的所有文件

      • free显示系统使用和空闲的内存情况 参数:-k :以KB为单位显示内存使用信况。(畎认单位) -m :以MB为单位显示内存使用情况。 -g:以GB为单位显示内存使用信况。 total:总计物理内存的大小 used:已使用多大 free:可用有多少 shared:多个进程共享的内存总额 buffers/cached:磁盘缓存的大小 available:可回收利用的大小swap,指的是一个交换分区或文件

        • 子主题 1

  • 系统管理命令

    • hostname

      • hostname显示主机名

        • 主机名

    • 系统状态

      • uname

        • 命令可以提供关于你的系统内核、硬件平台、处理器类型等的信息

        • -a:显示所有可用的系统信息(内核名称、节点名称、内核版本、内核发布日期、系统架构等)。 -s:显示内核名称(默认行为)。 -n:显示网络节点的主机名。 -r:显示内核版本。 -v:显示内核的版本和发布日期。 -m:显示机器硬件名称(例如x86_64,i686等)。 -p:显示处理器类型。 -i:显示硬件平台。 -o:显示操作系统

      • uptime

        • 它用于显示系统自上次启动以来已运行的时间。除了显示系统运行时间之外,uptime 还可以提供当前登录用户的数量以及系统负载平均值。负载值越低越好。

        • 14:17:01 up 5:39, 2 users, load average: 0.42, 0.70, 0.83 14:17:01:当前的系统时间。 up 5:39:系统已经运行了5小时39分钟。 2 users:当前有2个用户登录系统。 load average: 0.42, 0.70, 0.83:显示了过去1分钟、5

      • who

        • 显示当前登录到系统的用户信息

        • 用户名:显示登录用户的用户名。 终端名:显示用户登录的终端设备名称(如tty1, pts/0等)。 登录时间:显示用户登录系统的时间。 从哪里登录:对于远程登录,它还可能显示用户登录的主机名或IP地址。

        • -a:显示所有选项的信息。 -H:在输出的列上显示标题。 -q:显示登录用户的用户名和总数。 -r:显示当前运行级别。 -m:仅显示关于当前终端的信息。

        • 如果你只想知道当前有多少用户登录,可以组合使用 who 和 wc -l 命令来计数:who | wc -l

      • last

        • 通常是从 /var/log/wtmp 文件中读取的。此命令显示系统上所有用户的登录和注销记录,以及系统重启和关机事件

        • 用户名:登录的用户。 终端:用户登录的终端设备,如tty1、pts/0等。 登录IP:如果是远程登录,还会显示用户从哪个IP地址登录。 登录时间:用户登录的日期和时间。 注销时间:用户注销的日期和时间或当前会话的持续时间。 持续时间:会话持续的时间,如果会话仍然活跃,则显示为 still logged in。

        • 这个命令还有一些选项,可以用来过滤和显示特定的信息,例如: -f:指定另一个文件来代替 /var/log/wtmp。 -R:不显示主机名字段。 -x:显示系统关机条目和运行级别更改。 -n:显示最近的 n 行记录。 例如,如果你要查看最近10次的登录记录,可以使用以下命令: last -n 10

      • netstat

        • 可以帮助您监测和诊断网络连接问题,检查活动网络连接(包括 TCP 和 UDP 端口)以及查看路由表、接口统计

          • -a:显示所有活动的网络连接以及计算机监听的端口。 -n:以数字形式显示地址和端口号,不进行名称解析(例如,不将端口80显示为http)。 -t:显示TCP连接。 -u:显示UDP连接。 -l:仅显示正在监听的端口。 -r:显示路由表。 -s:按协议显示统计信息,如TCP、UDP、ICMP等。 -p:显示哪个进程正在使用特定的套接字或端口(在某些系统上需要管理员权限)。

        • netstat -i 命令用于显示本机接口的网络统计信息。当你在命令行中执行这个命令时,它将列出所有网络接口并显示关于每个接口的数据,例如已传输和接收的数据包数量,错误,丢弃的数据包数等。

          • Iface 列显示接口名称。 MTU 列显示最大传输单元(Maximum Transmission Unit)。 RX-OK, RX-ERR, RX-DRP, 和 RX-OVR 列分别展示了接收到的数据包数、接收错误、丢包数、和溢出错误。 TX-OK, TX-ERR, TX-DRP, 和 TX-OVR 列展示了传输数据包数、传输错误、丢包数、和溢出错误。 Flg 列显示了各个接口的标志,例如 BMRU 代表广播 (B), 多播 (M), 运行 (R), 和 更新 UKernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 1126523 0 0 0 987654 0 0 0 BMRU lo 65536 300 0 0 0 300 0 0 0 LRU

    • 统计和文件编辑

      • wc

        • 用于统计给定文件的换行符、单词和字节的数量。如果没有给定文件,或者文件名为-,它会读取标准输入。

          • -l 或 --lines:只统计行数。 -w 或 --words:只统计单词数。 -c 或 --bytes:只统计字节数。 -m 或 --chars:只统计字符数,这在多字节字符集中很有用。 -L 或 --max-line-length:打印最长行的长度。 如果不加任何选项,wc将输出所有三项统计(行数、单词数、字节数)

        • 统计文件example.txt的行数、单词数和字节数: wc example.txt 仅统计文件example.txt的行数: wc -l example.txt 统计多个文件file1.txt和file2.txt的行数、单词数和字节数,并显示总计: wc file1.txt file2.txt

      • cut

        • 它用于从文件中提取文本列

        • -b 或 --bytes=LIST:根据字节位置选择,LIST 是一个由逗号或连字符分隔的数字列表,用来指定提取哪些字节。 -c 或 --characters=LIST:根据字符位置选择,LIST 的指定方式与 -b 相同。 -f 或 --fields=LIST:根据字段选择,LIST 是字段的列表,通常与 -d 选项一起使用来指定字段的分隔符。 -d 或 --delimiter=DELIM:与 -f 一起使用,指定字段的分隔符,默认是制表符。 --complement:选取未被 LIST 指定的部分。 [FILE]... 是一个或多个文件名,如果没有指定文件或者文件名为 -,则 cut 会读取标准输入。

          • 从文件 file.txt 中提取第一个字段(假设字段由制表符分隔): cut -f1 file.txt 从文件 file.txt 中选择第 1 到第 5 字节: cut -b1-5 file.txt 使用逗号作为字段分隔符,提取文件 file.txt 中的第二字段: cut -d',' -f2 file.txt

      • diff

        • 用于比较两个文件的内容差异。它逐行比较文本文件,显示两个文件之间的差异。这个工具在编程、文档校对和管理配置文件等领域中非常有用。

        • -c 或 --context:显示差异的上下文,即除了差异行还显示一些没有变化的行。 -u 或 --unified:以统一格式显示差异,这是一种更紧凑的显示方式。 -i 或 --ignore-case:在比较时忽略大小写的差异。 -w 或 --ignore-all-space:忽略所有空白字符的差异。 -b 或 --ignore-space-change:只忽略空格数量的差异。 -B 或 --ignore-blank-lines:忽略空白行的差异。 -r 或 --recursive:递归地比较目录中的文件。

          • 比较两个文件 file1.txt 和 file2.txt: diff file1.txt file2.txt 以统一格式显示 file1.txt 和 file2.txt 的差异,并显示差异的上下文(例如,前后各3行): diff -u -C 3 file1.txt file2.txt 递归比较两个目录 dir1 和 dir2: diff -r dir1 dir2 忽略大小写,比较两个文件 file1.txt 和 file2.txt: diff -i file1.txt file2.txt 可以用来仅报告文件是否不同,而不显示具体的差异内容 diff --brief 文件1 文件2

      • uinq

        • -c 或 --count:在每行前加上该行出现的次数。 -d 或 --repeated:仅打印重复出现的行,每组重复的行打印一次。 -u 或 --unique:仅打印唯一的行。

          • 显示文件中的唯一行: uniq 文件.txt 这会输出所有行,并将连续的重复行合并为每行的单个实例。 计算文件中每行出现的次数: uniq -c 文件.txt 这会在每行前面加上该行在文件中出现的次数。 仅显示多次出现的行: uniq -d 文件.txt 这会列出输入中重复的行。 仅显示唯一的行: uniq -u 文件.txt 这会列出在输入中只出现一次的行。

        • 于报告或过滤出文件中的重复行。通常,uniq 用于排序后的输出,因为它只能检测到连续的重复行。这个命令在去除或计数重复条目时很有用。

      • sort

        • 用于对文本文件的行进行排序。默认情况下,sort 会按照升序(从小到大)对输入的文本文件中的行进行排序。

        • -n 或 --numeric-sort:根据字符串数值部分的数值大小进行排序。 -r 或 --reverse:逆序排序(从大到小)。 -k 或 --key=字段1,字段2:指定排序时使用的字段或列。 -u 或 --unique:与 uniq 类似,删除重复的行,仅保留唯一的行。 -o 或 --output=文件:将排序结果写入到指定的文件。

          • 基本排序,按字母顺序排序文件: sort 文件.txt 按数字进行排序: sort -n 文件.txt 按逆序进行排序: sort -r 文件.txt 按特定字段排序(例如,按第二列排序): sort -k2 文件.txt 排序并去除重复行: sort 文件.txt | uniq 或者使用 sort 的 -u 选项: sort -u 文件.txt 将排序结果输出到另一个文件: sort 文件.txt -o 排序后的文件.txt

      • stat

        • 用于显示文件或文件系统状态的工具。它提供了关于文件/文件夹的详细信息,包括文件大小、块大小、总块数、inode编号、权限(以八进制和符号格式)、所有者、组、最后访问时间、最后修改时间和创建时间(在支持该特性的文件系统上)。

        • 获取文件的状态信息: stat 文件名 这会显示指定文件的所有状态信息。 获取文件系统的状态信息: stat -f 文件系统名 这会显示指定文件系统的状态信息。

    • whereis

      • 用来定位可执行文件、源代码文件、帮助手册等与程序相关的文件的位置。它特别快速,因为它使用预先构建的数据库来查找文件,而不是在整个文件系统中实时搜索。

      • whereis ls

        • ls: /bin/ls /usr/share/man/man1/ls.1.gz

    • which

      • 专门用来查找将要执行的二进制文件,即它搜索用户的 PATH 环境变量中定义的目录。 它用于确定当您在shell中输入一个命令时,将会执行哪个程序的路径。 which 只返回第一个找到的可执行文件的路径,这通常是系统将实际执行的文件。 如果在 PATH 中没有找到命令,which 不会返回任何结果

      • which ls

        • /bin/ls

    • clear

      • clear清屏

    • top

      • Top动态显示当天耗费资源最多的进程 M按照内存从高到低 p按照cpu从高到低 q退出 以交互式的方式实时显示系统中运行的进程信息,包括CPU占用率、内存占用率、进程ID、进程名等。它会动态更新显示,可以方便地查看系统当前的运行情况,以及了解哪些进程占用了较多的资源htop需要安装,提供了一个彩色的、可视化的界面,用于监控系统的实时进程活动和资源使用情况

        • top实时查看进程 0zombie

        • 子主题 2

    • ping命令

      • 用于测试主机之间的网络连通性。它发送ICMP(Internet Control Message Protocol)回显请求消息给目标主机,并监听回显应答消息。通过 ping 命令,可以检测目标主机是否可达,以及来回的通信延迟(即往返时间,或 RTT)

      • -c [count]:发送指定数量的回显请求后停止,发起ping的次数。ping -c 3 192.168.3.1 -i [interval]:两次连续请求之间的间隔时间(秒)。ping -c 3 -i 2 192.168.3.1 -l 指定网卡名称 -t [TTL]:设置IP包的生存时间(Time To Live)。 -s [size]:发送的数据包大小(字节)。 -W [timeout]:等待回显应答消息的最长时间(秒)最长等待时间。

    • tracepath

      • 用于追踪数据包从本地主机到目标主机所经过的路径。tracepath 发送数据包并记录每一跳的IP地址,从而确定数据包的路径

      • tracepath [options] [destination] 其中 [destination] 是目标主机的IP地址或主机名 -n:不进行主机名解析,只显示IP地址。 -l [length]:设置每次发送数据包的长度。 -m [max_hops]:设置最大跳数,即最多经过多少个节点。

        • tracepath example.com在执行该命令时,你将看到类似于以下的输出,显示从你的计算机到 example.com 的每一跳路线上的节点: 1: local_host (192.168.1.1) 0.123ms pmtu 1500 2: isp_gateway (203.0.113.1) 0.256ms 3: isp_router (203.0.113.2) 0.462ms 4: ... 5: core_router (198.51.100.14) 20.461ms 6: example.com (93.184.216.34) 22.481ms reached Resume: pmtu 1500 hops 6 back 55

        • tracepath -n google.com 1: 192.168.1.1 0.123ms pmtu 1500 2: 203.0.113.1 0.256ms 3: 203.0.113.2 0.462ms 4: ... 5: 198.51.100.14 20.461ms 6: 172.217.14.238 22.481ms reached Resume: pmtu 1500 hops 6 back 55 第一列显示了跳数。 第二列显示了每跳的节点IP地址。 第三列显示了到该节点的往返时间。 最后一行“Resume:”给出了一些额外的信息,包括测量的PMTU和到达目标的跳数。

    • ps查看进程

      • ps用来显示当前进程的状态

      • "a"选项表示显示所有用户的进程,而不仅仅是当前用户的进程。这个命令将列出系统中所有正在运行的进程,以及它们的详细信息

      • "u"选项表示以用户为中心的格式显示进程的详细信息

      • "x"选项表示显示没有控制终端的进程,通常用于显示后台进程。

      • ps:-e︰显示系统中所有正在运行的进程,而不仅仅是当前用户的进程。这个命令将列出系统中所有进程的简要信息,包括它们的进程ID(PID)、终端、CPU占用 "ps -a"命令将显示与当前终端相关的所有进程,包括其他用户的进程。

      • ps-f:显示程序间的关系 ps-ef显示系统中所有进程的静态信息,包括每个进程的详细信息,如进程ID、父进程ID、CPU占用率、内存占用率、进程状态等。它会一次性显示所有进程的信息,不会像"top"命令那样动态更新。

      • ps -ef | grep python查找python进程UID:用户ID

      • PID:进程ID

      • PPID:父进程’

      • C :CPU占用率

      • STIME:系统启动时间

      • TTY:登入者的终端机位置

      • 'TIME :耗时

      • CMD:COMMAND命令,行为

      • 子主题 15

    • nice它用于启动一个进程并给予其一个特定的“nice值”,该值影响进程的优先级。

      • 默认情况下,当您启动一个进程时,它会继承父进程的nice值(通常是0)。使用nice命令,可以在启动进程时给其分配一个新的nice值,从而改变它在获取CPU时间时的优先级。

      • 在Linux中,进程的优先级决定了CPU时间分配的相对顺序,nice值的范围从-20(最高优先级)到19(最低优先级)。

      • nice -n 10 command nice -n 10 bash 其中command代表你想要执行的命令。-n选项后面跟着的数字是你希望分配给该进程的nice值。

      • 如果你想要改变一个已经在运行的进程的nice值,可以使用renice命令。例如,如果你想要将进程ID为1234的进程的nice值改为10 renice 10 -p 1234

      • 需要注意的是,只有root用户或者具有相应权限的用户才能将进程的nice值设置为低于0的值。普通用户通常只能增加自己进程的nice值(即降低优先级)。

    • pidof查找具有特定名称的进程的进程ID(PID)

      • pidof sshd

    • pstree用于显示系统中运行的进程的树状图

      • 仅打印 pstree: pstree打印包含进程PID的 pstree: pstree -p 打印特定用户的进程树: pstree username 打印树状图并高亮显示当前进程和其祖先: pstree -h 打印特定PID的进程树: pstree -p PID

    • 进程状态

      • 运行(Running):进程当前正在执行或者在等待CPU时间片。

      • 等待(Waiting):进程正在等待某个条件满足,比如等待I/O操作完成或者等待信号。

      • 停止(Stopped):进程已经停止执行,通常是收到了SIGSTOP信号。

      • 僵尸(Zombie):进程已经终止,但是其父进程还没有对其进行善后处理,这种状态的进程通常会被init进程收养并进行清理。

      • 僵尸(Defunct):类似于僵尸进程,表示进程已经终止,但是其父进程还没有对其进行善后处理。

    • kill

      • kill杀掉进程

      • kill 8963杀掉pid号为8963的进程

      • kill-9∶强制杀掉进程eg. kill -9 9332强制杀掉pid号为9332的进程

      • killall sshd 需要安装

    • shutdown关机

    • reboot重启

    • ping

      • ping确定网络和各外部主机的状态 -t连续性的

        • finalshell是否和远端服务器网络连通

    • date

      • date显示或设置系统当前时间(不加参数,默认显示系统当前的时间)

      • date-s ∶将系统时间设为所设定的时间

        • 修改日期: date -s 日期时间, eg. date -s 2019-9-19

        • 修改时间: date -s 时间, eg.date -s 15:30:113

        • 同时修改时间和日期: date -s“日期时间时间“,eg. date -s “2019-9-19 15:30:11”

  • firewall防火墙

    • 防火墙图形化界面

      • 运行时相当于临时,重启无效 永久:永久生效

    • 端口

      • 子主题 1

      • 端口转发

        • 子主题 1

    • 协议

      • 子主题 1

    • firewall命令

      • --list-all:显示当前区域所有网卡配置参数,资源,端口等信息 --add-service=服务名:设置默认区域允许该服务的流量 --remove-service=服务名:设置默认区域不允许该服务的流量 --add-port=端口号/协议:设置默认区域允许该端口的流量 --remove-port=端口号/协议:设置默认区域不允许该端口的流量 --reload:永久生效的配置立即生效 --permanent:配置永久生效 --query-service=服务名:查询该服务是否被允许 --firewall-cmd --state查看防火墙状态 --firewall-cmd --get-active-zones查看防火墙活动区域

        • firewall-cmd - add service=http firewall- cmd - permanent -- add- service=https firewall- cmd -- reload更新 1不允许https和http流量通过 2允许tcp协议8080端口流量通过,立即永久生效 注意:在端口号后面需要注意添加协议, 我们写配置永久生效后,需要我们输入--reload 让他生效

  • 常用服务搭建

    • Apache服务器搭建

      • firewall- cmd - permanent -- add- service=http yum install -y htttpd*

      • systemctl restart httpd重启Apache服务

      • 主目录:我们页面的内容/var/www/html 我们创建的文件后缀必须是index.html 在浏览器中输入IP地址就能访问到了

      • 提供HTTP服务的服务器软件。它是一种基于客户端-服务器模型的软件,可以接收来自客户端的HTTP请求,并返回相应的HTTP响应。

    • DNS服务器搭建

      • 解析IP地址 域名(网址)跟IPi地址进行相互解析 端口号53 Host文件,本地缓存文件

      • 127.0.0.1 本地回环地址 localhost 域名

      • Centos8 安装dns会失败,先删除再安装

      • 三大配置文件

        • 主配置文件:/etc/named.conf

          • 子主题 1

        • 区域配置文件:/etc/named.rfc1912.zones

        • 区域数据配置文件:/var/named/named.localhost

          • 复制一个,然后去修改这个复制的文件 cp-p named.localhost whoaliang.com.zone

        • named-checkconf可以检查配置文件

        • 配置文件写完后必须重启服务 systemctl stop firewalld.service关闭防火墙 systemctl restart named.sevice重启dns

        • 配置文件写错了就是下面这个

          • 报错,修改他的地址

          • 修改里面的地址为自己的IP地址

          • 出现问题

          • 修改第三个区域

        • 正确的

    • Samba服务器

      • linux和windows之间通讯软件 重要的两个服务,smb和nmb

      • linux配置

        • yum -y install samba 启动服务:systemctl restart smb(nmb) 防火墙:samba,samba-client

        • 配置文件:/etc/samba/smb.conf

          • 配置文件: Comment:描述 Path:共享路径 Browseable=yes/no:指定共享是否可以浏览 Writable=yes/no:指定该路径是否可写 Available=yse/no:执行该路径是否可用 Public=yes/no:指定guest是否可以共享

          • 记得重启和创建目录 systemctl restart smb

      • windows

        • 输入虚拟机ip地址

        • 当你访问后(权限问题)

          • 去linux赋予权限

    • dhcp服务器

      • 安装yum -y install dhcp

      • 动态主机配置协议,是一个局域网的网络协议,他是由服务器控制一段IP地址范围,客户机登陆服务器时就可以自动获取IP地址和掩码 好处: 1.减少管理员的工作量 2.避免IP冲突 3.当网络更改IP地址时,不需要重新配置每个用户的IP地址 4.提高IP地址利用率 5.方便客户端配置 (仅主机,昨天设置的DHCP自动获取要取消)

        • 分配方式 自定分配: 手动分配: 动态分配:

      • 配置文件:/etc/dhcp/dhcpd.conf 进程启动文件:/usr/sbin/dhcpd 安装dncp.x86-64 案例:/usr/share/doc/dhcp*/dhcpd.conf.example 配置文件注意事项: 1.#他是注释,不用管 2.除了)后面不加;,任何一句话后面都需要加;

        • 参数: default-lease-time:默认租期时间 max-lease-time:使用者自己设定租约时间,不能超过这个时间 option name:分配域名

        • 客户端用的内容 释放地址:dhclient -r 获取地址:dhclient 查看网关:route

      • 动态写法: Subnet 网络号 netmask 掩码{ range ip1 ip2 } 固定写法 host 自定义名字{ hardware ethernet fixed-address IP地址 } 他的说明书:/usr/share/doc/dhcp-4.2.5

        • 子主题 1

      • 写配置文件后,出现-xe,不用想别的问题,就是配置文件写错了 写的没问题,但是就是报错,最简单的方式是复制他的文本文件

        • 固定IP地址,你需要给第二台计算机一个固定的IP地址 在我们客户端地址没改变的时候, 从新获取IP地址:dhclient -r 在dhclient 如果都不行,客户端重启电脑

      • 安装dhcp出现的这种错误 yum 文件挂载的路径和挂载的路径不一致

        • 如果出现客户端ip不更新有线设置改为ens33 有线设置不连接,windows重启vm网卡

  • 调度任务

    • CronTab周期性任务

      • -cron是一个进程,让linux周期性执行某个命令 Crontab是一个命令,可以设置linux周期性执行某个命令,重复性任务 -u设置某个用户的周期工作(root用户) -e创建和编辑工作内容 -l查看当前计划任务 -r移除某条内容 -u编辑他人的计划任务 * * * * * * 1.分钟:可以从 0-59 之间任何数值 2.2.小时:可以从 0-23 之间任何数值 3.天日期:可以从 1-31之间任何数值 4.月份:可以从 1-12之间任何数值 5.星期几:可以从 0-7 之间任何数值(0和7都是星期日) 6.要执行的命令,执行自己写的脚本 特殊字符 *:任何时刻都可以 ,:代表分隔 -:代表范围 /n:(n代表数字)每隔n单位

      • 1,每小时的第 15 分 45 分执行一个命令 15,45 * * * * command 2.7 点到 10 点的第 10 分钟和 50 分钟都执行命令 10,50 7-10 * * * command 3.每隔一天的 7点到 11 点,第 20 分钟执行命令 20 7-11 */1(特别注意要带*) * * command 4.每周一的 8-11 点第 25 分钟执行命令 25 8-11 * * 1 command 5.每天 9 点-16 点之间,每隔 15 分钟执行命令 */15 9-16 * * * command 6.每周六,周日的 3 点 30 分执行命令 30 3 * * 6, 7 command 这个任务写到了/var/spool/cron

        • whereis tar 用于定位二进制程序、源代码文件和手册页的路径。要找到 tar 程序的位置 tar: /bin/tar /usr/share/man/man1/tar.1.gz

    • at一次性任务

      • 第一种交互式 systemctl start httpd systemctl stop firewalld at 11:00 systemctl stop httpd ctrl +d systemctl start atd systemctl status atd

      • 第二种 一行写法 echo echo "systemctl start httpd" at 11:20

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南棋网络安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值