admin 管理员组

文章数量: 887021

Linux课堂笔记

1、Linux概述

1.1 Linux简介

Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(可移植操作系统)的多用户、多任务、支持多线程和多CPU的操作系统。

Unix:是于20世纪70年代产生出现的一个操作系统。根Windows不同的是它除了能够作为网络操作系统(是一种向网络计算机提供服务的操作系统)外,还能够作为单机操作系统。

有趣的是,Linux内核最初只是由芬兰人林纳斯·托瓦兹于个人爱好而编写的。

1.2 Linux版本

Linux分为两种版本:内核版本发行版本

  • 内核版本是指,在Linux领导下的内核小组开发维护的系统内核的版本号。

  • 发行版本是指,它由公司或者组织自行发行版的不同而自定的一种规章或者章程。在于它是由公司自身使用Linux版本来对外公开。简单点说就是将Linux内核与应用软件做一个打包。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、 Arch Linux、SolusOS等。

1.3 Linux应用

Linux在服务器系统、嵌入式系统、桌面应用系统、移动手持系统都有较为广泛的应用。

比如说,目前我们电脑上常用的windows操作系统相较于Linux而言,不是很适合做服务器一类。Linux在这方面优势巨大。

2、Linux安装

2.1 虚拟机安装

虚拟机:顾名思义,就是虚拟的电脑,用软件虚拟出来电脑。虚拟机软件也有多种,例如有免费的virtualBox、收费的VMware

2.2 CentOS安装

如上面介绍,CentOS是Linux的其中一种。将CentOS配置在虚拟机中,就可以虚拟的在一台计算机使用Linux系统。

3、Linux远程访问

Linux远程访问在于连接电脑PC和虚拟机之间的IP,在Windows下可以用各种命令操作虚拟机。

远程访问工具有很多,基本都是大同小异。小编选择的是的工具是SecureCTR。

4、Linux目录结构

在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 … 来表示。

. :代表当前的目录,也可以使用 ./ 来表示;

… :代表上一层目录,也可以 …/来代表。

如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。

5、Linux用户

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

5.1 linux的用户账号

用户账号一般分为两大类:超级管理员普通管理员

  • 超级管理员用root表示,root用户在系统中具有最高权限。
  • 普通用户是除了root之外的用户。

5.2 查看用户信息

#语法 cat /etc/passwd

6、常用命令

6.1 Linux目录管理

Linux的目录结构为树状结构,其中最顶级的目录为根目录/。

其他目录可以通过挂载将它们添加到树中,通过解除挂载可以移除它们。

绝对路径:由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd
../man 这就是相对路径的写法。
6.1.1 查看目录
ls :查看当前路径下的文件名称
ls -a:全部的文件,连同隐藏文件一起列出来
ls -d:仅仅列出目录本身,而不是列出目录内的文件数据
ls -l:长数据串列出,包含文件的属性与权限等等数据
ll:等价于ls -l
ls -al:目录下所有文件列出来
6.1.2 切换目录

cdChange Directory的缩写,这是用来变换工作目录的命令。

语法:
cd [相对路径或绝对路径]
#使用绝对路径切换到 local 目录
cd /usr/local/
# 表示回到自己的家目录,亦即是 /root 这个目录
cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
cd ..
6.1.3 显示当前的目录

pwdPrint Working Directory 的缩写,也就是显示目前所在目录的命令。

语法:
pwd
6.1.4 创建目录

mkdir(make directory)用来创建新的目录

语法:mkdir [-mp] 目录名称
-m :配置文件的权限喔!直接配置,不需要看默认权限的脸色
-p :直接将所需要的目录(包含上一级目录)递归创建起来!
查看帮助 mkdir --help
示例:/tmp底下尝试创建数个新目录看看:
cd /tmp
mkdir kkb <==创建一名为 kkb 的新目录
mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 没办法直接创建此目录啊!
mkdir -p test1/test2/test3/test4
加了这个 -p 的选项,可以自行帮你创建多层目录!
6.1.5 删除目录

rmdir命令用来删除空的目录

语法: rmdir [-p] 目录名称
-p :连同上一级『空的』目录也一起删除

6.2 文件操作

6.2.1 查看文件内容
6.2.1.1 cat查看所有的内容
语法:cat 由第一行开始显示文件内容
6.2.1.2 more 一页一页的显示文件内容
一页一页翻动
语法: more 文件名称
例如:more /etc/man_db.config
....(中间省略)....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令
在 more 这个程序的运行过程中,你有几个按键可以按的:
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
6.2.1.3 less 一页一页翻动
语法: less 文件名称
例如:less /etc/man.config
....(中间省略)....
: <== 这里可以等待你输入命令!
less运行时可以输入的命令有:
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
q :离开 less 这个程序;
6.2.2 创建文件
语法:touch 创建一个空白的普通文件

//跟前面不同的是,mkdir是用来创建目录的(可以记全称);touch是创建一个空白的文件

