Linux随学随记

  • README
  • 系统目录结构
    • 前置
    • 目录作用
    • /mnt : Mount point for a temporarily mounted filesystem
      • Purpose
    • /media : Mount point for removeable media
      • Purpose
  • SSH链接
  • ~~网络基操~~
  • ~~更改GNU超时(-)~~
  • 更改运行级别
  • 基本操作&文件操作
    • `ln` 指令,概念大于操作
    • `which` 指令
    • `find`指令
      • `find`高级
    • `grep`指令
    • `netstat`指令
    • `systemctl`指令
    • 一点必要进阶
  • `tar`命令 - 压缩工具
    • 先记住两个常用的
    • ~~不详细的详解~~
  • 输出/输入重定向
    • 输出重定向
    • 输入重定向
  • 文件系统与磁盘基本知识
    • **文件系统**
    • **磁盘**
    • **分区**
  • `mount`命令与磁盘分区
    • `mount`命令
    • 磁盘分区与格式化
    • ~~磁盘命令~~
    • ~~`/etc/fstab`文件~~
  • 用户&进程&权限
    • `chmod`指令
    • 权限表示
    • 特殊权限
    • ~~进程进阶~~
  • `vim`编辑器
  • ~~`yum`与`rpm`指令~~
  • 系统救援
    • 重置root账户密码
  • 网络服务
    • ~~重温网络基操~~
    • `samba`服务
      • 配置文件
      • 小结
    • `ftp`服务
    • `apache`服务
    • `DHCP`服务
    • `NFS`服务

README

  • 划掉的意思就是:考试可能不考,但理解了可能更好

    • 更多时候是我不太准确的理解
  • 可能有错,欢迎指正
  • 能力有限,整理不全,不喜就喷,尽快改

系统目录结构

前置

  • Linux下,一切皆为文件
  • Linux中不以文件后缀名判断文件类型
  • 文件名前带点,一般为隐藏文件,例如/.autorelabel
    • 区分.//.
    • 每个文件夹自带两个特殊的隐藏文件夹
      • ./代表当前文件夹
      • ../代表上一文件夹父文件夹
  • 任意目录下cd ~来到当前用户的家目录
    • 登录用户urName,会来到/user/urName
    • 登录用户root,会来到/root
  • 任意目录下cd -,回到上一工作目录
    • 区别于cd ..

      • ..来到当前工作目录的父目录

目录作用

# tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── data
├── dev
├── DevKit
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
  • Linux下路径用正斜杠/分隔,例如/usr/lib

    • Windows反着来,用反斜杠\,例如C:\Windows\system32
    • 斜率为是正斜杠/,斜率为是反斜杠\
  • 目录也称为根目录,在目录结构的最顶端

    • 类似于C:\
  • /root — root的目录

    • 类似于Windows下的C:\Users\Administrator
    • root账户就是Windows下的Administrator账户(管理员账户,权限最高)
  • /home — 用以存放普通用户的目录

    • 在Linux中,每个用户都有一个自己的目录,一般以用户的账号命名

      • 例如/home/urName
    • 类似于Windows下的C:\Users

      • 例如C:\Users\urName
  • /boot — 启动Linux时使用的内核文件和引导程序文件,如vmlinuz

    • 开机的时候引导程序会读取该目录下的文件
  • /bin — bin是Binaries (二进制文件)的缩写,用来存放用户命令文件

    • 指向/usr/bin
  • /sbin — s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序

    • 指向/usr/sbin
  • /dev — dev,Device(设备)的缩写,设备目录,该目录下存放的是设备文件

    • 在Linux中访问外部设备的方式和访问文件的方式是相同的

      Linux下,一切皆为文件

    • 类似Windows中的设备管理器

  • /etc — 存放配置文件

    • 多数软件的.conf存放至此
  • /lib — 库文件目录

    • 指向/usr/lib/
  • /media — 系统设置的自动挂载点,例如CD、DVD、软盘、磁带的自动挂载点

    • 系统自动挂载
    • 不太准确地理解为Windows的文件资源管理器
  • /mnt — 暂时挂载使用

    • 手动挂载
    • 临时挂载点
  • /opt — 可选文件和程序的贮存目录

    • 第三方程序通常安装在这个目录
    • 类似C:\Program Files
  • /proc — 一个虚拟的文件系统(不是实际贮存在磁盘上的),存放硬件和进程运行的信息

  • /tmp — 用来存放一些临时文件的,定时删除

  • /var — 存放着在不断更新的东西

    • 习惯将那些经常被修改目录放在这个目录下
    • 各种缓冲区、日志文件
  • /run是一个临时文件系统

    • 自上一次系统启动以来,启动的进程运行时的数据,此目录中的内容在重启时重新创建
  • /usr — 包括与系统用户直接有关的文件和目录,我们要用到的很多应用程序和文件几乎都存放在usr目录下,例如应用程序及支持它们的库文件。(unix shared resources)

    • 理解为C:\Windows
    • /usr/bin存放着许多应用程序
    • /usr/sbin:存放root超级用户使用的管理程序
    • /usr/share:帮助说明文档所在的目录
    • /usr/lib:存放一些常用的动态链接共享库和静态档案库
    • /usr/src:系统级的源码目录
    • /usr/local 本地程序安装默认路径
    • /usr/local/src:用户级的源码目录

