Linux的基本使用
文章目录1. Linux安装1.1 安装方式介绍1.2安装Linux1.3 网卡设置1.4 安装SSH连接工具FinalShell下载安装连接Linux2. Linux目录结构3. Linux系统版本4. Linux常用命令4.1 Linux基础命令4.1.1 常用命令4.1.2 Linux命令使用技巧4.1.3 Linux命令格式4.2 文件目录命令4.2.1 ls 显示4.2.2 cd 切换目
文章目录
1. Linux安装
1.1 安装方式介绍
Linux系统的安装方式,主要包含以下两种:
方式 | 概述 | 场景 |
---|---|---|
物理机安装 | 直接将操作系统安装到服务器硬件上 | 企业开发中,我们使用的服务器基本都是采用这种方式 |
虚拟机安装 | 通过虚拟机软件安装 | 我们在学习阶段,没有自己服务器,而我们又需要学Linux,就可以安装在虚拟机上 |
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件:
- VMWare
- VirtualBox
- VMLite WorkStation
- Qemu
- HopeddotVOS
那么我们就可以在课程中将Linux操作系统安装在虚拟机中,我们课上选择的虚拟机软件是VMware。
1.2安装Linux
VMware虚拟机安装完毕之后,我们就可以打开VMware,并在上面来安装Linux操作系统。具体步骤如下:
启动虚拟机->选择"Install CentOS7"->选择语言为 “简体中文”->选择"自动配置分区"
1.3 网卡设置
服务器重启完成之后,我们可以通过linux的指令 ip addr
来查询Linux系统的IP地址,具体信息如下:
从图中看到,并没有获取到linux系统的IP地址,于启动服务器时未加载网卡,导致IP地址初始化失败而造成的。需要来修改网络初始化配置,设定网卡在系统启动时初始化。
具体操作步骤如下:
1). 修改网卡的配置项
vim /etc/sysconfig/network-scripts/ifcfg-ens33
cd / 进入根目录
cd etc 进入etc目录
cd sysconfig 进入sysconfig目录
cd network-scripts 进入network-scripts
vi ifcfg-ens33 编辑ifcfg-ens33文件
进入文件后执行如下操作:
①. 按 i 键 进入编辑状态
②. 按↑↓键来移动光标, 删除no,输入yes
③. 按 ESC 键
④. 输入 :wq
⑤. 按 ENTER 保存退出
1.4 安装SSH连接工具
FinalShell下载安装
默认安装即可
连接Linux
1). 打开finalShell
2). 建立连接
3). 输入Linux的IP地址与用户名和密码
2. Linux目录结构
登录到Linux系统之后,我们需要先来熟悉一下Linux的目录结构。在Linux系统中,也是存在目录的概念的,但是Linux的目录结构和Windows的目录结构是存在比较多的差异的 在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目录是归属于某一个盘符的。Linux系统中的目录有以下特点:
-
/ 是所有目录的顶点
-
目录结构像一颗倒挂的树
Linux 和 Windows的目录结构对比:
Linux的目录结构,如下:
根目录/ 下各个目录的作用及含义说明:
编号 | 目录 | 含义 |
---|---|---|
1 | /bin | 存放二进制可执行文件 |
2 | /boot | 存放系统引导时使用的各种文件 |
3 | /dev | 存放设备文件 |
4 | /etc | 存放系统配置文件 |
5 | /home | 存放系统用户的文件 |
6 | /lib | 存放程序运行所需的共享库和内核模块 |
7 | /opt | 额外安装的可选应用程序包所放置的位置 |
8 | /root | 超级用户目录 |
9 | /sbin | 存放二进制可执行文件,只有root用户才能访问 |
10 | /tmp | 存放临时文件 |
11 | /usr | 存放系统应用程序 |
12 | /var | 存放运行时需要改变数据的文件,例如日志文件 |
3. Linux系统版本
Linux系统的版本分为两种,分别是: 内核版 和 发行版。
1). 内核版
-
由Linus Torvalds及其团队开发、维护
-
免费、开源
-
负责控制硬件
2). 发行版
-
基于Linux内核版进行扩展
-
由各个Linux厂商开发、维护
-
有收费版本和免费版本
常用的Linux操作系统选择的是Linux的发行版本。在linux系统中,有各种各样的发行版本,具体如下:
发行版本 | 特点 |
---|---|
Ubuntu | 以桌面应用为主 |
RedHat | 应用最广泛、收费 |
CentOS | RedHat的社区版、免费 |
openSUSE | 对个人完全免费、图形界面华丽 |
Fedora | 功能完备、快速更新、免费 |
红旗Linux | 北京中科红旗软件技术有限公司开发 |
除了上述罗列出来的发行版,还有很多Linux发行版。
4. Linux常用命令
4.1 常用命令
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
1 | ls [参数] [目录名] | list | 查看当前目录下的内容 |
2 | pwd | print work directory | 查看当前所在目录 |
3 | cd [目录名] | change directory | 切换目录 |
4 | touch [文件名] | touch | 如果文件不存在,创建文件 |
5 | mkdir [-p] [目录名] | make directory | 创建目录 |
6 | rm [-r] [文件名] | remove | 删除指定文件 |
7 | ps [-ef] | process status | 显示当前系统所有进程状态 |
8 | kill [-15] [进程号] | kill | 结束执行中的程序或工作 |
9 | tail [-f] [文件名] | tail | 动态读文件尾数据 |
10 | rpm [参数] [软件名] | Red-Hat Package Manager | 管理软件 |
11 | nohup [jar包名].jar &> [日志名].log & | no hang up | 程序后台运行,日志输出到文件 |
12 | chmod 777 [文件名] | change mode | 为所有用户授予读、写、执行权限 |
4.1.2 Linux命令使用技巧
在我们使用Linux系统命令时,可以使用以下几个技巧:
1). Tab
键自动补全
2). 连续两次Tab
键,给出操作提示
3). 使用上下箭头快速调出历史的命令
4). 使用clear
命令或者Ctrl+l
快捷键实现清屏
4.1.3 Linux命令格式
command [-options] [parameter]
说明:
command: 命令名
[-options]: 选项,可用来对命令进行控制,也可以省略
[parameter]: 传给命令的参数,可以是零个、一个或者多个
注意:
[] 代表可选
命令名、选项、参数之间有空格进行分隔
操作示例:
4.2 文件目录命令
4.2.1 ls 显示
作用: 显示指定目录下的内容
语法: ls [-al] [dir]
说明:
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出
注意:
由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll
常见用法:
ls -al 查看当前目录的所有文件及目录详细信息
ls -al /etc 查看/etc目录下所有文件及目录详细信息
ll 查看当前目录文件及目录的详细信息
4.2.2 cd 切换目录
作用: 用于切换当前工作目录,即进入指定目录
语法: cd [dirName]
特殊说明:
~ 表示用户的home目录
. 表示目前所在的目录
.. 表示目前目录位置的上级目录
举例:
cd .. 切换到当前目录的上级目录
cd ~ 切换到用户的home目录
cd /usr/local 切换到/usr/local目录
cd ../.. 来切换到上级目录的上级目录。
备注:
用户的home目录
root用户 /root
其他用户 /home/xxx
4.2.3 cat 读文件
作用: 用于显示文件内容
语法: cat [-n] fileName
说明:
-n: 由1开始对所有输出的行数编号
举例:
cat /etc/profile 查看/etc目录下的profile文件内容
cat 指令会一次性查看文件的所有内容,如果文件内容比较多,这个时候查看起来就不是很方便了,这个时候我们可以通过一个新的指令more。
4.2.4 more 分页读文件
作用: 以分页的形式显示文件内容
语法: more fileName
操作说明:
[Enter] 向下滚动一行
[space] 向下滚动一屏
b 返回上一屏
q/Ctrl+C 退出more
举例:
more /etc/profile 以分页方式显示/etc目录下的profile文件内容
比较大的文件时,可能需要经常查询文件尾部的数据信息,需要一直向下翻页,直到最后一页,去看最新添加的数据,这种方式就适合使用tail
指令。
4.2.5 tail 动态读文件尾、读文件尾
作用: 查看文件末尾的内容
语法: tail [-f] fileName
说明:
-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出
tail /etc/profile 显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile 显示/etc目录下的profile文件末尾20行的内容
tail -f /itcast/my.log 动态读取/itcast目录下的my.log文件末尾内容并显示
使用快捷键 Ctrl+C , 结束当前进程。
4.2.6 mkdir 创建目录
作用: 创建目录
语法: mkdir [-p] dirName
说明:
-p: 确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建
举例:
mkdir whr在当前目录下,建立一个名为itcast的子目录
mkdir -p whr/test 在工作目录下的whr目录中建立一个名为test的子目录,若whr目录不存在,则建立一个
4.2.7 rmdir
不能删除非空目录
作用: 删除空目录
语法: rmdir [-p] dirName
说明:
-p: 当子目录被删除后使父目录为空目录的话,则一并删除
举例:
rmdir whr删除名为whr的空目录
rmdir -p whr/test 删除whr目录中名为test的子目录,若test目录删除后whr目录变为空目录,则也被删除
rmdir whr* 删除名称以whr开始的空目录
*: 是一个通配符,代表任意字符;
rmdir whr* : 删除以itcast开头的目录
rmdir *whr : 删除以itcast结尾的目录
4.2.8 rm
作用: 删除文件或者目录
语法: rm [-rf] name
说明:
-r: 将目录及目录中所有文件(目录)逐一删除,即递归删除
-f: 无需确认,直接删除
举例:
rm -r itcast/ 删除名为itcast的目录和目录中所有文件,删除前需确认
rm -rf itcast/ 无需确认,直接删除名为itcast的目录和目录中所有文件
rm -f hello.txt 无需确认,直接删除hello.txt文件
注意: 对于 rm -rf xxx 这样的指令,在执行的时候,一定要慎重,确认无误后再进行删除,避免误删。
4.3 拷贝移动命令
4.3.1 cp 拷贝、重命名
作用: 用于复制文件或目录
语法: cp [-r] source dest
说明:
-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件
举例:
cp hello.txt whr/ 将hello.txt复制到whr目录中
cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt
cp -r whr/ ./test/ 将whr目录和目录下所有文件复制到test目录下
cp -r whr/* ./test/ 将whr目录下所有文件复制到test目录下
4.3.2 mv 移动、重命名
作用: 为文件或目录改名、或将文件或目录移动到其它位置
语法: mv source dest
举例:
mv hello.txt hi.txt 将hello.txt改名为hi.txt
mv hi.txt whr/ 将文件hi.txt移动到whr目录中
mv hi.txt whr/hello.txt 将hi.txt移动到whr目录中,并改名为hello.txt
mv whr/ test/ 如果test目录不存在,将whr目录改名为test
mv whr/ test/ 如果test目录存在,将whr目录移动到test目录中
4.4 tar -zxvf 压缩包命令
作用: 对文件进行打包、解包、压缩、解压
语法: tar [-zcxvf] fileName [files]
包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz表示打包的同时还进行了压缩
说明:
-z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
-c: c代表的是create,即创建新的包文件
-x: x代表的是extract,实现从包文件中还原文件
-v: v代表的是verbose,显示命令的执行过程
-f: f代表的是file,用于指定包文件的名称
举例:
打包
tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
tar -zcvf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
解包
tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
解包并指定目录
tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
4.5 文本编辑命令
文本编辑的命令,主要包含两个: vi 和 vim,两个命令的用法类似
4.5.1 vi&vim介绍
作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本
语法: vi fileName
说明:
1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。
2). 要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:yum install vim
4.5.2 vim安装
命令: yum install vim
安装过程中,有确认提示,此时输入 y,回车,继续安装:
4.5.3 vim使用
作用: 对文件内容进行编辑,vim其实就是一个文本编辑器
语法: vim fileName
说明:
- 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
- vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。
三种模式:
-
命令模式
- 命令模式下可以查看文件内容、移动光标(上下左右箭头、gg、G)
- 通过vim命令打开文件后,默认进入命令模式
- 另外两种模式需要首先进入命令模式,才能进入彼此
命令模式指令 含义 gg 定位到文本内容的第一行 G 定位到文本内容的最后一行 dd 删除光标所在行的数据 ndd 删除当前光标所在行及之后的n行数据 u 撤销操作 shift+zz 保存并退出 i 或 a 或 o 进入插入模式 -
插入模式
- 插入模式下可以对文件内容进行编辑
- 在命令模式下按下
[i,a,o]
任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样 - 在插入模式下按下ESC键,回到命令模式
-
底行模式
- 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
- 在命令模式下按下
[:,/]
任意一个,可以进入底行模式 - 通过
/
方式进入底行模式后,可以对文件内容进行查找 - 通过
:
方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)
底行模式命令 含义 :wq 保存并退出 :q! 不保存退出 :set nu 显示行号 :set nonu 取消行号显示 :n 定位到第n行, 如 :10 就是定位到第10行
4.6 find、grep查找命令
4.6.1 find
作用: 在指定目录下查找文件
语法: find dirName -option fileName
举例:
find . –name "*.java" 在当前目录及其子目录下查找.java结尾文件
find /whr-name "*.java" 在/whr目录及其子目录下查找.java结尾的文件
4.6.2 grep
作用: 从指定文件中查找指定的文本内容
语法: grep word fileName
举例:
grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置
4.7 ps 进程命令
作用: 显示当前系统的进程状态
语法: ps [-ef]
举例:
ps -ef|grep tomcat 查找当前进程中名字包含tomcat的进程
ps -u root 显示指定用户信息
- ps命令是linux下非常强大的进程查看命令,通过ps -ef可以查看当前运行的所有进程的详细信息
- “|” 在Linux中称为管道符,可以将前一个命令的结果输出给后一个命令作为输入
- 使用ps命令查看进程时,经常配合管道符和查找命令 grep 一起使用,来查看特定进程
4.8 kill 结束命令
作用: 显示当前系统的进程状态
语法: kill [-9] uuid
举例:
kill -9 79947 强制结束进程号为79947的进程
kill -15 79947 正常关闭进程号为79947的进程
4.9 rpm 管理软件包命令
作用: 显示当前系统的进程状态
语法: rpm [参数] [软件包名]
举例:
rpm -qa 查询当前系统中安装的所有软件
rpm -qa | grep mysql 查询当前系统带mysql名称的软件
rpm -e --nodeps [软件包名] 卸载软件
rpm -U file.rpm 升级软件包
4.10 netstat 网络相关信息命令
作用: 用来打印Linux中网络系统的状态信息,Linux系统的网络情况
语法: rnetstat -tunlp
说明:
-l或--listening:显示监控中的服务器的Socket;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
举例:
netstat -tunlp 查看已经启动的服务
netstat -tunlp | grep mysql 查看mysql的服务信息
ps –ef | grep mysql 查看mysql进程
4.11 yum 在线软件安装方式
作用: 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)
语法: yum
举例:
yum list lrzsz 列出lrzsz安装包
yum install lrzsz 在线安装git
yum update 升级现有软件及系统内核
yum拓展知识:
1. 如果在不更改软件来源的情况下,是需要联网才能使用yum的,那么我们安装的软件是从哪儿下载的呢,这里就涉及到一个概念: yum源。
2. 我们可以通过一个指令,来检查当前的yum源
从图中,我们可以看到我们安装的 CentOS7 采用的是网易的163yum源。
3. 网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为"*.repo"
可以看到,该目录下有 7 个 yum 配置文件,通常情况下 CentOS-Base.repo 文件生效。
4. 添加阿里云yum源
A. 先通过
yum install wget
,安装wget命令 B. 备份默认的网易163的yum源,执行指令 :
切换目录:
cd /etc/yum.repos.d/
创建备份目录:
mkdir bak
移动现有的yum源文件到bak:
mv *.repo bak/
C. 下载阿里云的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
D. 执行命令,重新生成cache
yum clean all
yum makecache
E. 再次查看yum源
之后,我们通过yum指令安装软件,就是从阿里云下载的。
4.12 nohup 不挂断地运行指定命令
作用: 用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法: nohup Command [ Arg … ] [&]
参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
举例:
nohup java -jar boot工程.jar &> hello.log &
上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件
5. 防火墙操作
防火墙自动启动,防火墙拦截了所有端口的访问。操作防火墙,具体指令如下:
操作 | 指令 | 备注 |
---|---|---|
查看防火墙状态 | systemctl status firewalld / firewall-cmd --state | |
暂时关闭防火墙 | systemctl stop firewalld | |
永久关闭防火墙(禁用开机自启) | systemctl disable firewalld | 下次启动,才生效 |
暂时开启防火墙 | systemctl start firewalld | |
永久开启防火墙(启用开机自启) | systemctl enable firewalld | 下次启动,才生效 |
开放指定端口 | firewall-cmd --zone=public --add-port=8080/tcp --permanent | 需要重新加载生效 |
关闭指定端口 | firewall-cmd --zone=public --remove-port=8080/tcp --permanent | 需要重新加载生效 |
立即生效(重新加载) | firewall-cmd --reload | |
查看开放端口 | firewall-cmd --zone=public --list-ports | |
查看网络连接状态和监听端口 | netstat -tuln |
注意:
A. systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作
B. firewall-cmd是Linux中专门用于控制防火墙的命令
C. 为了保证系统安全,服务器的防火墙不建议关闭
6. Linux权限
linux系统是一个多用户的操作系统,并且针对每一个用户,Linux会严格的控制操作权限。
1). chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
2). Linux中的权限分为三种 :读( r )、写(w)、执行(x)
3). Linux文件权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
4). 只有文件的所有者和超级用户可以修改文件或目录的权限
5). 要执行Shell脚本需要有对此脚本文件的执行权限(x),如果没有则不能执行
Linux系统中权限描述如下:
解析当前脚本的权限情况:
chmod命令可以使用八进制数来指定权限(0 - 代表无 , 1 - 执行x , 2 - 写w , 4 - 读r):
值 | 权限 | rwx |
---|---|---|
7 | 读 + 写 + 执行 | rwx |
6 | 读 + 写 | rw- |
5 | 读 + 执行 | r-x |
4 | 只读 | r– |
3 | 写 + 执行 | -wx |
2 | 只写 | -w- |
1 | 只执行 | –x |
0 | 无 | — |
举例:
chmod 777 bootStart.sh 为所有用户授予读、写、执行权限
chmod 755 bootStart.sh 为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
chmod 210 bootStart.sh 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
注意:
三个数字分别代表不同用户的权限
- 第1位表示文件拥有者的权限
- 第2位表示同组用户的权限
- 第3位表示其他用户的权限
7. 设置静态IP
1). 设置静态IP
设置静态ip,我们就需要修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置文件,内容如下:
TYPE=Ethernet #设备类型
PROXY_METHOD=none
BROWSER_ONLY=no
#是否启动DPCH:none为禁止使用;static是使用静态ip;DPCH为使用DPCH服务
#如果要设定多网口绑定bond,必须为none
BOOTPROTO=static
IPADDR="192.168.30.100" # 设置的静态IP地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.30.2" # 网关地址
DNS1="192.168.30.2" # DNS1服务器
DNS2="192.168.30.3" # DNS2服务器
DEFROUTE=yes #default route 是否把这个网卡设置为ipv4默认路由
IPV4_FAILURE_FATAL=no #如果ipv4设置失败则禁用设备
IPV6INIT=yes #是否使用ipv6
IPV6_AUTOCONF=yes #ipv6自动配置
IPV6_DEFROUTE=yes #是否把这个网卡设置为ipv6默认路由
IPV6_FAILURE_FATAL=no #如果ipv6设置失败则禁用设备
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 #网络连接的名字
UUID=afd0baa3-8bf4-4e26-8d20-5bc426b75fd6 #随机的唯一标识
DEVICE=ens33 #网卡名称
ONBOOT=yes #启动或重启是否启动该设备
ZONE=public
上述我们所设置的网段为30,需要和我们虚拟机中的虚拟网络编辑器中的NAT模式配置的网关保持一致。
2). 重启网络服务
ip地址修改完毕之后,需要重启网络服务,执行如下指令:
systemctl restart network
注意:重启完网络服务后ip地址已经发生了改变,此时FinalShell已经连接不上Linux系统,需要修改当前连接IP地址才能连接到Linux。
更多推荐
所有评论(0)