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 切换目录
cd
是Change Directory
的缩写,这是用来变换工作目录的命令。
语法:
cd [相对路径或绝对路径]
#使用绝对路径切换到 local 目录
cd /usr/local/
# 表示回到自己的家目录,亦即是 /root 这个目录
cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
cd ..
6.1.3 显示当前的目录
pwd
是 Print 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系统中不仅是对用户与组根据UID
,GID
进行了管理,还对 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 远程上传工具使用
使用SecureFX
和SecureCRT
分别完成对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课堂笔记 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726361803h944805.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论