目录
Linux目录结构
-
在Linux世界里,一切皆文件。包括硬件设备。
-
Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“ / ”,然后在此目录下再创建其它目录。
-
Linux目录解释:
系统目录:- /boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /etc:所有的系统管理所需要的配置文件和子目录 .conf
- /lib:系统开机所需要的最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到执行共享库
- /sys:存放系统的系统文件(慎动!)
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录可以获取系统信息(慎动!)
- /srv:service的缩写,该目录存放一些服务启动之后需要提取的数据(慎动!)
- /var:这个目录存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
- /selinux:(security-enhanced Linux)SELinux是一种安全的子系统,它能操作程序只能访问特定文件。当黑客入侵到服务器就会触发/selinux安全系统
- /usr/src:内核源代码默认的放置目录。
指令目录:
- /bin:binary的缩写,存放常用的指令。
- /sbin:s是super user的意思,存放系统管理员使用的系统管理程序。
设备挂载目录:
- /dev:类似Windows的设备管理器,把所有硬件映射成文件存放在此目录
- /media:Linux系统会自动识别一些设备,如U盘、光驱等等。当识别后,系统会把识别到的设备挂载到这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/,然后进入该目录就可以查看里面的内容了。可实现磁盘扩容。
临时文件目录:
- /tmp:存放临时文件
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
- /lost+found:一般情况下是空的,当系统非法关机后,这里存放了一些文件
用户目录:
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /root:该目录是系统管理员,也称超级权限者的用户主目录
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录。把它理解为Unix System Resource更准确。
- /usr/bin:系统用户使用的应用程序。
- **/usr/sbin:**超级用户使用的比较高级的管理程序和系统守护程序。
软件安装目录:
- /opt:这是给主机额外安装软件(之前)所摆放的目录,默认为空
- /usr/local:这是给主机额外安装软件(过后)所安装的目录,一般是通过编译源代码方式安装的软件(/usr/local/mysql)
vi和vim编辑器
- i(当前光标插入),a(把光标定位到当前当前字符的下一个字符),o(下一行插入):进入编辑模式,插入内容
- ::进入命令行模式,可以输入命令
- :wq(存盘保存退出),:q(退出,不保存),:q!(强制退出):退出
- esc:返回正常模式
- yy:拷贝当前行。nyy:拷贝当前行向下n行。p:粘贴。(正常模式下操作)
- dd:删除当前行:dd。ndd:删除当前行向下n行。(正常模式下操作)
- u:撤销。[Ctrl]+r:重复。(正常模式下操作)
- /关键字:查找字符或字符串。n:查找下一个。N:查找上一个。
- :set nu / :set nonu:设置/取消文件行号。
- gg:到达首行。G:到达末行。(正常模式下操作)
- n shift+g / :n:移动到n行
- [home]:移动到该行最前面。[end]:移动到该行最后面(编辑模式下操作)
- :n1,n2s/word1/word2/g:在n1与n2行之间寻找word1这个字符串,并将该字符串用word2代替。(s不能掉)如 :1,$s/public/PUBLIC/g:将第一行到最后一行中的public替换为PUBLIC。
- :n1,n2s/word1/word2/gc:在n1与n2行之间寻找word1这个字符串,并将该字符串用word2代替。在取代前显示提示字符给用户确认。
关机、重启和用户登录注销
- shutdown -h now:立即关机。等于poweroff,断电源,十分危险。
- shutdown -h 1:1分钟后关机
- shutdown -r now:立即重启
- halt:关闭系统,不关电源,主板还是通电的
- reboot:重启
- sync:把内存的数据同步到磁盘上。当我们关机或者重启时,都应该先执行一下sync,防止数据丢失。
- logout:注销用户。在图形运行级别无效,在运行级别3有效。(远程登录退出)
用户管理
- Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
- Linux可以有很多个用户。Linux里面有很多个组。每一个用户至少属于一个组。(不同权限)
- /home/ 目录下有各个创建的用户对应的home目录,当用户登录时,会自动的进入自己的home目录。
useradd 用户名:添加用户。自动默认将用户放到和用户名相同的组,且在/home/下创建一个用户的home目录。 - useradd [-d 指定目录] 用户名:添加用户,并给新用户指定家目录。(指定的目录不应该存在)
- passwd 用户名:设置用户密码
- userdel 用户名:删除用户,但是要保存home目录
- userdel -r 用户名:删除用户及其home目录
- 一般在实际开发中删除用户会保留home目录,因为里面会有许多有用的东西,比如源代码。
- id 用户名:查询用户信息(uid=1000(hxp) gid=1000(hxp) 组=1000(hxp))。用户不存在返回no such user
- su - 用户名:切换用户(高权限到低权限不用输入密码,反之需要)
- exit:返回原先的用户
- whoami / who am I:查询当前用户是谁
- 用户组类似于角色,系统可以对有共性的多个用户进行统一的管理
- groupadd:创建用户组
- groupdel:删除用户组
- useradd -g 用户组 用户名:添加用户时直接指定对应的组
- usermod -g 用户组 用户名:修改用户组
用户和组的相关文件:
-
用户(user)配置文件:/etc/passwd
记录用户的各种信息含义:用户名:密码:用户标识符:组标识符:注释性描述:主目录:登录shell hxp :x:1000:1000::/home/hxp:/bin/bash
-
口令(密码)配置文件:/etc/shadow
含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 hxp:$6$uttuNCqU$dKz1s0YiMeVpbuGP1s.tLlnHIPOXUKKojVRHj7c8Y.M1gPs65AOxhw3Pa73TaXHZLJv.PfhWPCzxR10X8lBKX1:18300:0:99999:7:::
-
组配置文件:/etc/group
记录Linux包含的组的信息含义:组名:口令:组标识号:组内用户列表(看不到) hxp:x:1000:
实用指令
- Linux的运行级别:
0:关机
1:单用户【找回丢失的密码,该状态登录不需要密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务(命令行模式)
4:系统未使用,保留
5:图形界面
6:重启
常用运行级别3和5,要修改默认的运行级别可修改文件/etc/inittab的id:5:initdefault:这行中的数字 - init [0123456]:切换到指定的运行级别
- CentOS 7有2个默认运行级别:3(multi-user.target)和5(graphical.target)(查/etc/inittab文件)
- CentOS 7用 systemctl set-default runlevelx.target 指定默认运行级别
查看当前的默认运行级别:systemctl get-default - 修改root密码:(前提:不能远程,电脑必须在手上)
1.首先,启动CentOS 7系统,在选择进入系统的界面按 “e” 进入编辑页面。
2.往下滑,找到 “linux16” 开头的那一段,在最后添加 “ 3.init=/bin/sh”
4.按 “ctrl+X” 组合键进入单用户模