—— 目录 ——
虚拟机
VMware 安装 CentOS7
云服务器
修改主机名:hostname <新名称>,然后重新连接
检测版本:cat /etc/redhat-release
0. 目录了解
/bin:即 binary,放置常用命令
/boot:放置启动 Linux 的核心文件,包括连接文件和镜像
/dev:即 device,放置 Linux 的外部设备,全都以文件的形式,可访问
/etc:放置系统管理需要的配置文件和子目录(如 Java、Redis,非常重要)
/home:用户的主目录,每个用户都有一个自己的目录
/lib:放置最基本的动态连接共享库,类似 Windows 中的 dll 文件
/lost+found:系统非法关机后,这里会出现一些文件,一般时空的
/media:放置识别到的 U 盘,光驱等
/mnt:放置用户临时挂载的文件系统,如光驱中的内容
/opt:放置额外安装的软件,如数据库等
/proc:放置系统内存的映射,可以通过它获取系统信息
/root:系统管理员的主目录
/sbin:即 super bin,放置系统管理员使用的系统管理程序
/srv:放置服务启动后需要提取的数据
/tmp:放置临时文件
/usr:放置用户的应用程序和文件,类似 Windows 中的 program files 目录
/var:放置经常被扩充的文件,如日志文件
/run:放置临时文件,存储系统启动以来的信息,系统重启时,目录下的文件会被清除
1. 最基本操作
- ls: 列出目录
- -a 表示全部文件包括隐藏文件
- -l 列出所有文件包括属性
- -R 里安童子目录一起列出来
- -t 按照时间从近到远列出
- 参数都可组合如 -al
- cd:切换目录
- cd … 表示返回上一级目录
- cd ~ 表示回到当前用户目录,如 /root
- pwd:显示目前的目录
- 加上 -P 后会显示完整路径,否则只是显示快捷方式路径(如果有的话)
- mkdir:创建一个新的目录
- 创建多级目录使用 -p,如 mkdir -p aaa/bbb/ccc
- 也可使用 -m 来为目录设置初始权限,如 -m 777 (见下方权限管理)
- rmdir:删除一个空的目录
- 删除多级目录可使用 -p,如 rmdir -p
- cp: 复制文件或目录
- 使用:cp <要复制的文件> <要复制的目录路径>
- 若要复制的是文件夹,需加参数 -r,表示递归,将文件夹内容一同复制
- 加上参数 -s 表示复制出来的为软连接(相当于快捷方式)
- 加上参数 -l 表示复制出来的为硬链接(软硬链接在下面)
- 加上参数 -a 能连同文件的属性一起复制过来(默认的话时间会变,组别可能也会变)
- rm: 移除文件或目录
- 目录不为空时,如果连带目录下所有东西一起删除,可加上 -r
- mv: 移动文件与目录,或修改文件与目录的名称
- 将 mv 后的多个文件(夹)移动到最后一个文件夹中
2. 属性认识与权限管理
① 第一列
- 第一个字母为 l 的表示连接
后边的bin -> usr/bin
表示该前边的目录链接到后边的目录,类似于快捷方式 - 为 d 的表示文件夹
- 为 - 的表示文件
后边 9 个字母分为 3 部分
每部分由 r
w
x
组成,分别表示可读、可写与可执行
显示为 -
的表示无此权限
这 3 个部分依次表示 <属主权限> <属组权限> <其他用户权限>
② 第三、四列
第三列为属主,表示属于哪一个用户
第四列为属组,表示属于哪一个组别
可以对该文件(夹)进行哪些操作,由第一列决定
③ 更改权限
更改文件权限,使用 chmod ,有两种方法
一、 使用数字更改
其中 r=4, w=2, x=1
故权限 rwx=4+2+1=7, r-x=4+1=5, 以此类推
chmod 777 <文件(夹)>
表示将三个权限都设置为 rwx
二、 使用符号更改
其中 u=user, g=group, o=other, 代表了三个权限
chmod u=rwx, go=rx <文件(夹)>
表示属主有读写与执行的权限,而属组和其他用户只有读写权限
符号更改还可以针对某一权限进行,比如
chmod a+w <文件(夹)>,表数全部人可写,其他权限不变
chmod a-w <文件(夹)>,表示全部人不可写,其他权限不变
参数:在 chmod 后加 -R 可将目录下所有子目录与文件的权限更改
目录权限 x 解释: 用户对目录需要有 x 权限,才能使用 cd 进入该目录,仅有 r 权限最多只能得到文件夹中的文件名称,就算对里边的文件具备全部权限,由于文件夹进不去,也就无法对文件进行任何操作了
目录权限 w 解释: 只要用户对目录有 w 权限,那么即便用户对其中的文件没有任何权限,也能将其删除
④ 更改属主
chown <账号名称> <文件(夹)>
chown <账号名称:组名> <文件(夹)>
第二行表示两桶组名也一起更改,同样 chown 后夹 -R 有递归更改效果
⑤ 更改属组
chgrp <组别名称> <文件(夹)>
同样在chgrp 后夹 -R 有递归更改效果
3. 文件内容查看
- cat:由第一行开始显示文件内容
- -b 可列出非空白行的行号,-n 则连同空白行行号一起列出
- tac:由最后一行开始显示文件内容
- nl:带行号显示内容
- more:分页显示内容
- 其中空格代表翻页,回车代表读取下一行,:f 表示显示行号
- less:也是分页显示内容,只不过它可以往前翻页
- 其中空格代表翻页,上下键代表上下行滚动,q 表示退出,/<字符串> 表示要查询什么字符串(向下查询),?<字符串> 则表示向上查询
- head:只看前面几行
tail:只看后边几行
这两个都可以接 -n <数字> 表示要看 前/后 多少行
4. 硬链接和软链接
硬链接: ln <文件1> <文件2>
特点:修改其中一个,另一个的内容随之变化,且任意删除一个,另一个依旧能访问到,可以使用硬链接备份重要文件
软连接: ln -s <文件1> <文件2>
特点:类似于快捷方式,同样是内容同步,但原文件被删除后,软链接出来的访问不了原文件内容
5. Vim 编辑器
① vim 键盘图:
② 基本操作:
文件不存在则为创建新文件,存在即为修改文件
vim <文件名>
之后将进入命令行模式
输入 i
进入输入模式
输入 x
删除光标所在处的字符
输入 :
进入底线命令模式
在以上三种模式下,按 Esc 键退出到命令行模式
在底线命令模式,输入 w 表示保存,q 表示退出,wq 表示保存并退出
③ 命令行模式操作
数字 + 空格:光标向后移动 n 个字符
数字 + 回车:光标向下移动 n 行
③ 底线命令行模式
set nu:设置行号(set nonu:取消显示行号)
ZZ:不保存直接退出
/<字符串>:表示寻找字符串,在其中按 n 表hi向下寻找,按 N 表示向上寻找
6. 管道
作用: 在命令之间使用管道符号 |
隔开,可实现前一个命令的结果被后一个命令接收并处理的效果
注意: 管道符号后出现的必须为命令,并且需要是能够接收结果的
管道符号常接命令: 过滤命令
grep <字符串>
作用:过滤处含有指定字符串的行
-v:反向选择,过滤掉出现指定字符串的行
-n:顺便输出行号
-c:统计指定字符串出现次数
7. 账号管理(通过 root 账号)
查看所有用户:cat /etc/passed
各项参数:
用户:密码:用户id:组id:注释性描述:主目录:登录Shell
用户id为 0 时,表示系统管理员,权限与 root 一样,可以设置多个系统管理员
其中密码不可见,使用 x 代替,真正的密码在加密后保存在 /etc/shadow 文件中
当登录Shell为 nologin 时,表示该用户不可以被登录
添加用户
useradd -选项 <用户名>
-m:自动创建用户家目录 /home/用户名(创建一般用户默认)
-M:不创建用户家目录(系统用户默认)
-r:创建系统账号(id 在 1000 以下)
注意:一般用户家目录创建后,权限为 700 ,也就是说只有该用户有进入家目录的权限
删除用户(-r 表示删除用户时将其目录一起删除掉)
userdel -r <用户名>
修改用户
usermod -选项 <用户名>
-l:后面接账号名称,表示修改账号名称(实质上修改了 /etc/passwd 的第一栏)
-L:锁定用户,使用户暂时无法登入(实质上是修改了 /etc/shadow 的密码行)
-U:解冻用户,实质上是将 /etc/shadow 密码行加上的 ! 拿掉
切换用户(使用 exit 可退回 root 账号)
su <用户名>
设置密码(后面不写用户名,就是修改自己的密码)
passwd <用户名>
锁定用户(l 为 lock 的意思,也可以使用 -d,为清空密码,密码为空也无法登录)
passwd -l <用户名>
查询用户情况
使用 w 或者 who ,查询当前有哪些童虎正在系统中
使用 lastlog ,查询每个章后最后登录的时间
8. 用户组管理
查看所有用户组:cat /etc/group
各项参数:
组名:组密码:组id:该组支持的账号名称
在第四个参数时,每个账号名称以逗号','隔开,如 root,bin 表示 root 和 bin 都加入了这个组
同样组密码不可见,保存在/etc/gshadow 中
查看用户所有加入的组
其中输出的第一个为有效群组,使用该用户创建文件时,文件所属的组为有效群组
groups
更改有效群组(能更改的只有用户已经加入了的群组)
newgrp <组名>
注意:当 root 账号使用 newgrp 后边的组名不是已加入的时,会自动加入该群组
创建用户组
groupadd -选项 <用户组名>
-r:创建系统群组(id 在 1000 以下)
-g:创建群组时指定群组 id(最好不要随意修改)
修改用户组
groupmod -选项 <用户组名>
-g:修改群组 id
-n:修改群组名字
删除用户组
groupdel <用户组名>
注意:要删除的群组必须没有用户将它设定为初始群组
9. 进程管理
获取当前进程信息
ps -选项
-l:列出较详细的进程信息
-a: 显示当前终端运行的所有进程信息
-u:以用户的格式显示进程信息
-x:显示后台进程运行的参数
aux:列出所有系统运作的进程信息
参数 -l 查出来的信息:
F:即 flags,表进程的权限,其中 4 为 root
S:即 stat,表进程的状态
R(Running),正在运作
S(Sleep),正在睡眠,但可以被唤醒(signal)
D,不可唤醒的睡眠状态,可能正在等待 xxx(I/O)
T,停止状态
Z(Zombie):僵尸状态,已停止但无法被移除至内存外
参数 -aux 查出来的信息:
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT |
---|---|---|---|---|---|---|---|
用户名 | 进程id | CPU占用 | 内存占用 | 虚拟内存占用 | 物理内存 | 使用的终端 | 进程状态 |
结束进程
kill <进程 id>,可接 -9 表示强制结束
killall <进程名称>,可实现批量删除
动态监控进程
top -选项
-d:后接数字,指定刷新的秒数(默认每 3 秒刷新一次)
在此期间,还可以接收按键输入进行互动
按 u,输入用户名,可以查看指定用户的进程信息
按 k,输入进程id,可杀掉指定的进程
按 P,可按进程id排序
按 M,可按占用内存大小排序
按 q:结束本次查看
监控网络状态
netstat -选项
-an:按顺序输出
-p:显示那个进程在调用
10. 防火墙与端口管理
查看 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
关闭:firewall-cmd --zone=public --remove-port=80/tcp --permanent
--zone 表示作用域
--add-port 表示添加端口,格式为:端口、通讯协议
--permanent 表示永久生效,没有这个参数重启后会失效
开启端口后要重启或者重载防火墙才能生效,下面两者都可
重载:firewall-cmd --reload
重启:systemctl restart firewalld.service
11. 安装与配置
① 安装
三种方式:rpm,解压缩,yum 在线安装
rmp 方式:
通过 -q 进行查询
rpm -选项
-qa:列出所有已经安装的 rpm 包
-qi:后接软件名,查询安装的 rpm 包软件的信息
-ql:后接软件名,查看软件包安装到什么地方去了
可通过管道过滤对应包,如
rpm -qa|grep java
安装 rpm 包
rpm -ivh xxx.rpm
-i:即 install 安装的意思
-v:查看更细致的安装信息画面
-h:以安装新系列显示安装进度
卸载 rpm 包(其中 nodeps 表示强制删除,xxx是由 -qa 查出来的包名)
rpm -e --nodeps xxx
解压缩方式:
解压压缩包
tar -zxvf xxx.tar.gz
yum 方式(需要网络)
安装命令(其中 -y 表示所有的提示都选 y 即 yes)
yum -y install <包名>
搜索有什么 yum 包
yum search xxx
② 配置
配置环境的地方在 /etc/profile
中
注意:rpm 方式不需要配置,解压缩方式需要
只需要在最后面添加即可,如 Java 环境
export JAVA_HOME= xxx
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
(也可以 export JAVA_HOME PATH CLASSPATH)
最后使配置文件生效 source /etc/profile
参考学习:狂神、鸟哥私房菜
12. 番外:日常命令收集
1) 查看各个目录的内存情况
df -hl
2) 查看各个文件的占用空间
ls -hl
冰河之上,伪装了暗流涌动(IceClean)