#示例:
[root@centoslina01 /]# cd kkb
[root@centoslina01 kkb]# touch lina01.txt
[root@centoslina01 kkb]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 11 10:08 lina01.txt
[root@centoslina01 kkb]#
6.2.3 写入内容

echo将内容重定向到在指定的文件中去。意思在于无则创建,有则打开。

语法: echo '内容'>文件名称 覆盖模式
echo '内容'>>文件名称 追加模式

覆盖模式在于会覆盖前面的内容,追加模式是不会影响原来内容并填入新加的内容于后面。

#示例:
[root@centoslina01 kkb]# echo 'jiaobaoyu'>lina01.txt
[root@centoslina01 kkb]# echo 'jiaobaoyu'>lina01.txt
[root@centoslina01 kkb]# cat lina01.txt
jiaobaoyu
[root@centoslina01 kkb]# echo 'jiaobaoyu'>>lina02.txt
[root@centoslina01 kkb]# echo 'jiaobaoyu'>>lina02.txt
[root@centoslina01 kkb]# cat lina02.txt
jiaobaoyu
jiaobaoyu
[root@centoslina01 kkb]#
6.2.4 复制/拷贝文件

cp,就是copy的简写。

语法: cp [-adfilprsu] 来源档(source) 目标档(destination)
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若clear问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
6.2.5 移动文件

mv就是move的简写,它可以移动文件与目录,或者修改名称。

语法:
mv [-fiu] source destination
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
示例:复制一文件,创建一目录,将文件移动到目录中
cd /tmp
cp ~/.bashrc bashrc
mkdir mvtest
mv lina mvtest
将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2
6.2.6 删除文件

rm就是remove的简写,可以进行删除文件或者目录。

语法: rm [-fir] 文件或目录
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

6.3 打包与拆包

一般而言,Linux使用tar来完成将许多文件打包成一个文件压缩的任务。并且再以gzip压缩命令压缩成xxx.tar.gz或者是xxx.tgz的格式。

常用参数:

-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip 压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar 文件
打包:tar -cvf xxx.tar 要打包的文件或目录的列表,用空格隔开
打包并且压缩:tar -zcvf xxx.tar.gz 要打包的文件或目录的列表,用空格隔开
解压:tar -xvf xx.tar
tar -zxvf xx.tar.gz -C /usr/kkb 注意-C大写,防止拆包解压的路径找不到

6.4 其他命令

6.4.1 查看进程快照
ps- axu 显示当前进程的快照
查看Java进程:ps - axu | grep java
查看MySQL进程 ps - axu | grep mysql
6.4.2 管道 |

管道就像连起来的管子一样将一端连在其他管子的另一端。将一个命令的输出来作为另一个命令的输入

ls --help | more #分页查看帮助信息,管道后面输入more后直接按q即可推出

7、VIM编辑器

7.1 VIM模式

vim分为三种模式:命令模式、输入模式和底线命令模式。

7.1.1 命令模式

用户在启动vi/vim后就进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被
当作了一个命令。
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。i
: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
7.1.2 输入模式

在命令模式后,按下i键后进入输入模式

在输入模式中,可以使用以下按键:
字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式
7.1.3 底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式
! 强制命令
实例:
:q! 强制退出且不保存
:wq 保存后退出

8、Linux文件权限

Linux操作系统中对权限的管理很严格。Linux系统中不仅是对用户与组根据UIDGID进行了管理,还对 Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件和目录进行访问和操作。

8.1 文件权限

用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。

8.2 修改文件权限

chown 是change owner的意思,主要作用就是改变文件或者目录所有者.
chmod 修改文件和文件夹读写执行属性。 使用权限:所有使用者
chown 修改文件和文件夹的用户和用户组属性。使用权限:root
8.2.1 mode方式
语法:chmod who opt per file
who:u g o a(all)(u 用户user ,g用户组group,o其他用户,a所有用户默认)
opt:+添加某个权限 –取消某个权限 =赋予权限
per:r w x X
实例:
chmod u=rwx,g=r lina03.txt
chmod u+x,g+w,o+w test.log //r 读,w 写 x 执行
8.2.2 数字方式
语法:chmod XXX file
rwx rw- r–-
421 420 400
7 6 4
0无权限,1表可执行=x,2表写入权限=w,4表可读权限=r
例如:-rwxr--r--. 1 root root 10 Oct 16 02:55 yhp.log
用户权限=rwx=4+2+1=7
所属组权限=r--=4+0+0=4
其他用户权限=r--=4+0+0=4
组合:744
修改权限:
都加入写入权限:+2
给用户组加入写入权限:+2
给其他用户加入可执行权限:+1
chmod 765 yhp.log

9、Linux常用网络操作

9.1 主机名操作

hostname :显示主机名
hostname XXX :修改主机名,不推荐,临时生效
永久生效修改主机名需要修改/etc/sysconfig/network文件

