开机登录
开机会启动许多程序。它们在Windows叫做“服务”(service),在Linux就叫做“守护进程”(daemon)。
开机成功后,它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可!
一般来说,用户的登录方式有三种:
- 命令行登录
- ssh登录
- 图形界面登录
最高权限账户为root,可以操作一切!
关机
在Linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
关机指令为:shutdown;
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
总结,不管重启还是关机,首先运行sync保存数据。
系统目录结构
1、一切皆文件
2、根目录/,所有的文件都挂载在这个节点下
登录系统后,在当前命令窗口输入命令:
ls /
会看到如下:
树状目录结构
对目录的解释:
- /bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。
- /boot:存放启动Linux使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev:dev是Decice(设备)的缩写,存放的是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:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
- /www:存放服务器网站相关的资源,环境,网站项目
常用基本命令
目录管理
绝对路径、相对路径
绝对路径:路径的全称
相对路径:文件相对于目录路径/ XXX.XX
cd:切换目录命令!
./ :当前目录
返回上一级目录: cd ..
ls(列出目录!)
在Linux中ls可能最常常被使用!
-a参数:all,查看全部文件,包括隐藏文件
-l参数 列出所有的文件,包含文件的属性和权限,没有隐藏文件
可以组合使用!
cd 命令 切换目录
cd 目录名(绝对路径都是以 / 开头,相对路径对于当前目录该如何寻找../../)
pwd显示用户当前所在的目录
mkdir 创建一个目录
mkdir -p 创建层级目录
rmdir 删除目录
rmdir仅可删除空的目录,如果目录下有文件就无法删除
rmdir -p 删除层级目录
cp(复制文件或者目录)
cp 原来的地方 新的地方!
rm(移除文件或者目录!)
-f 忽略不存在的文件,不会出现警告,强制删除
-r 递归删除目录
-i 互动,删除询问是否删除
rm -rf / #系统中所有的文件都被删除了
mv 移动文件或者目录 !重命名文件夹
-f 强制移动
-u 只替换已经更新过的文件
基本属性
看懂文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用 ll 或者 ls -l命令来显示一个文件的属性以及文件所属的用户和组,如:
实例中,boot文件的第一个属性用“d”表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
- 当为[d]则是目录
- 当为[-]则是文件
- 当为[l]则表示为链接文档(link file)
- 当为[b]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
- 当为[c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
接下来的字符中,以三个为一组,且均为【rwx】的三个参数的组合
其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(execute)
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]而已。
每个文件的属性由左边第一部分的10字符来确定:
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
0 | 1 2 3 | 4 5 6 | 7 8 9 |
d | r w x | r - x | r - x |
目录文件 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
从左至右用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。
修改文件属性
1、chgrp:更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同事更改文件属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3、chmod:更改文件9个属性
chmod [-R] xyz 文件或目录
Linux文件属性有两种设置方法,一种是数字(常用),一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
用数字代表各个权限:
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
文件内容查看
Linux系统中使用以下命令查看文件的内容:
- cat:由第一行开始显示文件内容
- tac:从最后一行开始显示,可以看出tac是cat倒着写
- nl:显示的时候,顺道输出行号(看代码 常用)
- more:一页一页的显示文件内容(空格翻页 回车翻一行 :f行号)
- less:与more类似,但是比more更好的是,它可以往前翻页(空格翻页 pageUP、pageDown键翻动页面 q退出命令 查询字符串 / + 要查询的字符(向下查询) ?+要查询的字符(向上查询) )
- head:只看头几行 通过-n参数看显示多少行
- tail:只看尾几行 -n查看多少行
可以使用man[命令]查看各个命令的使用文档,如:man cp
网络配置目录:/etc/sysconfig/network-scripts/ (CentOS7)
ifconfig命令查看网络配置
Linux链接的概念
Linux的链接分为两种:硬链接、软连接!
硬链接:假设B是A的硬链接,那么它们指向同一个文件!允许一个文件拥有多个路径,用户可以通过这种机制建立硬链接到重要文件上,防止误删!
软链接:类似Windows下的快捷方式,删除源文件就访问不了
创建连接 ln命令!
ln 文件名 文件名 (硬链接) ln -s 文件名 文件名(软链接)
touch 创建文件
echo 输入字符串
Vim编辑器
Vim文本编辑器
Vim | 菜鸟教程https://www.runoob.com/linux/linux-vim.htmlhttps://www.runoob.com/linux/linux-vim.html
账号管理
在公司一般不是root账户!
简介
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改
- 用户口令的管理
- 用户组的管理
用户账号的管理
用户账号的管理工作主要涉及到用户账号的添加、修改和删除
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。
useradd 命令添加用户
useradd -选项 用户名
选项:
-m:自动创建这个用户的主目录
-G:给用户分配组
本质:Linux中一切皆文件 添加一个用户就是往一个文件中写入用户信息! /etc/passwd(查看用户)
userdel 删除用户
userdel -r hzxzs 删除用户的时候将他的目录一并删掉
usermod 修改用户
usermod 对应的修改内容 修改的用户
修改完后查看配置文件
切换用户
公司你不可能用root用户
- 切换用户的命令为:su username(username是你的用户名)
- 从普通用户切换到root用户,还可以使用命令:sudo su
- 在终端输入exit或logout或使用快捷方式CTRL+d,可以退回到原来用户,其实CTRL+d也是执行的exit命令
- 在切换用户是,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:su -root
- $表示普通用户 #表示超级用户,也就是root用户
hostname查看主机名
hostname + 名字 修改新的主机名
重新连接就可以看到修改成功
服务器重启失效
用户密码设置
一般通过root创建用户的时候,配置密码
Linux上输入密码是不会显示出来的
root用户(超级用户) 给普通用户设置密码:
普通用户设置密码:
锁定账户
root权限,比如张三辞职了,冻结这个账号,一旦冻结,这个人就登录不上。
passwd -l hzxzs #锁定之后用户就能登录
passwd -d hzxzs #清楚密码 没有密码也不能登录
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
用户组管理
属主、属组
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同事创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
创建一个用户组 groupadd
创建完用户组后可以得到一个组的id,这个id可以指定 -g 数值
删除指定用户组 groupdel
修改用户组的权限信息和名字 groupmod -g -n
用户如果要切换用户组怎么办?
#登录当前用户 hzx
$ newgrp root
拓展:文件查看
/etc/passwd #用户密码
用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell
这个文件中的每一行都代表着一个用户,可以从这里看出这个用户的主目录在哪,属于哪个组!
登录口令(用户密码):把真正加密后的用户口令存在/etc/shadow文件中 ,保证密码的安全性
用户组的信息/etc/group文件中
磁盘管理
df(列出文件系统整体磁盘使用量) du(检查磁盘空间使用量)
df:按照字节输出
df -h:可视化 按照M或者G输出
Size(大小) Used(已用大小) Avail(剩余大小) Use%(已用%) Mounted on(挂载目录)
前面的数字就是文件的大小
Mac或者Linux挂载一些本地磁盘的文件
挂载:mount
卸载:umount 【挂载位置】
umount -f 强制卸载
进程管理
什么是进程
- 在Linux中,每个程序都有自己的一个进程,每个进程都有id号!
- 每个进程都有它的一个父进程!
- 进程可以有两种存在方式:前台!后台运行!
- 一般的服务都是后台运行的,程序基本都是前台运行的!
命令
ps 查看当前系统中正在执行的各种进程的信息!
- -a 显示当前终端运行的进程信息
- -u 以用户的信息显示进程
- -x 显示后台运行进程的参数
ps -aux #查看所有的进程
| 在Linux中这个叫管道符 A|B 把A命令的结果作为输出操作B命令
grep 查看文件中符合条件的字符串
ps -aux|grep mysql
ps -aux|grep java
ps -ef:可以查看到父进程的信息
ps -ef|grep XXX #看父进程一般通过目录树结构来查看
#进程树
pstree -pu
-p 显示父id
-u 显示用户组
结束进程:杀掉进kill
kill -9 进程id #表示强制结束该进程
Linux中一切皆文件(文件:读写执行(),权限(用户、用户组) 系统:(磁盘、进程))
环境安装
安装软件一般有三种方式:rpm、解压缩、yum在线安装
JDK安装
开发Java程序必须要环境!
安装方式:rpm
#检查当前系统是否存在Java环境! Java -version
#如果有的话就需要卸载
#rpm -qa|grep jdk 检测JDK版本信息
#rpm -e jdk(包全称) 卸载JDK
#rpm -e --nodeps jdk(包全称) 强制卸载JDK
#卸载完毕后即可安装JDK
#rpm -ivh rpm包 安装JDK
#配置环境变量
JDK安装:
卸载JDK:
配置环境变量:(/etc/profile)在文件的最后面增加Java的配置
让配置文件生效! source/etc/profile
firewall-cmd --zone=public --add-port=80/tcp --permanent #开启端口数字就是需要的端口号
Tomcat安装
ssm框架的项目打的是war包就需要放到tomcat中运行
安装方式:解压压缩包
tar -zxvf 包 #解压缩包
启动tomcat 运行./XXX.sh脚本
./startup.sh #运行
./shutdown.sh #停止
如果防火墙端口开了,服务器安全组也开放了,就可以直接访问了
Docker安装
官方文档:https://docs.docker.com/engine/install/centos/
安装
1、检测CentOS版本
2、安装准备环境
yum -y install 包名 #yum install 安装命令 -y 所有的提示都为y
yum -y install gcc
yum -y install gcc-c++
3、清楚以前版本
#卸载
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#安装一些基本环境
sudo yum install -y yum-utils
#安装镜像
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo (官方镜像)
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo (阿里镜像)
#安装索引包
sudo yum makecache fast
#安装docker
sudo yum -y install docker-ce
#开启服务
sudo service docker start
#测试
docker version docker版本
docker run hello-world helloworld程序
docker images 查看所有docker下载的镜像
扩展:Vmware使用
快照
保留当前系统信息,随时可以恢复,以防未来系统出现问题。
每配置一个东西,可以拍摄快照保留配置
本地网络配置
需要保证Linux虚拟机和本机处在同一个网段
配置文件路径:
桥接模式:虚拟机的IP会直接映射到物理机IP
静态连接就需要配置IP地址,配置ipv4就可以了
关注狂神说Java 有免费教学视频以及资料