标签:文件 用户组 系统 用户 Linux docker 目录
Linux一切皆文件,文件的读写执行、权限(用户、用户组)、系统(磁盘、进程)。
服务器通常使用LAMP(Linux+Apache+MySQL+PHP)或LNMP(Linux+Nginx+MySQL+PHP)组合。
Windows中进程叫做”服务“(service),在Linux中叫”守护进程“(daemon)。
用户登录Linux的三种方法:
-
命令行登录(本地直接登录)
-
ssh登录(远程登录云服务器)
-
图形界面登录(虚拟机登录)
Linux链接分为两种:硬链接、软连接。
-
硬链接:A--B,假设B是A的硬链接,那么他们两个指向同一个文件。允许一个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删。
-
软链接:软链接又叫符号链接,类似windows下的快捷方式,删除源文件,快捷方式也访问不了了。
一、环境搭建
1.1 虚拟机
-
下载安装VMware虚拟机软件(需要激活码激活);
-
下载CentOS 7镜像,Linux磁盘分区的时候注意分区名(/boot、/home);
-
VMware安装Linux系统(百度博客);
点击屏幕进入虚拟机,Ctrl+Alt将聚焦退出虚拟机
账号:root 密码:qwedsa
-
快照
保留当前系统信息为快照,随时可以恢复,以防未来系统被玩坏。
虚拟机——快照——拍摄快照
-
本地网络配置
保证Linux虚拟机和本机处在同一个网段,对应配置文件为
/etc/sysconfig/network-scripts/
,虚拟机默认ifcfg-eno16777736
。静态连接:固定ip地址。
动态连接(dhcp-桥接模式):虚拟机动态连接网络,一定要桥接到正确的网卡。
虚拟机——设置——网络适配器——桥接模式
编辑——网络编辑器——更改设置——桥接模式——已桥接至...
vim ifcfg-eno16777736
# 动态连接
BOOTPROTO="dhcp"
#静态连接,Windows ping Linux
BOOTPROTO=none
ping 192.168.1.102傻瓜式配置,只能在图形界面下有效
nm-connection-editor
1.2 云服务器
-
购买配置服务器:https://www.aliyun.com/minisite/goods?userCode=r5saexap&share_source=copy_link
-
下载Xshell等远程连接工具(22端口)
-
下载Xftp等文件上传工具(21端口)
二、Linux目录
-
/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:usr是Unix Software Resource的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录。
-
/usr/bin:系统用户使用的应用程序。
-
/usr/src:内核源代码默认放置目录。
-
/var:这个目录存放着不断扩充的东西,习惯将那些经常被修改的目录放在这个目录下,包括各种日志文件。
-
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,该目录下的文件就会被删除。
-
/www:存放服务器网站相关的资源,如环境、网站项目。
三、基本命令
Ctrl+C:退出错误的命令。
Ctrl+L:清屏。
Ctrl+Z:暂停操作。
Tab:自动补全文件或目录。
reset # 重新初始化终端/清屏;
clear # 清屏,也可使用快捷键Ctrl+L;
history # 查看历史命令;
help # 帮助;
exit # 退出;
# # 注释。
| # 在Linux中 "|" 叫做管道符,A|B,把A命令的结果作为输出操作B命令
ifconfig # 查看网络配置
3.1 关机
sync # 将数据由内存同步到硬盘
shutdown # 关机指令,可以man shutdown来看一下帮助文档,例如你可以使用如下命令关机:
shutdown -h 10 # 计算机将在10分钟后关机
shutdown -h now # 立刻
shutdown -h 20:00 # 计算机在今天20:00关机
shutdown -h +10 # 10分钟后关机
shutdown -r now # 系统立刻重启
shutdown -r +10 # 系统10分钟后重启
reboot # 系统立刻重启,等同于shutdown -r now
halt # 关闭系统,等同于shutdown -h now和poweroff
3.2 目录管理
绝对路径:路径全称,如:D:\书&笔记\java资料\Java_Teach\博客;
相对路径:相对于当前路径进行操作。
cd目录名绝对路径都是以/开头,相对路径对于当前目录该如何寻找。
cd # 改变目录
cd .. # 退回到上一菜单
cd ./ # 当前目录
ls # 列出当前目录中的所有文件
ls -l # 列出当前目录中的所有文件,包括属性和权限
ls -a # 列出当前目录中的所有文件,包括隐藏文件
ls -al # 列出当前目录中的所有文件,包括属性和权限、隐藏文件
pwd # 显示当前所在的目录路径
mkdir # 新建一个目录,即新建文件夹
mkdir -p # 递归创建一个目录,mkdir -p test1/test2/test3
rmdir # 删除一个空目录
rmdir -p # 递归删除一个目录,rmdir -p test1/test2/test3,删除多个层级目录
touch # 新建一个文件,touch index.js就会在当前目录下新建一个index.js文件
cp # 复制文件或者目录,cp install.sh test,将install.sh复制到test目录中
rm # 移除文件或者目录,rm index.js就会把index.js删除
rm -f # 移除文件或者目录,忽略不存在的文件,不会出现警告,强制删除
rm -r # 递归删除目录,rm -r src删除src目录
rm -i # 删除时询问是否删除
rm -rf # 强行删除一个目录
rm -rf / # 递归删除,删除电脑中全部文件,删库跑路操作,切勿使用
mv # 移动文件或目录、重命名文件,mv index.html src,将我们要移动的文件index.html移动到目标文件夹src;mv test test1,将test文件重命名为test1
mv -f # 强制移动
mv -u # 只替换更新过的文件
ln # 创建硬链接,ln f1 f2,创建硬链接f2链接到f1
ln -s # 创建软连接
3.3 文件属性修改
文件属性
lrwxrwxrwx. 1 root root 7 10月 28 00:46 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 10月 28 00:53 boot
-
第1个字符代表文件属性
d:目录
-:文件
l:link file,表示链接文档
b:表示为装置文件里面可供储存的接口设备(可随机存取装置)
c:表示为装置文件里面的串行端口设备,例如鼠标、键盘(一次性读取装置)
-
接下来9个字符,每三个为一组,分别为属主权限、属组权限、其他用户权限,且都为[rwx]三个参数的组合,如果没有这个权限则用-代替。
r:可读red
w:可写write
x:可执行execute
-
文件个数
-
属主和属组
-
文件大小
-
创建时间
-
文件名,链接文档指向具体目录
chgrp 属组名 文件名 # 修改文件属组
chgrp [-R] 属组名 文件名 # 递归修改文件属组,修改该文件即该文件下子目录的数组
chown 属主名 文件名 # 修改文件属主
chown 属主名:属组名 文件名 # 修改文件属主、属组
chown [-R] 属主名 文件名 # 递归修改文件属主
chown [-R] 属主名:属组名 文件名 # 递归修改文件属主、属组
chmod xyz # 更改文件,xyz代表数字时:r(4)、w(2)、x(1),chmod 777代表属主、属组和其他用户都可读可写可执行;xyz代表符号时(略)
3.4 文件内容查看
cat # 由第一行开始显示文件内容,用来读文章、读配置文件,cat ifcfg-eth0
tac # cat倒写,从最后一行开始显示文件内容
nl # 显示内容时,顺便输出行号
more # 一页一页地显示文件内容。空格 向下翻页,回车 向下看一行,:f 看当前行号
less # 与more类似,且可以翻页。PageUp/PageDown 上下翻页,q 退出,/字符 向下查找字符串,?字符 向上查找字符串,n 寻找下一个,N 向上寻找,其他操作参照more
head -n # 只看头几行,head -n 20 csh.log,看csh.login的头20行
tail -n # 只看尾几行
echo # 输入字符串,echo "i love you" >>f1,向f1中写入“i love you”
3.5 Vim编辑器
Vim通过插件可以实现和IDE一样的功能。
Vim是从发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在Linux中必须会使用。
Vim分为三种模式:命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode) 。
-
命令模式
刚进入Vim,便进入了命令模式,如果文件存在,那么就修改这个文件;如果文件不存在,那么。
vim xx.txt
此时敲击键盘的动作会被Vim识别为命令,不会输入字符:
-
i/a/o:切换到输入模式,输入字符;
-
x:删除当前光标所在的字符;
-
::切换到底线命令模式。如果是输入模式,需要先退出。
-
-
输入模式
输入模式下可以使用键盘。
-
回车:换行;
-
Backspace:删除光标前一个字符;
-
DEL:删除光标后一个字符;
-
方向键:移动光标;
-
HOME/END:移动光标到行首/行末;
-
Page Up/Page Down:上下翻页;
-
Insert:切换光标输入/替换模式;
-
ESC:退出输入模式,切换到命令模式。
-
-
底线命令模式
底线命令模式可以输入单个或多个字符的命令。
-
w:保存文件
-
q:退出程序
-
set nu:显示行号
-
ESC:退出底线命令模式,切换到命令模式。
-
三个模式的更多操作请百度。
Vim编译器底下:文件名、行数、字符、光标位置。
3.6 账号管理
Linux系统是一个多用户多任务的分时操作系统,任何一个想要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。实现用户的账号管理,主要的工作有以下几个方面:
-
用户账号的添加、删除和修改
可从
/etc/passwd
文件中查看用户账号记录。root:x:0:0:root:/root:/bin/bash
xj:x:1000:1000:xj:/home/xj:/bin/bash
用户名:口令(密码,我们不可见):用户标识号:组标识号:(注释性描述:)主目录:登录Shell
useradd -m # 添加用户,自动创建这个用户的主目录,useradd -m xj,默认目录为/home/xj
useradd -c comment # 指定一段注释描述
useradd -d 目录 # 指定用户主目录,如果此目录不存在,则使用-m
useradd -g 用户组 # 指定用户所属的用户组
useradd -G 用户组,用户组 # 指定用户的附加组
useradd -s Shell文件 # 指定用户的登录Shell
useradd -u 用户号 # 指定用户的用户号,如果同时又-o选项,则可以重复使用其他用户的标识号
userdel -r # 删除用户,清空目录,userdel -r xj
usermod -d 目录 # 修改用户目录,usermod -d /home/233 xj -
用户口令的管理
登录口令加密后存放在
/etc/shadow
中。passwd # 修改密码,默认修改当前用户密码,root用户也可修改指定用户密码,passwd xj,修改用户xj的密码,Linux修改密码不会显示,直接输入即可
passwd -l # 锁定用户,让其不能登录,passwd -l xj
passwd -d # 清空密码并锁定用户,也不能登录
passwd -u # 解锁用户 -
用户组的管理
每个用户都有一个用户组,系统可以对一个用户组的所有用户进行集中管理(root、开发、测试、运维...)。不同Linux系统对用户组的规定不同,如Linux下的用户属于与他同名的用户组,这个用户组在创建用户时同时创建。从
/etc/group
中查看。xl:x:1001:
groupadd # 添加用户组,groupadd xl,创建xl用户组
groupadd -g id # 添加用户组并指定id,如果不指定,默认从1000开始自增
groupdel # 删除用户组,groupdel xl
groupmod -g id # 修改用户组id,groupmod -g 520 xl
groupmod -n 用户组名 # 修改用户组名,groupmod -n newxl xl
$ newgrp root # 登陆后切换用户组,或是在创建的时候就-G指定,一般不修改 -
切换用户
终端命令行说明:[用户名@主机名 当前路径]#(超级用户)/$(普通用户)
[root@sep home]#
、[xj@sep home]$
su # 切换用户,su xj
exit # 退回到root用户
hostname # 查看或临时修改当前主机名,hostname,查看主机名;hostname xl,将主机名修改为xl,重连后生效
3.7 磁盘管理
df # 列出文件系统整体的磁盘使用量,单位K
df -h # 列出磁盘整体使用量,单位M
du # 检查磁盘空间使用量
du -a # 检查磁盘空间使用量,包括隐藏文件
du -sm /* # 检查根目录下每个目录所占的容量
mount # Mac或Linux挂载本地磁盘或文件,mount /dev/sep /mnt/sep,将外部设备sep挂载到mnt目录下,实现访问
umount # 卸载,umount /mnt/sep
umount -f # 强制卸载
安装完JDK后,可以通过Java命令来查看信息。
3.8 进程管理
在Linux中,每一个程序都有自己的进程,每一个进程都有一个id号(类似Windows中的PID)。
每一个进程都有以一个父进程。
进程可以有两种存在方式:前台、后台。一般服务都是后台运行的,基本程序都是前台运行的,nohup
代表后台执行程序。
ps # 查看当前系统中正在执行的各种进程信息
ps -a # 显示当前终端运行的所有进程信息(当前进程)
ps -u # 以用户的信息显示进程
ps -x # 显示后台运行进程的参数
ps -aux # 显示所有进程,ps -aux|grep mysql,(grep查找文件中符号条件的字符串),查看mysql进程
ps -ef # 可以查看到父进程信息,一般可以通过目录树结构查看
pstree -p # 查看目录树结构,显示父id
pstree -u # 查看目录树结构,显示用户组
pstree -pu # 查看目录树结构,显示id和用户组
kill -9 id # 杀掉进程,kill -9 31065,结束id号为31065的进程
四、软件的安装和部署
安装软件一般有四种方式:
-
rpm安装(JDK)
-
解压缩安装(Tomcat)
-
yum在线安装(Docker)
-
宝塔面板安装
4.1 JDK安装
-
下载JDK
rpm
; -
安装Java环境;
# 检测当前系统是否存在Java环境
java -version
# 如果有Java要卸载
rpm -qa|grep jdk # 检测JDK版本信息
rpm -e --nodeps jdk # 强制移除
# 没有Java环境,即可安装
rpm -ivk rpm包 -
配置环境变量(rpm貌似不需要,解压缩安装才需要)
环境变量配置文件
/etc/profile
# 编辑配置文件
vim /etc/profile
# 插入Java环境变量
JAVA_HOME=/urs/java/jdk1.8
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
# 让配置文件生效
source /etc/profile
# 查看Java环境
java -version
4.2 Tomcat安装
-
下载Tomcat
tar.gz
; -
解压Tomcat;
tar -zxvf apache-tomcat-9.0.54.tar.gz
-
重命名解压文件为tomcat9(方便操作)
-
启动Tomcat测试;
进入bin目录,执行 ./xxx.sh脚本即可运行。
# 执行
./startup.sh
# 停止
./shotdown.sh -
开启防火墙8080端口;
如果防火墙8080端口开了,并且阿里云安全组也开放了,就可以直接访问远程了。
# 查看firewall服务状态
systemctl status firewalld
# 根据情况打开firewall
service firewalld start # 开启firewalld.service服务
service firewalld restart # 重启firewalld.service服务
service firewalld stop # 关闭firewalld.service服务
# 查看firewall开启的端口
firewall-cmd --list-all # 查看防火墙所有信息
firewall-cmd --list-ports # 查看防火墙开启的端口信息,如果时阿里云,需要配置安全组规则
# 如果没有打开8080端口,则开启,然后重启
firewall-cmd --zone=public --add-port=8080/tcp --permanent # 开启防火墙的8080端口
systemctl restart firewalld.service # 重启防火墙
--zone # 作用域
--add-port=9000/tcp # 添加端口,格式为:端口号/通讯协议
--permanent # 永久生效,没有此参数重启后失效上传完毕项目,直接够没自己的域名,备案解析过去即可。
域名解析后,如果端口是80-http或者443-https,可以直接访问;如果是9000、8080,就需要通过Apache或者Nginx做一下反向代理,配置文件即可。
4.3 Docker安装
官网安装操作手册:Install Docker Engine on CentOS | Docker Documentation
在Linux下执行,一定要联网,yum在线安装。
-
检测CentOS 7;
cat /etc/redhat-release
-
安装准备环境
yum -y install 包名
,yum install 安装命令,-y 所有提示都为yyum -y install gcc
yum -y install gcc-c++ -
根据官网安装
# 卸载以前的安装包
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 http://mirrors.aliyum.com/docker-ce/linux/docker-ce.repo # 阿里云镜像
# 更新yum软件的索引包
yum makecache fast
# 安装docker
yum -y install docker-ce docker-ce-cli containerd.io
# 启动docker
systemctl start docker
# 测试
docker version
docker run hello-world
docker images
标签:文件,用户组,系统,用户,Linux,docker,目录 来源: https://www.cnblogs.com/sephirothx/p/15506518.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。