/mnt/media有什么不一样:前者通常为手动挂载点,后者是自动挂载点,简单来说就是规范问题

/mnt : Mount point for a temporarily mounted filesystem

Purpose

This directory is provided so that the system administrator may temporarily mount a filesystem as needed. The content of this directory is a local issue and should not affect the manner in which any program is run.
This directory must not be used by installation programs: a suitable temporary directory not in use by the system must be used instead

/media : Mount point for removeable media

Purpose

This directory contains subdirectories which are used as mount points for removeable media such as floppy disks, cdroms and zip disks.

SSH链接

  • 在Windows自带终端(Powershell、cmd)中敲ssh root@${ip}即链接到虚拟机(服务器)

    • 首次登录会验证公钥,敲yes即可
    • Windows 10 1809后默认打开openSSH服务,即不用设置即可使用ssh命令
    • 使用Windows 10 1809之前的系统,可以下载第三方ssh工具
  • 该窗口可以理解为shell

网络基操

  • systemctl stop firewalld,禁用防火墙,d means daemon,守护进程,类似Windows中的服务
  • setenforce 0,变更SELinux策略
    • getenforce获取当前策略

更改GNU超时(-)

  1. 进入/etc/default
  2. 找到grub,修改GRUB_TIMEOUT为期望值
    • 这里可以用vim也可以用gedit,前提是图形界面启动
  3. grub2-mkconfig –o /etc/grub2.cfg重新编译生成grub文件

更改运行级别

  1. systemctl get-default 查看默认运行级别

  2. systemctl set-default multi-user.target 更改运行级别为3,命令行

    systemctl set-default graphical.target 更改运行级别为5,图形

基本操作&文件操作

  • mv,move,移动文件,可用于重命名文件

    • mv /a.txt /b
      将根目录下的a.txt移动至/b
    • mv ./a.txt /b.txt
      当前目录下的a.txt重命名为b.txt
  • cp,copy,拷贝(复制)文件
    • cp /a.txt /b
      将根目录下的a.txt拷贝/b
  • Ctrl + C跳出当前进程
  • lsblk,listing block devices,列出块设备信息,并显示其间的依赖关系
  • man后跟某个命令,显示该命令怎么用
  • 命令后边的-Xx是选项,同一条命令配合不同的选项会有截然不同的效果
    • 一般来说,选项的顺序并不影响最终效果,比如ls -hlals -lah是一样的

      • 这里的不一般特指tar-f选项,这个选项后必须跟真实路径,一般放在最后
    • 请亲手体验rm -rf /rm -rfv /的区别
      • 还是不要体验吧
  • ls 会把文件类型以颜色的形式标识出来, dir 不会
    • 二者均为显示当前目录下的目录与文件,full form is list and directory
  • llls -l 的别名,二者等效,-l,long,长,长格式输出
  • pwd : print working direction,懂得都懂
  • mkdir -p ./dir/of/such/folder 递归创建目录 ,-p means parents
    • 目录就是文件夹,文件夹就是目录
    • no error if existing, make parent directories as needed
    • 人话就是,加上-p能一层层地创建本来不存在的文件夹,不加上就不能一层层创建
    • -p,parent,父母双亲,子母结构,创建子母文件夹
  • cat -n 参数可以显示行号,-n,number,数字
  • more 可以逐页显示,b 上一页, space 下一页
  • lessmore 类似,但可以随意浏览,拍 q 退出
  • head -n 5 /etc/passwd
    显示 /etc/passwd 5行的内容
  • tail -n 2 /etc/passwd
    显示 /etc/passwd 5行的内容
  • rm -rf dir
    强制删除目录dir-rf,recursion&force,递归&强制
  • ls -li
    using long listing format and print the index number of each file

    • same as ll -i-i,index,索引
  • |管道运输符,把前一段命令的输出作为后一段命令的输入
    • history|less
      history的执行结果传入less
  • touch aa
    新建一个名为aa的文件

