• Linux基础


    Linux

    1.相关概述和环境搭建

    • https://mp.weixin.qq.com/s/RT93qJdTagtKjWKx_A_6Nw

    • 如果使用的是阿里云服务器,Linux防火墙的端口开完之后,一定还需要再阿里云设置安全组规则,开放端口号,否则外界无法访问;

    • 如果自己的网站想要上线,就一定要购买一个域名然后进行备案;备案的话需要一些认证和时间,备完完毕后,就可以解析到自己的网站了,这个时候就可以使用域名来进行服务器的访问!

    2.系统目录结构

    • 一切皆文件;

    • 根目录 / ,所有的文件都挂载在这个节点下;

    • 树状目录结构

    • 相关目录解释

      • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。

    • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

    • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

    • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。

    • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

    • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。

    • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(这里存放服务器突然关机的一些文件)

    • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

    • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。(我们后面会把一些本地文件挂载在这个目录下)

    • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

    • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

    • /root:该目录为系统管理员,也称作超级权限者的用户主目录。

    • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

    • /srv:该目录存放一些服务启动之后需要提取的数据。

    • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    • /tmp:这个目录是用来存放一些临时文件的。(用完即丢的文件可以放在这里)

    • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    • /usr/bin: 系统用户使用的应用程序。

    • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。

    • /usr/src: 内核源代码默认的放置目录。

    • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

    • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

    • 目录管理

      1. 绝对路径(路径的全称,都是以/开头的)

        路径的写法:由根目录/ 写起,例如:/usr/share/doc这个目录。

      2. 相对路径

        路径的写法:不是由/写起,例如由/usr/share/doc要到/usr/share/man底下时,可以写成:cd ../man 这就是相对路径的写法。

    •  

    3.目录命令行

    Linux中没有错误就代表操作成功!

    • 目录切换

      cd    #切换目录命令
      cd /  #切换到根目录
      cd D: #切换到D盘
      cd ./  #当前目录
      cd ../ # 返回上一级目录
    • 切换到root用户

      su
      再输入默认密码即可
    • 关机指令 shutdown

      不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

      sync    #将数据由内存同步到硬盘中。
      shutdown   #关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
      shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机;
      shutdown –h now # 立马关机
      shutdown –h 20:25 # 系统会在今天20:25关机
      shutdown –h +10 # 十分钟后关机
      shutdown –r now # 系统立马重启
      shutdown –r +10 # 系统十分钟后重启
      reboot # 就是重启,等同于 shutdown –r now
      halt # 关闭系统,等同于shutdown –h now 和 poweroff
    • 主机连接

       ssh root@主机ip
    • 文件名自动补全

      文件首字母+tab键
    • ls 列出目录

      ls 列出目录
      ls -a 查看全部文件,包括隐藏文件
      ls -l 列出所有文件,包含文件的属性和权限,没有隐藏文件
    • pwd 显示当前的目录

      pwd 显示当前的目录
    • mkdir 创建文件夹

    • mkdir 创建文件夹
      mkdir -p 递归创建文件夹 例如:mkdir -p 11/22/33
    • rmdir 移除文件夹

      rmdir 移除文件夹(非空文件夹无法删除)
      rmdir -p 递归删除文件夹
    • cp (复制文件或者目录)

      cp (复制文件或者目录)
      cp 当前要拷贝的资源名称 目标路径或者文件夹
    • rm (移除文件或者目录)

      rm (移除文件或者目录)
      rm -f 忽略不存在的文件,不会出现警告,强制删除
      rm -r 递归删除目录
      rm -i 互动,删除询问是否删除
      rm -rf
    • mv (移动文件或者目录,重命名文件)

      mv (移动文件或者目录,重命名文件)
      mv 文件名 目标位置
      mv 文件(夹)名 新名称
      mv -f 强制
      mv -u 只替换已经更新过的文件
    •  

    4.文件属性

    文件属性图:

    • 实例中,boot文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

      在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:

      1. 当为[ d ]则是目录

      2. 当为[ - ]则是文件;

      3. 若是[ l ]则表示为链接文档 ( link file );

      4. 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );

      5. 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。

    • 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。

      其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

      要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

      每个文件的属性就是由上述10个字符来确定(如下图):

      文件权限图

    • 从左至右用0-9这些数字来表示。

      • 第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

      • 第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

      • 第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;

      • 第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

    • 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户

    • 同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

    • 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

    • 因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

    • 在以上实例中,boot 文件是一个目录文件,属主和属组都为 root(第一个root代表属主,第二个root代表属组)。

    •  

    5.文件属性命令行

    • chgrp 更改文件属组

      chgrp [-R] 属组名 文件名
      -R 递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
      chown 更改文件属主,也可以同时修改文件属组
      ​
      chown [–R] 属主名 文件名
      chown [-R] 属主名:属组名 文件名
    • chmod 更改文件9个属性

      chmod 更改文件9个属性
      chmod [-R] xyz 文件或目录
      ​
      Linux文件属性有两种设置方法,一种是数字(常用的是数字),一种是符号。
      ​
      Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
      ​
      先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:r:4     w:2         x:1
      ​
      每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---] 分数则是:
      owner = rwx = 4+2+1 = 7
      group = rwx = 4+2+1 = 7
      others= --- = 0+0+0 = 0
      ​
          
      chmod 777 filename
    •  

    6.查看文件内容命令行

    • cd /etc etc目录下有很多配置,一些关于系统的配置信息

    • cd /etc/sysconfig/network-scripts 网络配置相关目录 ifcfg-eth0 是默认的网络配置文件

    • windows下查看网络的配置信息,ip等等内容使用:ipconfig;Linux下查看网络配置是:ifconfig

    • cat #由第一行开始显示文件内容

      cat  #由第一行开始显示文件内容
      ​
      -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
      ​
      -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
      ​
      -E :将结尾的断行字节 $ 显示出来;
      ​
      -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
      ​
      -T :将 [tab] 按键以 ^I 显示出来;
      ​
      -v :列出一些看不出来的特殊字符
    • tac #从最后一行开始显示

      tac #从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
    • nl #显示的时候,顺道输出行号! 命令比较常用,看代码的时候显示行号

      nl  #显示的时候,顺道输出行号! 
      ​
      -b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);-b t :如果有空行,空的那一行不要列出行号(默认值);
      ​
      -n :列出行号表示的方法,主要有三种:-n ln :行号在荧幕的最左方显示;-n rn :行号在自己栏位的最右方显示,且不加 0 ;-n rz :行号在自己栏位的最右方显示,且加 0 ;
      ​
      -w :行号栏位的占用的位数。
    • more 一页一页的显示文件内容

      more 一页一页的显示文件内容
      ​
      空格键翻页
      enter 代表向下翻一行
      ​
      可以在查看文件的时候,在底部输入相关信息进行不同操作:
      /字串  #代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
      :f     #立刻显示出档名以及目前显示的行数;
      b 或 [ctrl]-b  #代表往回翻页,不过这动作只对文件有用,对管线无用。
      q      #代表立刻离开 more ,不再显示该文件内容。
    • less

      less  
      ​
      与 more 类似,但是比 more 更好的是,他可以往前翻页!
      ​
      空格键翻页 
      [pagedown]:向下翻动一页;
      [pageup] :向上翻动一页;
      ​
      可以在查看文件的时候,在底部输入相关信息进行不同操作:
      /字串  #向下搜寻『字串』的功能;
      ?字串  #向上搜寻『字串』的功能;
      n     #重复前一个搜寻 (与 / 或 ? 有关!)就是当前页面找完了,可以继续往下找或者往上找
      N     #反向的重复前一个搜寻 (与 / 或 ? 有关!)
      q     #离开 less 这个程序;
      ​
      翻动到最后要退出 q
    • head 只看头几行

      head 只看头几行
      ​
      head [-n number] 文件
      ​
      选项与参数:-n 后面接数字,代表显示几行的意思!若要显示前 20 行,就得要这样:head -n 20 /etc/csh.login
    • tail 只看尾巴几行

      tail 只看尾巴几行
      ​
      tail [-n number] 文件
      ​
      -n :后面接数字,代表显示几行的意思
      默认的情况中,显示最后 10 行!若要显示最后 20 行,就得要这样:
      tail -n 20 /etc/csh.login
    •  

    7.Linux链接概念(拓展)

    • Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。

    • 硬连接

      硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

      硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

    • 软连接(符号链接)

      另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

    7.1.链接相关命令行
    • touch 创建文件

      touch filename
    • ln 创建链接

      ln 创建硬链接(创建出来的文件是白色)
      ln -s 创建软链接(创建出来的文件是蓝色)

      测试

      touch f1  #创建一个f1文件
      ln f1 f2  #给f1创建一个硬链接
      ln -s fl f3  #给f1创建一个软链接
      ​
      通过 ls -ll命令可以看到 创建出来的f2是一个实实在在的文件,而f3是一个链接
      ​
      ​
      链接的文件发生改变,其他的文件都会改变,可以用下面echo命令往f1中写入相关内容,然后分别查看f1 f2 f3的内容
      ​
      删除f1后,f2还可以正常访问,f3已经失效(No such file or directory
      )
    • echo输入字符串

      echo "需要输入的内容" >> 指向的文件名
    •  

    8.Vim编辑器

    vim filename.文件格式    #文件存在就修改文件,不存在就新建文件
    例如 vim test.txt

    vim键盘图

    (了解即可)

    8.1.三种使用模式
    • 命令模式

      用户刚刚启动 vi/vim,便进入了命令模式。(比如我vim test.txt)

      此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

      以下是常用的几个命令:

      i  #切换到输入模式,以输入字符。
      x  #删除当前光标所在处的字符。
      :  #切换到底线命令模式,以在最底一行输入命令。
    • 输入模式

      在命令模式下按下i就进入了输入模式。

      在输入模式中,可以使用以下按键:

      字符按键以及Shift组合,输入字符
      ​
      ENTER,回车键换行
      ​
      BACKSPACE,退格键,删除光标前一个字符
      ​
      DEL,删除键,删除光标后一个字符
      ​
      方向键,在文本中移动光标
      ​
      HOME/END,移动光标到行首/行尾
      ​
      Page Up/Page Down,上/下翻页
      ​
      Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
      ​
      ESC,退出输入模式,切换到命令模式
    • 底线命令模式

      在命令模式下按下:(英文冒号)就进入了底线命令模式。

      底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

      在底线命令模式中,基本的命令有:

      :wq  #保存并退出
      :wq! #保存并强制退出
      :q   #不保存直接退出
      :q!   #不保存强制退出
    • vim 还有非常多的按键可以使用

    • 搜索替换
      
      /word   向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
      ​
      ?word   向光标之上寻找一个字符串名称为 word 的字符串。
      ​
      n    这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
      ​
      N    这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
      :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
      :set nonu   与 set nu 相反,为取消行号!
    • 修改的配置文件重新生效

      source filename

    9.账户管理

    9.1.简介
    • Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    • 用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    • 每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

    • 实现用户账号的管理,要完成的工作主要有如下几个方面:

      1. 用户账号的添加、删除与修改。

      2. 用户口令的管理。

      3. 用户组的管理。

    9.2.用户账户管理
    • 用户账号的管理工作主要涉及到用户账号的添加、修改和删除;添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。

    • $表示普通用户

      #表示超级用户,也就是root用户

    • 添加账户

      增加用户账号就是在/etc/passwd文件中为新用户增加一条记录(新用户主目录的位置在/home/),同时更新其他系统文件如/etc/shadow, /etc/group等。、切换用户

      useradd
      user 选项 用户名
      ​
      参数说明:
      ​
      选项 :
      ​
          -c comment 指定一段注释性描述。
      ​
          -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
      ​
          -g 用户组 指定用户所属的用户组。
      ​
          -G 用户组,用户组 指定用户所属的附加组。
      ​
          -m 使用者目录如不存在则自动建立。
      ​
          -s Shell文件 指定用户的登录Shell。
      ​
          -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
      ​
      用户名 :
          指定新账号的登录名。
    • 切换用户的命令

      su username
    • 从普通用户切换到到root用户

      sudo
      su
    • 退回原来用户

      在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
    • 删除用户

      删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录

      userdel 选项 用户名
      ​
      选项说明
          -r   它的作用是把用户主目录一并删除(已登录用户通常无法删除)
          -f   强制删除
    • 修改用戶

      usermod 选项 用户名
      ​
      选项说明
      常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
      ​
      例如:
      # usermod -s /bin/ksh -d /home/z –g developer pc
      此命令将用户kuangshen的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
      ​
      修改完之后可去配置文件/etc/passwd  中查看
    • 用户口令的管理(用户密码)

      用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

      指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

      passwd    修改用户密码
      passwd [选项] 用户名 (超级用户指定用户名,然后改密码)
      ​
      选项说明
          -l 锁定口令,即禁用账号。(使用户无法登陆)
      ​
          -u 口令解锁。
      ​
          -d 使账号无口令。(为用户指定空口令时)
      ​
          -f 强迫用户下次登录时修改口令。
          
      普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
    • 修改当前主机名

      hostname     显示当前主机名
      hostname newname  (修改新主机名;修改后需要重启或者重连才行;当然只是暂时的。永久性修改需要到配置文件)  
    •  

    10.用户组管理

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理;用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    • 创建一个新的用户组使用groupadd命令

      groupadd 选项 用户组 
      ​
      可以使用的选项:
      -g  GID指定用户组的组别标识号;创建完用户组后可以得到一个组的id,这个id是可以指定的;如果不指定,id会自增;
      ​
      -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有的用户组的GID相同
    • 删除用户组

      groupdel 用户组
    • 修改用户组属性

      groupmod 选项 用户组
      ​
      常用选项
      -g GID为用户组指定新的组标识号;
      ​
      -o 与-g选项同时使用,用户组的新的GID可以与系统已有用户组的GID相同;
      ​
      -n 新用户组 将用户组的名字改为新名字;
    • 切换用户组

      如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限;

      $ newgrp root
      ​
      这条命令将当前用户切换到root用户组,前提条件是root用户确实是该用户的主组或附加组
    • 扩展(文件查看)

      完成用户组管理工作有很多方法,但是每一种方法实际都是对有关的系统文件进行修改;

      与用户和用户组有关的信息都存放在一些系统文件中,这些文件包括:/etc/passwd, /etc/shadow, /etc/group等。

      /etc/passwd
      
      1: Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。这个文件对所有用户是可读的;
      
      root:x:0:0:root:/root:/bin/bash
      bin:x:1:1:bin:/bin:/sbin/nologin
      daemon:x:2:2:daemon:/sbin:/sbin/nologin
      master:x:500:500:CentOS-6.9:/home/master:/bin/bash
      用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
      
      2: 系统中有一类用户称为伪用户;这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为他们的登录Shell为空。它们的存在主要是为了方便系统管理,满足相应的系统进程对文件属主的要求。常见的伪用户:
      
      伪 用 户 含 义
      bin 拥有可执行的用户命令文件
      sys 拥有系统文件
      adm 拥有帐户文件
      uucp UUCP使用
      lp lp或lpd子系统使用
      nobody NFS使用
      /etc/shadow
      ​
      1: 对系统安全性要求高的都把加密后的口令分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件,有超级用户才拥有对该文件的读权限,这就保证了用户密码的安全性。
      ​
      2: /etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。格式如下:
      ​
      root:$1$/5PBRRvA$QClbdmSTNnichC9.JQszd/:18721:0:99999:7:::
      bin:*:17246:0:99999:7:::
      daemon:*:17246:0:99999:7:::
      adm:*:17246:0:99999:7:::
      master:$1$/5PBRRvA$QClbdmSTNnichC9.JQszd/:18721:0:99999:7:::
      登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
      /etc/group
      ​
      用户组的所有信息都存放在/etc/group文件中。将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段。
      每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。
      当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
      用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。
      用户组的所有信息都存放在/etc/group文件中
      ​
      root:x:0:
      bin:x:1:bin,daemon
      master:x:500:
      jpc3:x:521:
      组名:口令:组标识号:组内用户列表
    •  

    11.磁盘管理

    Linux的磁盘管理好坏直接关系到这个系统的性能问题,磁盘管理的常用命令为df,du

    • df 列出文件系统的整体磁盘使用量

      df命令参数功能:检查文件系统磁盘的使用情况,可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息

    df [选项] [目录或文件名]
    ​
    选项与参数:
    -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
    ​
    -k :以 KBytes 的容量显示各文件系统;
    ​
    -m :以 MBytes 的容量显示各文件系统;
    ​
    -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
    ​
    -H :以 M=1000K 取代 M=1024K 的进位方式;
    ​
    -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
    ​
    -i :不用硬盘容量,而以 inode 的数量来显示
    ​
    ​
    例1:
    将/etc底下的可用的磁盘容量以易读的容量格式显示
    [root@localhost /]# df -h /etc
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda2        18G  2.9G   14G  18% /
    ​
    例2:
    将系统内的所有特殊文件格式及名称都列出来
    [root@localhost /]# df -aT
    Filesystem     Type                1K-blocks    Used Available Use% Mounted on
    /dev/sda2      ext4                 18208184 2940120  14336480  18% /
    proc           proc                        0       0         0    - /proc
    sysfs          sysfs                       0       0         0    - /sys
    devpts         devpts                      0       0         0    - /dev/pts
    tmpfs          tmpfs                  502056      80    501976   1% /dev/shm
    /dev/sda1      ext4                   289293   35719    238214  14% /boot
    none           binfmt_misc                 0       0         0    - /proc/sys/fs/binfmt_misc
    vmware-vmblock fuse.vmware-vmblock         0       0         0    - /var/run/vmblock-fuse
    • du 检查磁盘空间使用量

      du命令也是查看使用空间的,但是与df命令不同的是,du命令是对文件和目录磁盘使用的空间的查看,与df命令还是有一些区别的。

    du [-ahskm] 文件或目录名称
    ​
    选项与参数:
    -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
    ​
    -h :以人们较易读的容量格式 (G/M) 显示;
    ​
    -s :列出总量而已,而不列出每个各别的目录占用容量;
    ​
    -S :不包括子目录下的总计,与 -s 有点差别。
    ​
    -k :以 KBytes 列出容量显示;
    ​
    -m :以 MBytes 列出容量显示;
    ​
    ​
    例如:检查根目录底下每个目录所占用的容量
    du -sm/*
    ​
    通配符*来代表每个目录
    与df不一样的是,du这个命令其实会直接到文件系统去搜寻所有的文件数据。
    • 磁盘挂载与卸除

      根目录系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,解除此关联关系的过程称之为“卸载”

    1:磁盘挂载使用mount命令
    
    mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
    ​
    例:
    # 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
    [root@www ~]# mkdir /mnt/hdc6
    [root@www ~]# mount /dev/hdc6 /mnt/hdc6
    [root@www ~]# df
    Filesystem           1K-blocks     Used Available Use% Mounted on
    /dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6
    卸载使用umount命令
    
    2:umount [-fn] 装置文件名或挂载点
    ​
    选项及参数:
    -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下; ​ -n :不升级 /etc/mtab 情况下卸除。 ​ 例:卸载1中的/dev/hdc6 [root@www ~]# umount /dev/hdc6
    •  

    12.进程管理

    1. 在Linux中,每个程序都有自己的一个进程,每一个进程都有一个id号;每一个进程都有一个父进程

    2. 进程可以以两种方式存在:前台和后台;一般服务都是后台运行,基本的程序都是前台运行的

    命令:

    • ps 查看当前系统正在执行的各种进程的信息

      ps -xx
      ​
      -a 显示当前终端运行的所有进程的信息
      ​
      -u 以用户的信息显示进程
      ​
      -x 显示后台运行进程的参数
      ​
      ps -aux|grep mysql     查看mysql的相关进程信息
      ​
      # ps -aux 查看所有的进程
      # | 在Linux中叫做管道符  例如:A|B   意思是将A命令的结果作为输出来操作B命令
      # grep 查找文件中符合条件的字符串
      ps -ef 可以查看到父进程的信息
      ps -ef|grep mysql
      pstree -pu 
      #看父进程我们一般可以通过目录树结构来查看
          -p 显示父id
          -u 显示用户组
    • kill 杀掉进程

      kill -9 进程的id   #强制停止该进程
    •  

     

    13.其他常用命令

    • unzip filename.zip   #解压zip文件
    • tar -zxvf +需要解压的包名    #解压tar.gz文件
    • ./xxx.sh 即可运行脚本
    • 防火墙相关

      # 查看firewall服务状态
      systemctl status firewalld
      ​
      # 开启、重启、关闭、firewalld.service服务
      # 开启
      service firewalld start
      # 重启
      service firewalld restart
      # 关闭
      service firewalld stop
      ​
      # 查看防火墙规则
      firewall-cmd --list-all    # 查看全部信息
      firewall-cmd --list-ports  # 只看端口信息
      ​
      # 开启端口
      开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
      重启防火墙:systemctl restart firewalld.service
      ​
      命令含义:
      --zone #作用域
      --add-port=80/tcp  #添加端口,格式为:端口/通讯协议
      --permanent   #永久生效,没有此参数重启后失效
    •  

     

    14.相关环境安装

    1:需要注意的一点是:修改了配置文件需要重启配置文件,才能得以生效,例如

    配置java的环境变量:

    vim /etc/profile

    需要重新加载该文件,才能让新文件生效:

    source /etc/profile

    2:项目打包的如果是jar包,直接命令:java -jar 包名 就可运行

    如果项目打包的是war包,需要在tomcat中运行

     

    基于B站UP主:遇见狂神说  相关课程思路学习整理

  • 相关阅读:
    在我的S5pv210开发板上安装busybox并体验busybox devmem 命令的强大功能
    修改 android 的 framework 层操作小记.转载
    【原创】再次强调MLC Nandflash 6410 开发板的不稳定性带来的安全隐患问题
    转载.简要介绍android HAL JNI HAL的基础
    【转】Andriod关机&重启分析
    转载.程序员为什么地位不高?
    转载.android 对linux 内核的改动,到底改了多少?
    在Ubuntu上为Android系统编写Linux内核驱动程序
    修改android HDMI 输出默认分辨率的方法
    [转载]Android编译过程详解(三)
  • 原文地址:https://www.cnblogs.com/zeropc/p/14855482.html
Copyright © 2020-2023  润新知