认识Linux
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:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src: 内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除
基本命令
目录管理
相对路径和绝对路径
-
ls(英文全拼:list files): 列出目录及文件名
-
cd(英文全拼:change directory):切换目录
-
pwd(英文全拼:print work directory):显示目前的目录
-
mkdir(英文全拼:make directory):创建一个新的目录
-
rmdir(英文全拼:remove directory):删除一个空的目录
-
cp(英文全拼:copy file): 复制文件或目录
-
rm(英文全拼:remove): 删除文件或目录
-
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
文件查看
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;
- head 只看头几行
- tail 只看尾巴几行
文件基本属性
更改文件属性命令
- chown:更改文件所有者(owner),也可以同时更改文件所属组。
- chgrp:更改文件属组
- chmod:更改文件9个属性
Linux下的链接
硬链接与软连接
[root@iZ2vcgjiopjasr9f0k3zrdZ home]# cd test1/
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# ls
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# touch f1 # 创建文件f1
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# ls
f1
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# ln f1 f2 # ln命令,创建硬链接f2 硬链接到f1
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# ls
f1 f2
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# ln -s f1 f3 ## ln -s命令,创建软链接f3 硬链接到f1
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]# ls
f1 f2 f3
[root@iZ2vcgjiopjasr9f0k3zrdZ test1]#
vim 编辑器
文本编辑器的本质 == 查看内容、编辑内容、保存内容==
vim三种模式:命令模式、编辑模式、底线命令模式
- 命令模式:
使用 i 进入编辑模式,
使用 : 进入底线命令模式
使用:/word 查找 使用n 查找上一个 - 编辑模式:使用 ESC 退出编辑模式
- 底线命令模式:
使用 wq 保存并退出
使用 set nu 设置行号
进程命令
ps
ps -aux 显示所有进程信息
| 管道符
grep 该指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据
常用命令组合 ps -aux|grep xxx
[root@iZ2vcgjiopjasr9f0k3zrdZ /]# ps -aux|grep netns # 在全部进程中过滤匹配 ‘netns’ 字符的进程信息
root 19 0.0 0.0 0 0 ? S< Jul26 0:00 [netns]
root 3934 0.0 0.0 112816 980 pts/0 S+ 15:20 0:00 grep --color=auto netns
[root@iZ2vcgjiopjasr9f0k3zrdZ /]#
pstree
- p 显示父id
- u 显示用户组
pstree -pu
结束进程
kill -9 进程id :-9表示强制
软件安装
安装软件一般有三种方式:
- rpm安装
- 解压缩安装
- yum在线安装
安装之前,检查系统是否已有jdk安装信息,如果有,先卸载
rpm -qa | grep java # 检查系统java版本信息
rpm -e --nodeps jdk版本 # 卸载
rpm安装
略
解压缩
- 使用 xftp,把
jdk-8u411-linux-x64.tar.gz
上传到/usr/local/java/目录下。
- 使用命令tar -zxvf jdk_xxx 解压
解压后的蓝色文件
- 设置环境变量
vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8.0_411
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME CLASS_PATH PATH
保存退出后
执行命令source /etc/profile 让配置文件生效
[root@iZ2vcgjiopjasr9f0k3zrdZ etc]# source /etc/profile
[root@iZ2vcgjiopjasr9f0k3zrdZ etc]# java -version
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)
- 运行一个简单项目
上传一个jar包,并运行
注意:需要开启阿里云服务器的对应安全组端口 和 防火墙端口(如果防火墙开启的话)
yum在线安装
-
安装gcc相关
yum -y install gcc
yum -y install gcc-c++ -
卸载旧版本
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine如果想完全卸载,可以参考以下方法: * 杀死所有运行中的容器 docker kill $(docker ps -a -q) * 删除所有 Docker 容器 docker rm $(docker ps -a -q) * 删除所有 Docker 镜像 docker rmi $(docker images -q) * 停止 Docker 服务 systemctl stop docker.socket systemctl stop docker.service * 删除存储目录 rm -rf /etc/docker rm -rf /run/docker rm -rf /var/lib/dockershim rm -rf /var/lib/docker 注意事项:如果遇到无法删除的目录,可能需要先解除挂载。 例如:umount /var/lib/docker/devicemapper * 卸载 Docker 检查已安装的docker包: yum list installed | grep docker 卸载: yum remove -y 'docker*' yum remove -y containerd.io.x86_64
-
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2 -
设置镜像仓库,推荐使用国内的
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
更新yun软件包索引 针对不同的centos版本,使用下面不同的命令
yum makecache
yum makecache fast -
安装docker
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
启动docker
systemctl start docker -
测试运行hello-world
docker pull hello-world
docker run hello-world
如果出现拉取失败,参考以下办法1、切换目录 cd /etc/docker 2、创建文件 touch daemon.json 3、编辑文件 vim daemon.json { "registry-mirrors": [ "http://hub-mirror.c.163.com", "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud" ], "data-root": "/mnt/software/docker" } 保存退出后重启docker systemctl restart docker
出现下图,运行成功