本文论述的问题
- Linux的初识;
- Linux基本目录、用户、文件、vim命令;
注: 相关内容来自狂神说java的linux学习;
1、认识
Linux是由芬兰人林纳斯.托瓦兹在大学时出于个人爱好编写的。Linux在开发领域极其受欢迎,开源社区活跃,是每一个开发人员都需要学习的。
linux的发行版本(基于linux内核与不同应用软件的打包构成不同版本):
本文相关操作使用CentOS8.0进行操作。
2 、Linux命令
对于linux的命令操作,基本的认识是:一切操作皆文件,没有错误输出即是正确。
2.1开关机命令
sync # 将内存中数据同步到磁盘,在关机或重启之前需要执行此命令
shutdown #关机命令,在服务器端一般不会去使用
man shutdown #查看关机命令使用
shutdown -h now #立即关机
2.2 linux基本文件目录
linux文件目录从 / 开始的(类似于windows的计算机)。
ls / #列出根目录下所有目录
各目录说明:
- bin:binary缩写,存放常用命令;
- boot:存放linux启动使用的核心文件,存放连接文化和镜像文件(.img);
- data:存放数据目录;
- dev:存放设备文件,如cpu、磁盘;
- etc:存放系统管理所需配置文件和子目录;
- home:用户目录,每个用户都会在home下拥有自己的一个目录;
- lib:存放系统动态链接库
- lost+found:一般为空,在系统非法关机后存放一些文件;
- media:系统自动识别设备的挂载目录;
- mnt:用户挂载临时文件系统的目录;
- opt:安装软件的目录,默认空;
- proc:系统内存映射目录,可查看系统信息;
- root:管理员root主目录;
- run:临时文件系统,存放系统启动以来的信息,重启后数据删除;
- sbin:管理员用户程序存放目录;
- srv:存放系统启动后提取的信息;
- sys:存放系统文件;
- tmp:存放临时文件;
- usr:用户程序和文件目录,usr/bin系统用户程序存放目录,usr/sbin管理员用户程序存放目录。usr/src内核源代码存放目录;
- var:扩充目录,存放经常需要修改的文件。如各种日志文件;
2.3目录操作命令
目录操作,分绝对路径操作(从/根目录开始)和相对路径(…指上级目录,./当前目录)的操作;
目录相关基本命令:
ls #列出目录
cd #目录切换
pwd #显示当前目录路径
mkdir #创建一个目录
rmdir #删除一个目录
cp # 复制文件或目录
rm #移除文件或目录
mv #移动目录或修改名称
用法:
ls 目录名称,参数:
- -a 列出所有目录或文件,包括隐藏文件;
- -l 长字符串列出目录和文件详细信息;
mkdir [参数]目录名
- -m配置权限
- -p 层级创建目录
rmdir [参数] 目录名称 (只能删除空目录,非空目录需要使用rm进行删除)
- -p级联删除目录;
cp [参数] 源目录名称 目标名称
- -p 连同文件属性复制;
- -d源文件为链接属性,则复制链接而非文件;
- -r递归复制目录;
- -f强制;
- -i复制询问,存在是否覆盖,常用;
- -l进行硬是连接,而非复制文件;
rm [参数] 文件或目录
- -f,强制,忽略警告信息;
- -i,互动模式;
- -r递归删除;
mv [参数] 移动目录或修改目录名称;
- -f强制,不询问直接覆盖;
- -i交互模式,询问;
- -u若文件存在,且变更,才更新;
2.3文件属性
使用ll或ls -al查看文件权限,十个字母代表文件类型和权限;第一个字母,d代表目录,-代表文件;第二个字母;后面九个字母每三个为一组,代表属主用户权限,属于组用户权限,其他用户权限(r表示读权限,w表示写权限,x表示执行权限);
文件或目录权限设置(r权限4,w权限为2,x权限为1)
chmod 权限(777) 文件或目录
2.4用户管理
useradd [参数] 用户名;
- -c 注释描述;
- -g指定用户组;
- -G指定用户附加组;
- -m使用者目录不存在,则自动创建;
- -u 指定用户号;
- -d指定用户主目录;
- -s指定用户登录shell;
su 用户名 (切换登录用户,也可以logout或exit退出,再登录)
用户创建时,没有口令,需要指定口令,才能使用(即使空,也要指定,口令不能设置过于简单,否则会设置失败);
在root账号下,通过,
passwd 用户名 (指定口令)
在当前用户下,通过passwd 修改口令;
usermod [参数] 用户名;(修改用户)
参数,同创建参数。
userdel [参数] 用户名;(删除用户)
- -r 删除用户时,同时删除用户主目录;
可以查看/etc/passwd文件,查看所有添加的用户;(用户的操作,本质上就是对此文件的操作)
口令一般不显示,使用x代表,;
2.5用户组管理
groupadd [参数] 用户组名;(新增)
- -g用户组标识号
- -o一般与-g同时使用,标识新用户组标识可以与存在标识相同;
groupmod [参数] 用户名;(修改)
- -g用户组标识;
- -o可以与存在标识相同;
- -n 新用户组名;
groupdel 用户组名 (删除)
用户组所有信息,均在/etc/group下;
newgrp 组名 (当前用户切换组)
2.6文件命令
2.6.1文件查看
- cat 从第一行开始查看文件;
- tac从最后一行开始倒看文件;
- nl 显示的时候显示行号;
- more 一页一页显示文件内容;
- less 也是一页页显示文件内容,但是可以进行翻页;
- head 只看头几行;
- tail 只看后几行;
可以使用man命令来查看各个命令的使用文档;
cat [参数] 文件;
- -b 列出非空行号;
- -n列出所有行号;
- -v列出一些看不出的特殊字符;
tac 倒看
nl [参数] 文件;
- -n 行号在左边(ln 行号在最左边显示,rn行号在栏位右上方显示);
more 一页页翻动;
- 空白键 向下翻一页;
- enter键,向下翻一行;
- /关键字 在当前显示中,搜索这个关键字;
- :f显示档名和行号;
- q离开;
less 一页页翻看;
- 空白键 向下翻页;
- pagedown向下翻页;
- pageup向上翻页;
- /字符串 ,向下搜寻字符串;
- ?字符串向上搜寻字符串;
- n 重复前一个搜寻,一直向下搜索;
- q离开程序
head -n 行数 (只显示前几行);
tail -n 行数(只显示后几行);
2.6.2文件链接
linux文件链接分硬链接和软链接;
硬链接,是将多个文件指向同一个索引。只有当所有的文件链接都删除时,文件才会被删除,通常用来作为文件备份;软链接,类似与windows是快捷方式,文件删除了,链接便无效了。
通过ln命令进行链接;
ln [参数] 指向的文件 链接名(不指定参数,则是硬链接);
- -s 软连接;
2.7进程管理
linux每一个程序都有一个进程,有进程号,有自己的父进程;进程有前台运行和后太运行两种方式;
ps [参数] 查看系统进行中的进程
- -a 显示终端运行的所有进程信息;
- -u 以用户信息显示进程
- -x 显示后台运行进程
进程查看需要记住这个命令,即可:
ps -aux | grep 关键字
A|B 中 |代表管道符,即在A中进行B操作,grep表示查找符号关键字的A中信息;
ps -ef 查看父进程信息
进程树显示
pstree 参数
- -p 显示父id
- -u显示用户组
2.8 磁盘管理
磁盘管理常用命令:
df(Disk freee)统计磁盘剩余空间,从磁盘信息获取;
du (Disk used)直接统计文件或目录已使用的空间;
df [参数] 文件或目录名
- -a列出所有文件系统空间,包括/proc
- -k 以kb显示空间
- -m以MB显示空间
- H以1M=1000K取代1M=1024显示文件系统;
- -h 以容易阅读方式获取文件系统大小
- -T显示文件系统类型
du [参数] 目录或文件
- -a列出所有文件与目录,默认只显示当前目录;
- -h 以容易阅读格式获取文件大小
- -s列出总量
磁盘挂载
mount [文件系统/文件名] 挂载点
磁盘卸载
umount [参数] 装置文件名或挂载点
- -f强制卸载
2.9 vim使用
vim三种模式
命令模式,启动vim,就会进入命令模式,
- i 切换到输入模式,以输入字符
- x 删除光标所在字符
- :切换到编辑模
输入模式,ESC退出输入模式;
编辑模式(底线命令模式),q退出vim,w保存文件
一些常用命令:
- 数字+空格:光标前往本行指定数字字符;
- /字符串:向下搜索字符串,n键继续向下搜索;
- :set nu :显示行号;
2.10 linux三种软件安装方式
2.10.1rpm安装 jdk
1、检查是否安装了openjdk存在,存在则先删除;
查找所有jdk相关的包:
rpm -qa | grep java
删除这两个open jdk的包:
rpm -e --nodeps 包名
2、卸载完成后,安装oracle jdk
安装命令
rpm -ivh rpm包
安装完成,编辑/etc/profile文件, 增加java环境变量
让新增的环境变量生效,命令:
source /etc/profile
2.10.2 解压安装tomcat
1、将压缩文件放在usr目录下,进行解压;
解压命令
tar -zxvf 压缩文件
2、运行bin/startup.sh启动tomcat
访问tomcat
配置防火墙端口,以及云服务器安全组就可以在浏览器访问到tomcat了
3、关闭tomcat,执行/bin/shutdown.sh
2.10.3 yum安装docker
1、查看centos版本(需要7或8版本)
cat /etc/redhat-release
2、更新yum 包
sudo yum install -y yum-utils
3、设置yum源为阿里云(加快下载速度)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、yum安装gcc
yum -y install gcc
yum -y install gcc-c++
5、安装docker CE
yum -y install docker-ce docker-ce-cli containerd.io
6、启动docker,查看docker版本
systemctl start docker
yum list docker-ce --showduplicates | sort -r (查看安装后的 Docker 驱动版本)
7、配置阿里云镜像加速
进入阿里云容器镜像服务,按照步骤执行命令进行配置,即可
8、测试 hello-world
docker run hello-world
docker images
docker ps -a
2.11 linux防火墙命令
查看防火墙状态:
systemctl status firewalld
关闭防火墙
service firewalld stop
启动防火墙
service firewalld start
重启防火墙
service firewalld restart
查看防火墙规则
firewall-cmd --list-all (查看防火墙所有信息)
firewall-cmd --list-ports (只看端口信息)
开启防火墙端口命令
firewall-cmd --zone=public --add-port=80/tcp --permanent
- –zone #作用域
- –add-port=80/tcp #添加端口,端口/协议
- –permanent #永久生效
查看某个端口号情况
netstat -lnp | grep 8080