linux系统目录结构:
- /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不能动)
- /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。相当于administrator
- /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: 网站资源等就放在这个目录下,就是LAMP
tips
软件安装一般安装在/opt 和 /usr/local 目录下
日志文件放在 /var下
使用docker挂载数据卷可以放在/usr/share下,但是我习惯放在/home下为不同镜像创建单独目录。
简单常用指令
可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
- 系统目录操作
sync/shutdown
ls -al / pwd(查看当前工作目录) / cd /
mkdir rmdir / cp / mv(移动或重命名) / rm、 - 查看文件
chomd 777 filename (4r+2w+1x=7)
查看文件 cat / tac / nl(带行号查看) / more(一页一页的显示) / less(同more但是可以向上翻页)/ head tail (只看头或尾几行,
tail看日志常用 tail -n(看几行) -f(实时) 20 /etc/csh.login ) - 编辑文件
vim 编辑器:命令模式/输入模式/底线命令模式
vi filename
i —进入编辑
esc —退出编辑
: ----进入底线命令模式 :wq保存并退出 - 用户和组
useradd -m 张三 userdel 张三 passwd 张三
groupadd group1 groupdel newgrp root
sudo su 切换到root用户 service network stop/start/status … - 磁盘管理
df / df -h 查看磁盘占用情况
du / du -sm /* 查看目录下的文件数量
mount umount 磁盘挂载 - 进程管理
ps -aux 查看所有的进程
ps -aux | grep mysql # 这就是查看名称中包含masql相关的进程信息,
ps -ef | grep mysql # 这个可以查看到父进程的信息。 但是一般可以用目录树结构来查看进程,更加清晰
pstree -pu # 这个指令可以看到所有进程及其树关系 -p 显示父id -u 显示用户组
kill 进程id
# 在Linux中 这个竖线| 代表管道符 A|B A命令的结果 当作命令 来操作B
# grep 查找文件中符合条件的字符串(起到过滤作用)
环境安装
一般软件会安装到usr下的local目录 /usr/local
有三种方式:
- rpm安装
- 解压缩安装
- yum在线安装
Linux上的软件安装有以下几种常见方式介绍
- 二进制发布包
软件已经针对具体平台编译打包发布,只要解压,修改配置即可。。。但是这种方式可能会出现不同系统出错问题
- RPM包—红帽推出了发布方式,用来兼容大部分linux的发布平台
软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。
缺点:这种方式不会将安装软件的 依赖 同时安装,这就必须先安装软件所需要的依赖
- Yum在线安装
软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题 缺点就是要有网络支撑
- 源码编译安装
软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。 安装redis的时候就需要这种方式(比如需要c++环境编译)
- 安装完成后,一般进入安装目录找到bin或者sbin目录,找到可执行文件使用.启动即可。. /nginx . /redis-cli . /startup.sh . /startdown.sh
类似在windows中cmd中启动bin下的startup.cmd
docker部署安装
跳出三界外不在五行中。
安装Docker(yum安装)
基于 CentOS 7 安装
-
官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/
-
确定你是CentOS7及以上版本
[root@192 Desktop]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
-
yum安装gcc相关(需要确保虚拟机可以上网 ) 这个好像不需要gcc的环境
yum -y install gcc yum -y install gcc-c++
-
卸载旧版本
yum -y remove docker docker-common docker-selinux docker-engine # 官网版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 黑马版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce
-
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 # 黑马版本 yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken
-
设置stable镜像仓库
# 错误 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ## 报错 [Errno 14] curl#35 - TCP connection reset by peer [Errno 12] curl#35 - Timeout # 正确推荐使用国内的 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
更新yum软件包索引
yum makecache fast
-
安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
-
启动docker
systemctl start docker # 启动docker服务 systemctl stop docker # 停止docker服务 systemctl restart docker # 重启docker服务
-
测试
docker version docker run hello-world docker images
卸载 删除docker
# 卸载依赖 yum remove docker-ce docker-ce-cli containerd.io # 删除资源 rm -rf /var/lib/docker