9.2 查询系统完整信息

uname -a :显示完整的系统信息

9.3 IP地址操作

查看IP地址:ip addr 
修改IP地址:修改/etc/sysconfig/network-scripts/
重启网络服务:service network restart

9.4 域名映射

修改 /etc/hosts文件

9.5网络服务管理

查看网络服务状态:systemctl status network
启动网络服务:systemctl start network
停止网络服务:systemctl stop network
重启网络服务:systemctl restart network
设置开机启动:systemctl enable network

9.6 防火墙设置

查看防火墙状态: systemctl status firewalld
启动防火墙: systemctl start firewalld
关闭防火墙: systemctl stop firewalld
查询防火墙服务是否开机启动:systemctl is-enabled firewalld
开机时启用防火墙服务:systemctl enable firewalld
开机时禁用防火墙服务:systemctl disable firewalld
查询已经启动的服务列表:systemctl list-unit-files|grep enabled
查询启动失败的服务列表:systemctl --failed

10、Linux上部署Web项目(示例)

10.1 远程上传工具使用

使用SecureFXSecureCRT分别完成对linux虚拟机ip地址的连接。

首先,在Linux下知道虚拟机所处的ip地址

#ifconfig

连接成功后再登入SecureFX传输文件(文章中新建文件夹mysoft于根目录下,并将包直接拖拽到mysoft下)。

10.2 jdk的部署

10.2.1 解压&查看
# tar -zxvf jdk包全程

一般而言,新建包下只有两个文件,直接用Tab键即可快速写完jdk全称

其次,通过查看该目录下的文件详情

进入根目录下的mysoft:     # cd /mysoft
查看文件下信息:           # ll 
在jdk下bin目录查看详情:  #cd bin/
查看版本号(切记加点)    #./java -version

10.2.2 配置环境变量

首先进入vim进入如下第二张图。

在文件中输入以下信息(切记,等号左右不要留空格):

export JAVA_HOME=/mysoft/jdk1.8.0_11
export PATH=$PATH:$JAVA_HOME/bin

回到第一张图后,加载资源配置并启动。最后就可以在根目录查看Java版本号(第三张图片)了

自此 jdk暂时配置完成。

10.3 Tomcat部署

10.3.1 启动tomcat

先解压过后,启动tomcat

10.3.2 关闭防火墙

输入如下前两行代码。

[root@localhost bin]# systemctl stop firewalld
[root@localhost bin]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 三 2021-08-25 08:59:43 CST; 15s ago
  Process: 973 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 973 (code=exited, status=0/SUCCESS)

8月 25 08:05:01 localhost.localdomain systemd[1]: Starting firewalld - dynamic firew....
8月 25 08:12:09 localhost.localdomain systemd[1]: Started firewalld - dynamic firewa....
8月 25 08:59:40 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firew....
8月 25 08:59:43 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewa....
Hint: Some lines were ellipsized, use -l to show in full.

最后进入主页并关闭即可

#sh shutdown.sh  关闭Tomcat

10.4 配置MySQL

在安装MySQL之前,我们首先需要从指定服务器自动下载RPM包并且安装。

yum它基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,无须繁琐地一次次下载、安装.

10.4.1 下载MySQL关联的rpm包

首先查看系统是否自带安装mysql

yum list installed | grep mysql

如果有显示,则删除系统自带的mysql

#yum -y remove mysql-libs.x86_64

给CentOS添加rpm源,并且选择较新的源,RPM软件包管理器缩写

# wget --no-check-certificate dev.mysql/get/mysql-community-release-el6-5.noarch.rpm

而后,安装第一部下载的rpm文件并列出你所有的yum repo文件

# yum install mysql-community-release-el6-5.noarch.rpm
# yum repolist enabled | grep mysql 

10.4.2 安装mysql
yum install mysql-community-server

输入3次y后,安装完毕

10.4.3 启动mysql服务
# service mysqld start

查看mysql是否自启动,并且设置开启自启动

# chkconfig --list | grep mysqld 

其中,0 1 2 3 4 5 6 代表centOS启动状态

# chkconfig mysqld on  查看mysql是否自动启动,并且设置开机自启

10.4.4 修改字符集为UTF8

 vim /etc/myf

[mysqld]部分添加: character-set-server=utf8 在文件末尾新增[client]段,并在[client]段添加: default-character-set=utf8

修改后重启服务:

service mysqld restart
10.4.4 修改默认配置
# mysql_secure_installation

根据提示进行配置,且默认root用户密码为空,并且直接回车即可

输入时,输入内容为y,y,n,y,y

第一次y后输入自己要设置的密码

10.4.5 设置授权远程登陆

这里可以设置权限,也可以进入权限表中进行修改。这里直接设置权限

本节内容主要讲述Linux的基本操作,还附带一些使用Linux安装JDK、MySQL和Tomcat配置。谢谢大家收看

本文标签: 课堂 笔记 Linux