ln 指令,概念大于操作

  • 软链接symbolic link ,象征性链接,实质是快捷方式,原文件删除会影响链接使用,软连接链接文件
  • 硬链接 hard link ,实质是文件,指向内存中的同一个文件,被链接文件删除不会影响硬链接使用,硬链接地址
# 创建硬连接
ln sourceFile linkFile
# 创建软连接,助记:-s soft,软,软连接
ln -s sourceFile linkFile

which 指令

  • which 能在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

    • 可以用于检查命令是否存在

find指令

  • 指定文件夹中查找文件

  • find / -name grub
    在根目录及其子目录下寻找名为grub的文件或者文件夹

  • find / -name '*grub*'
    在根目录及其子目录下寻找名含有grub的文件或者文件夹

  • find -name '*grub*'
    当前工作目录(pwd)下寻找名含有grub的文件或者文件夹

  • find / -name '*grub*' -type d
    在当前工作目录(pwd)下寻找名含有grub的文件夹

  • find -size +2M
    在当前工作目录下寻找大小大于2M的文件

  • find /etc -perm 755
    在/etc下寻找权限设置为755的文件或文件夹

    • -prem,permissions,许可(权限)
  • 使用-a链接两个不同的条件

  • -type后跟查找目标类型
    f ,file,文件;
    d,directory,目录,文件夹

find高级

  • -exec后面跟的是command命令,它的终止是以转义后的分号为结束符的(\;

    • {}表示前边find命令找到的文件名列表
    • find / -name '*grub*' -type f -exec ls -l {} \;在根目录及其子目录下寻找名含有grub的文件,并以长格式输出

grep指令

  • 过滤,print lines matching a pattern
  • grep 'root' /etc/passwd/etc/passwd文件中查找包含root的行
  • -v,invert,反转,反向过滤
    • grep ‘root' -v /etc/passwd/etc/passwd文件中查找不包含root的行

netstat指令

net status,网络状态管理器

  • -l,listening,监听,显示监控中的服务器的 Socket
  • -n,numeric,数值,直接使用 IP 地址,而不通过域名服务器
  • -t,tcp,显示 TCP 传输协议的连线状况
  • -p,programs,显示正在使用 Socket 的程序识别码和程序名称
  • 一般用netstat -lntp查看被占用端口

systemctl指令

系统服务管理器

  • systemctl status dhcpd查看dhcpd服务状态
  • systemctl start mysqld启动mysql服务
  • systemctl stop firewalld关闭firewall服务

一点必要进阶

  • Linux命令区分大小写
  • 随时利用 Tab 键补齐命令
  • uname显示系统信息,unix name之意,print system information
    • -r,kernel release,内核版本
    • -aall,显示所有信息
  • who显示当前登录的用户,who am i显示有效用户信息
  • echo东西有点多,但可以简单理解成输出(其实也不太可以)
    • echo "print" > a.txt会在当前目录下创建一个文件a.txt,内写着print
  • cat 简单理解成显示某个文件里的内容
  • history显示历史命令
  • clear清屏,等效于Ctrl + L
  • stat显示系统或文件详细状态信息

tar命令 - 压缩工具

先记住两个常用的

tar -xzvf beingExclude.tar.gz  # 解压
tar -czvf beingCompressed.tar.gz ./folderName # 压缩

够用了

不详细的详解

tar压缩工具

  • -c建立压缩档案,人话就是压缩
  • -x解压
  • -t查看内容
  • -r向压缩归档文件末尾追加文件
  • -u更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。

下面的参数是根据需要在压缩或解压档案时可选的。

  • -z有gzip属性的
  • -j有bz2属性的
  • -Z有compress属性的
  • -v显示所有过程
  • -O将文件解开到标准输出,人话就是解压到…(某个目录)

下面的参数-f是必须的

-f 使用档案(压缩包)名称,这个参数是最后一个参数,后面只能接压缩包名,记得

  • tar -xzvf beingExclude.tar.gz
    解压beingExclude.tar.gz

  • tar -xzvf beingExclude.tar.gz -O /folder/fd2
    解压beingExclude.tar.gz到文件夹/folder/fd2

  • tar -czvf beingCompressed.tar.gz *.sh
    将当前目录下的所有以.sh为后缀的文件压缩为beingCompressed.tar.gz

输出/输入重定向

输出重定向

  • >>>
    前者覆盖后者追加

  • 输出重定向就是把本来输出到屏幕上的内容重新输出到某个文件中

  • echo aaa > a.txt
    将输出的内容**aaa输出到当前工作目录下的a.txt**文件中,会覆盖原来的内容

  • cat b.txt > a.txt
    b.txt的内容追加写入a.txt

  • 2>
    对命令的错误信息进行重定向

    • 理解为对抛出错误的输出
  • &>>&
    命令结果和错误同时重定向

输入重定向

  • <
    将后面文件作为前面命令的输入

    • cat a.txtcat < a.txt效果相同
    • 类似管道符
  • <<
    带命令作用全文匹配某个字符串后结束
    人话就是输入某个字符串就结束,这个字符串(分界符)是自己设置的

    • cat << eol,会一直读取输入的字符串,直到输入eol时才终止输入,随后输出eol前输入的字符串

      [root@centos ~]# cat << eol
      > line1
      > line2
      > line3
      > eol
      # 输出如下
      line1
      line2
      line3
      

文件系统与磁盘基本知识

文件系统

  • Windows常用的文件系统有ntfsfat32
  • Linux 常用的文件系统有ext3ext4xfsNFSvfatswap

磁盘

  • 硬盘常见的接口有SATAIDESCSI

    • IDE - HD
    • SCSI - SD
  • Linux中的第一个IDE硬盘称为hda,第二个IDE硬盘称为hdb
  • Linux中的第一个SCSI硬盘称为sda,第二个SCSI硬盘称为sdb
    • 第一个分区为sdX1
    • 第三个分区为sdX3
    • 以此类推
  • Linux光盘的称为cdrom
  • U盘在Linux被看作是SCSI接口的硬盘

分区

  • 磁盘的分区分为主分区、扩展分区、逻辑分区扩展分区分区不能直接存放数据
  • 传统的磁盘最多4个主分区,1扩展分区,逻辑分区数量不受限制
    • 现有n个主分区,m个扩展分区,则n+m <= 4
  • Linux分区的编号1-4是留给分区和扩展分区的,而编号5及以后是给逻辑分区使用的
  • /dev/sda的第1个主分区称为sda1
  • /dev/sda的第1个逻辑分区称为sda5
  • 光盘的文件系统格式是iso

mount命令与磁盘分区

mount命令

  • 挂载点

    • 与Windows的C:\ D:\ E:\完全不一样

    • 某磁盘分区后,需要挂载到其他目录下,才能访问

      • # 将设备 sr0 挂载到 /sr0_mnt_point 上
        #(/sr0_mnt_point 应为真实存在的文件夹,不存在就 mkdir)
        # 此后,访问 /sr0_mnt_point 即可认为是在访问 sr0
        mount /dev/sr0 /sr0_mnt_point
        
      • # 卸载sr0
        umount /dev/sr0
        
  • VMware中挂载光盘*(略)

  • lsblk,listing block devices,列出块设备信息,并显示其间的依赖关系(基本)

    • (高级)在块设备信息中可以找到外设自动挂载
      挂载点一般以文件夹的形式存在,可以用来访问外设

磁盘分区与格式化

利用fdisk工具

  • fdisk /dev/sdb 对磁盘sdb进行分区操作

  • 按提示操作即可,全中文,不再赘述

  • m回车查看帮助

格式化可以理解为创建文件系统

  • mkfs.xfs /dev/sdb1,make file system XFS,创建文件系统
    sdb的第一个分区格式化为xfs分区
    重温一下

    • Linux中的第一个SCSI硬盘称为sda,第二个SCSI硬盘称为sdb,三sdc,四d,以此类推

      • sde的第一个分区为sde1
      • sdX的第三个分区为sdX3
      • 以此类推
  • 扩展分区无法格式化

  • 三者从属关系:{ 主分区 { 拓展分区 {逻辑分区} } }

磁盘命令

lsblkdf命令输出类似,但输出的是两个层面的信息

  • lsblk,listing block,面向硬件,管理逻辑设备(真实硬盘),简单理解成Windows中的磁盘管理器
  • df,disk filesystem,面向文件系统,也就是软件层面上的磁盘分区
  • fdisk -l,format disk tools --list,类似lsblk,能看见块设备信息

  • du,disk usage,查看磁盘使用情况

/etc/fstab文件

  • 系统启动时读取/etc/fstab,根据文件里面的配置挂载磁盘
  • 可以配置启动自动挂载点,编辑该文件加入相应的挂载项和挂载点即可

用户&进程&权限

  • top来动态显示进程,在top

    • 输入大写P,按CPU占用降序排序
    • 输入大写M,按内存占用降序排序
  • kill 114
    退出PID为114号的进程
  • Ctrl + Z暂停进程,将进程转为后台

  • useradd newuser
    添加一个新用户newuser

  • id userName
    查看用户userName的组id和用户id

  • passwd userName
    userName添加或更改密码

  • usermod userName,user mode,用户模式

    • -L,lock,锁定用户,锁定后该用户无法使用
    • -U,unlock,解锁用户
  • 删除用户userdel

  • useradd xxx添加用户时,Linux完成了哪几项和xxx用户有关的工作?

    • /home下添加了用户目录,在/etc/passwd/etc/shadow添加了用户相关的条目

  • ls -ld /abc,查看文件夹/abc的权限

    • -d,查看该文件的信息,而不是它的内容
    • stat /abc也能查看权限
  • chown you /abc,change owner,更改属主,
    更改文件夹/abc的属主为you

chmod指令

  • change mode,更改模式,用于更改权限
# 为filename、owner添加执行权限
chmod u+x filename# 为filename、owner添加执行、读取权限
chmod u+rx filename# 为filename、所有用户(a - all)添加执行权限
chmod a+x filename# owner读写,group、other无权限,空格表示无权限
chmod u=rw,go= filename# 将目前目录下的 所有文件与子目录 皆设为任何人可读取
# -R 代表递归添加
chmod -R a+r *# 删除所有用户的执行权限
chmod a-x filename# 更改/abc权限为777
chmod 777 filename

权限表示

# 权限表示 数字表示
rwxrwxrwx, 777
rwx---rwx, 707
rwxrwxr-x, 775
r-xrwxr-x, 575
r-xrw-r-x, 565

三组 rwx 分别代表:

  • owner(u - user)权限
  • group(g - group)权限
  • other-user(o - other)权限

r - read
w - write
x - execute

数字表示:二进制转八进制

rwx -> 111 -> 4+2+1 -> 7
r-x -> 101 -> 5
rw- -> 6

以此类推

特殊权限

  • 作用见P89

    2.suid/sgid程序
    UNIX实际上有两种类型的用户ID:realuserID是在登录过程中建立的用户ID;
    effectiveuser ID在录后的会话程中通UIDID位来修改用户ID。

    当一个用户运行一条命令时,进程继承了用户登录Shell的权限
    这时realuser IDeffective user ID是相同的。

    当SUID位被设置时,进程继承了命令拥有者的权限
    例如,普通用户运行passwd命令时,他能够修改/etc/passwd文件,尽管文件是属于root的。
    这是因为passwd命令以root的SUID 权限运行。

    要严格设置这种权限,避免破坏性,因为如果suid程序是/bin/bash的话,则会导致严重后果。在Red Hat Linux9及其之前的版本,一个普通用户若在某个短时间取得过root权限,他就能设置一个suid程序/bin/bash来取得根特权。

    简单来说就是为了安全性

  • rwsrwsrwt

    • 的s代表用户置位,八进制为4000,修改权限为u±s
    • 的s代表组置位,八进制为2000,修改权限为g±s
    • 其他用户的t代表粘着置位,八进制为1000,修改权限为o±t

进程进阶

  • 在命令最后加&cat &,可以将该命令转为后台运行

  • bg,background,后台
    将一个在后台暂停的命令,变成继续执行

  • fg,foreground,前台
    将后台中的命令调至前台继续运行

  • jobs,工作
    查看当前有多少在后台运行的命令,任务管理查看器

  • Ctrl + z

    暂停进程,将进程转为后台

vim编辑器

  • vim /abc.txt,编辑根目录下的abc.txt文件

    • 若该文件不存在,vim会创建该文件
  • vim +5 /abc.txt
    打开文件并定位到第五行

  • vim +5 /abc.txt
    打开文件并定位到最后一行

  • vim

    • i进入编辑模式

    • ESC进入命令模式

    • :进入末行模式

    • 命令模式下输:wq并回车,保存并退出

      • :q!,强制退出,不保存
      • :w!,强制保存, 忽略权限警告
    • 末行模式下输入set nu显示行号

    • 命令模式下输入o,另起一行

    • 输入G,快速跳到最后一行

    • 输入gg,快速跳到第一行

    • 输入$ 快速跳到本行的末端,^本行首端

    • 输入dd快速删除本行

      • 5dd删掉5行
    • 输入yy,yank,复制本行

      • 5dd复制5行
    • p,paste,黏贴

    • u,undo,撤销

      • Ctrl + R,redo,重做(撤销掉撤销,取消撤销)
    • 末行模式下输入/ababab,并回车,
      在文件中搜索 “ababab”

      • 按下n定位到下一个匹配结果
      • Shift + n定位到上一个匹配结果
    • :r!cal
      将命令cal的结果输出到缓冲区

yumrpm指令

  • yum理解为Linux的应用商店
  • rpm -qa | grep mysql,-query all,查询全部
    在全部已安装的包中查询mysql
  • 通常情况下,使用yum前,需要将yum源更换为任一国内镜像源
  • yum list mysql
    列出可以安装的mysql软件
  • yum install dhcp*
    安装所有dhcp开头的软件

系统救援

重置root账户密码

  1. 进入单用户模式:GRUB(GNU, GRand Unified Bootloader)中按b,找到quiet,在它后边后rd.break

    随后敲Ctrl - X进入centOS的单用户模式

    • 类似Windows的安全模式

    • 进入单用户模式有两种方法,两种方法的区别?:(TODO)

    • What is the difference between using init and rd.break for reset the root password?

      method A:

      Grub > e
      init=/bin/sh (Remove rhgb and quiet tags if necessary) > Ctrl+x
      /usr/sbin/load_policy -i
      mount -o remount,rw /
      passwd root or passwd
      mount -o remount,ro /
      

      **method B: * **

      Grub > e
      rd.break > Ctrl+x
      mount -o remount,rw /sysroot/
      chroot /sysroot/
      passwd root or passwd
      touch /.autorelabel
      

      Second method is recommend.

      For GRUB2/RHEL7 single/emergency mode should not work since it will use sulogin to authenticate you before presenting the command prompt.

      So lets mark off different methods.

      • For RHEL5, RHEL6, append 1, s or init=/bin/bash to kernel cmdline

      • For RHEL7, RHEL8, CentOS7, CentOS8, append rd.break or init=/bin/bash to kernel cmdline

      It appears that the second method is not available on RHEL5 and RHEL6.

      But for RHEL7 or later I will prefer the first because adding init=/bin/bash is a bit tricky when single mode is password protected and may be appending rd.break is a way to standardize it.

  2. **挂载sysroot分区为可读可写:**默认sysroot分区仅可读。mount -o remount,rw /sysroot重新挂载分区

    • rw:read & write,读写
    • ro:read only,仅读
  3. 设置根目录为/sysrootchroot /sysroot

  4. 设置密码:passwd后按指示拍新密码

  5. 保存:touch ./autorelabel

    • 原因:为了让 SELinux 生效

      SELinux 它是一个安全增强系统, 其内部有许多安全策略

      针对一些操作, 如果你做了这些操作, 没有得到策略的放行, 它会给你禁止掉

      比如你使用单用修改root密码是不被策略放行的

      怎么让 SELinux 策略放行呢?

      • touch /.autorelabel创建这样一个文件其实就是在告诉SELinux放行这个策略,

        就是通知一下SELinux

      • 直接关闭掉 SELinux

  6. 退出重启:exitreboot

  7. 然后密码就改好了

网络服务

重温网络基操

  • systemctl stop firewalld,禁用防火墙

    • firewall,防火墙
    • d 为 daemon,守护进程,类似Windows中的服务
  • setenforce 0,变更SELinux策略

    • getenforce获取当前策略

samba服务

  • 利用yumrpm查询是否安装samba服务,不再赘述
  • systemctl start smb
    启动samba服务
  • netstat -tlnp | grep smbd
    查看服务占用端口
  • smbpasswd -a xxx
    添加samba访问用户xxx

    • 注意该用户名应是已经存在的Linux用户名其中之一
  • pdbedit -L
    查看已经添加的用户

配置文件

/etc/samba/smb.conf

[global]
#所要加入的工作组或者域
workgroup = WORKGROUP
#用于在 Windows 网上邻居上显示的主机名
netbios name = changNsigin_svr
#定义安全级别
security = user
#将所有samba系统主机所不能正确识别的用户都映射成guest用户
map to guest = bad user
#是否开启dns代理服务
dns proxy = no
#端口
smb ports = 4455[testshare]# 我们要分享的文件夹路径path = /home/user4test# 是否允许浏览browseable = yes# 是否可写writable = yes# 是否允许匿名(guest)访问,等同于publicguest ok = yes# 客户端上传文件的默认权限create mask = 0777# 客户端创建目录的默认权限# 注意共享文件在系统本地的权限不能低于以上设置的共享权限。directory mask = 0777

小结

  1. 启动samba服务 命令 systemctl start smb
  2. 修改samba配置文件 vim /etc/samba/smb.conf
  3. 添加共享,其中comment为共享说明,path为共享路径,read only为只读
  4. 关闭防火墙与selinux, systemctl stop firewalld.service && setenforce 0
  5. 添加samba用户,该用户必须是本地系统已经存在的账户,smbpasswd –a cc
  6. 为samba用户添加密码,smbpasswd cc
  7. 重启samba服务,systemctl restart smb
  8. 尝试访问samba共享目录,使用smbclient,-L选项查看共享目录列表
  9. 隐藏共享:在期望隐藏条目中添加配置项browseable=no

ftp服务

  • 一般自带该服务,不带就用yum
  • vsftp,very secure ftp
  • 配置文件/etc/vsftpd/vsftpd.conf
  • systemctl start vsftpd,启动服务
  • 默认情况下,匿名用户不能离开匿名服务目录/var/ftp,并且只能下载不能上传文件
  • 用哪个用户登录ftp服务,访问哪个用户的用户目录

apache服务

  • 利用yumrpm查询是否安装apache服务,不再赘述

  • systemctl start httpd,启动服务

  • etc/httpd/下,confconf.d目录的区别是什么?
    基本配置附属配置文件目录 ,基本配置文件和附属配置文件作用相同,更多时候基本配置是模板,基本不去修改

  • 修改端口:

    vim /etc/httpd/conf/httpd.conf,找到Listen 80,即此时apache服务正在监听80端口,80改为其他数字即可

  • 添加虚拟目录

    • vim /etc/httpd/vhost/xxx1.conf,编辑配置文件并设置虚拟目录

    • 添加如下条目

      <VirtualHost  192.168.43.100>DocumentRoot  "/var/www/xxx1"  DirectoryIndex  index.html
      </VirtualHost>
      

      即为配置192.168.43.100对应的虚拟目录为/var/www/xxx1

    • vim + /etc/httpd/conf/httpd.conf
      最后一行加上IncludeOptional vhost/*.conf,把虚拟主机的配置文件包含到主配置文件中

DHCP服务

DHCP(动态主机配置协议)是一个局域网的网络协议。

指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

  • 利用yumrpm查询是否安装DHCP服务,不再赘述
  • systemctl start dhcpd,启动服务
  • 配置文件为/etc/dhcp/dhcpd.conf
  • cat /var/lib/dhcpd/dhcpd.leases,查看哪些IP已经被租用(即查看租约文件)

NFS服务

  • network file system,nfs,网络文件系统

  • 利用yumrpm查询是否安装NFS服务,不再赘述

  • systemctl start nfs-server ,dddd

  • vim /etc/exports,配置文件(导出路径)

    # 将根目录下的文件夹a设置为所有人可读
    /a  *(ro)
    
  • exportfs -r,使配置文件生效,或者重启nfs服务也可

  • mount 127.0.0.1:/ /textxxx挂载网络文件夹
    127.0.0.1改为目标IP

laocchang的Linux随学随记相关推荐

  1. Linux必学的系统管理命令-1

    Linux必学的系统管理命令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  2. linux平台学x86汇编语言学习集合帖

    linux平台学x86汇编语言学习集合帖 linux平台学x86汇编(一):https://blog.csdn.net/shallnet/article/details/45543237 linux平 ...

  3. Linux 从头学 01:CPU 是如何执行一条指令的?

    摘自:Linux 从头学 01:CPU 是如何执行一条指令的? 作者:IOT物联网小镇 发布时间:2021-07-02 08:22:43 网址:https://blog.csdn.net/jchen1 ...

  4. 嵌入式Linux要学哪些东西?你真的造吗?

    嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远.那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入式学习步骤.下面是他本人亲笔. 1.要学习Linux,首先要会用, ...

  5. 嵌入式Linux要学哪些东西?你真的造吗

    为什么80%的码农都做不了架构师?>>>    嵌入式Linux要学哪些?一些人总在寻思,怕走了弯路,又怕学的东西离企业需求远.那么今天就请华清远见高级讲师曹大神告诉你,9点浅析嵌入 ...

  6. Linux从头学09:x86 处理器如何进行-层层的内存保护?

    作 者:道哥,10+年的嵌入式开发老兵. 转 载:欢迎转载文章,转载需注明出处. 文章目录 实模式:bootloader 为程序计算段的基地址 保护模式:bootloader 为自己创建段描述符 确定 ...

  7. 学习Linux七(Linux必学60个命令之【系统管理】)

    Linux必学的系统管理命令 对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心.熟悉了Linux常用的文件处理命令 ...

  8. 【无标题】Linux必学的指令

    Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令. ...

  9. 什么是linux系统管理指令,Linux必学的系统管理命令

    本文中介绍一些实用又常用的Linux或Unix命令,这些是Linux系统管理员们平常使用的命令.本文不是什么完整列表,而是简要地列出了需要时派得上用场的命令.下面跟着学习啦小编一起来了解一下吧. Li ...

最新文章

  1. mysql在线上建索引,mysql 5.6在线DDL建索引测试
  2. Jsp+Servlet+JavaBean经典MVC模式理解
  3. JavaScript代理模式
  4. python常用编译器和解释器的区别_Python常用编译器原理及特点解析
  5. 【Let‘s Go】Go语言入门篇
  6. curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443
  7. Tomcat上具有JAX-WS的Web服务
  8. vue svg sprite loader_Vue项最佳实践
  9. python threading.Thread
  10. 计算机组成原理课程论文结语,计算机组成原理课程论文
  11. SSH中直接运行php文件
  12. objective-c(iOS5) 中weak和strong使用的区别
  13. Eigen教程(4)
  14. 设计模式详解(链接)
  15. 62页 PPT 解剖《麦肯锡方法》及《麦肯锡工具》
  16. 智能门锁电路图_智能门锁工作原理分析及智能门锁基本工作流程技术原理介绍...
  17. 湖北省疫情数据可视化分析
  18. OSPF的DR/BDR的选举规则,数据包,接口网络
  19. yii mysql gii_Yii 框架使用Gii生成代码操作示例
  20. 开发一个会员管理系统

热门文章

  1. HP ProLiant 服务器 - POST 错误消息和蜂鸣代码(8)1700 系列错误消息
  2. 浪潮RAID0 掉了一块硬盘解决办法
  3. 51小项目——使用proteus搭建简易的光照度计-(2)
  4. java基础回顾——进制转换
  5. Java项目学习(一):家庭记账软件
  6. Hive SQL执行mapreduce任务卡在Kill Command
  7. mysql去重查询数量_mysql 数据去重
  8. python使用selenium爬取boos,100%爬取成功,绕过cookie
  9. ValidationSummary控件无法弹出错误提示框
  10. 【手绘漫画】图解LeetCode之反转链表(LeetCode206题)