Linux从0到1学习

前提:安装VMware虚拟机,安装(因为免费)centos7镜像,在虚拟机里面安装Linux操作系统

1、Linux磁盘分区

1、/boot:Linux的启动需要用到的引导程序和文件都在这个分区里面

2、swap分区:交换区。如果linux的内存不够用。swap分区会临时充当内存

3、/

2、网络

1、桥接:保持在同一网段,不过多人连接这个网络可能会造成冲突

2、NAT模式(网络地址转换):虚拟机里面的网络可以不再和主机里面的网络保持在同一 网段,但是主机里面会存在虚拟网卡。这个虚拟网卡的ip地址必须和linux里面的ip地址在 同一网段。这样linux就可以通过虚拟网卡和主机之间进行通信,同时我们的linux操作系 统也可以和外部的网络进行通信。(解决了ip冲突的问题)

3、虚拟机的一些操作

1、克隆

引用克隆(不推荐),完整克隆(推荐)

2、快照

可以通过快照回到虚拟机的某个状态

3、VMware Tools

4、目录

bin:可执行的命令,sbin:管理员相关,home:用户信息,root:系统管理员登录所在的目录(桌面也算一个文件夹),lib:操作系统开机所要用到的资源,etc:配置文件,boot:Linux启动所需要的文件,dev:描述硬件,tmp:临时数据,sys:Linux内核相关信息,media:根媒体相关,mnt:磁盘挂载相关,opt:存放一些软件安装包,usr-local:默认安装地址,var:系统日志相关。

4、Linux基本指令

1、远程连接Linux系统-xshell

FileZilla:用于Window和Linux上传和下载文件的工具

2、vi/vim Linux的内置编辑器

三种模式:1、普通模式:不能在文件中输入内容,但是可以浏览和删除内容,2、插入模式(按i 或 a进入):可以从普通模式转变成插入模式,我们就可以在文本内容输入内容,3、命令行模式:按ESC键,再按Shift + :我们可以切换到底行模式。输入wq保存并退出,q直接退出,q!不保存并退出

一些快捷键:yyp:复制一行,2yyp:复制两行,dd:删除一行,2dd:删除两行,/:内容名称:查找指定内容,set nu:设置行号,set nonu:取消行号,G:快速将光标定位到文件末尾处,gg:快速的将光标定位到文件的起始位置(行号 shift + g)。u:撤销,s/World/shijie/:替换首行World成shijie,s/World/shijie/g:替换当前行,%s/World/shijie/g:替换文本所有。

3、Linux系统的关机重启命令

1、shutdown + -h now:立即关机 ,+ -h 1:表示一分钟后关机,+r now:立即重启

2、halt:就是直接使用,效果等同于关机

3、sync:把内存的数据同步到磁盘(其他三个执行的时候都进行了sync)

4、reboot:就是重启系统

4、用户的登录和注销

切换用户的命令 su 用户名称, 注销当前用户 exit,如果要从低级用户切换到高级的用户需要密码,从高级的用户切换到低级的用户不需要密码

5、创建用户

创建用户的权限只有管理员才有,我们一般在root用户下面去创建用户:useradd用户名,给指定用户设置密码 passwd 用户名。useradd -d 目录名称 用户名:创建用户的同时,自定义用户目录的名称。userdel 用户名 删除用户 只是删除用户的数据,对应的用户目录不会删除。userdel -r用户名 删除用户数据的同时也会删除用户的目录。id 用户名称:查询用户信息,whoami:查看当前登录的用户名称

6、用户组

创建组的命令:groupadd 组名称,删除组的命令 groupdel 组名称,在创建用户的时候,我们可以指定用户的组:useradd -g 组名称 用户名,usermod -g 组名 用户名:修改用户所属的组。

7、Linux运行级别:

init + 数字。0关机,1单用户(找回用户丢失的密码,可以使用单用户模式),2多用户但没有网络服务(少用),3多用户状态但有网络服务(没有图形化界面,但是有网络,这种用的最多)4系统未使用,保留给用户(很少用),5图形化界面,6系统重启。

8、Linux帮助

man ls

9、Linux文件夹相关操作指令

pwd:获取目前所在的绝对路径,cd:切换目录,cd/:切换到系统根目录,cd~:切换到用户所属的用户目录,cd ..:回到当前目录的上一级目录,cd/home/kobe:切换到指定目录,cd-:切换到上一条命令所在的目录。创建目录:mkdir test:创建一个空的文件夹,mkdir -p aaa/bbb:创建多级文件夹 使用-p参数指定,rmdir 只能删除空的文件夹,touch 文件夹名:创建文件的命令,cp:拷贝文件(夹),cp -r 文件夹 目标地址 -r:递归拷贝,rm 删除文件(夹),-r 参数 递归删除(一般删除一个非空文件夹需要携带这个参数),-f 参数 (不询问删除)。cat (-n) 文件 (profile | more):浏览文件,more分页浏览,less分屏查看文件,echo输出内容到控制台,head -n 5 文件名称:显示指定文件的前5行。tail显示文件的内容(末尾的内容),tail -n 5 文件名称,tail -f 文件名称。

10、Linux时间指令

date:指令 获取当前的系统时间,date + %Y:获取当前系统时间的年部分,date + %M:获取当前系统时间的月部分,date + %d:获取当前系统时间的天部分,date + %H:获取当前系统时间的小时部分,date + %M:获取当前系统时间的分钟部分,date + %S"获取当前系统时间的秒部分。date -s "时间":自定义Linux的系统时间,cal 展示当前月份的日历,cal 2020,展示当前年份的日历。

11、Linux搜索指令

find指令 搜索的原理是遍历(递归)指定的文件目录,找到匹配的文件,按照文件的名称进行搜索-name,搜索指定用户所属的文件-user,按照文件的大小进行搜索-size。locate 快速搜索指定的文件 它不是递归遍历,locate数据库,updatedb指令来更新一下数据库,which指令 查看指令位于那个目录下面。grep一般配合管道符号|一起使用。

12、Linux压缩和解压指令

.gz格式的压缩文件,gzip进行文件的压缩,gunzip 解压,.zip格式的压缩文件,zip (-r)进行压缩,unzip 解压 -d 解压到指定的目录,.tar.gz格式的压缩文件,tar既可以压缩文件,也可以解压文件,-c:产生tar文件(打包文件),-v压缩和解压的时候,显示对应 详细信息,-f指定压缩后的文件名,-z打包的同时并压缩,-x解压tar包文件,压缩文件的命令 tar -zcvf 压缩文件的名称 目录,解压文件的命令 tar -zxvf 压缩文件的名称。

13、指令总结

14、Linux组的详细介绍

改变文件所属的用户:chown 用户名 文件名,改变文件所属的组:chgrp 组名 文件名,修改用户所属的组:usermod -g 用户名,组名。

15、Linux权限介绍(重点)

第一位:描述文件的类型,d:文件夹(目录),-:文件,l:软连接,第一组:当前文件所属的用户对文件的操作权限(r:读,w:写,x:可执行)。第二组:当前用户所属组内的其他用户对文件的操作权限。第三组:当前用户所属组的其他用户。chmod u=rwx,g=rx,o=rx Hello.java。r=4,w=2,x=1,rwx=4+2+1=7;如chmod 640 jack.txt

16、定时任务调度

任务调度的命令crond,crontab -e:编辑定时任务,-l:查询定时任务,-r:删除定时任务。

任务调度指令at

17、linux磁盘分区机制

分区与目录形成挂载关系,查看磁盘分区信息:lsblk

接下来,我们要将分区进行挂载,挂载到哪里去,挂载到指定的目录下面。所以我们需要先创建一个目录。我们在根目录下面创建一个目录newdisk(当前我们可以在任意地方定义需要被挂载的目录,并不一定在根目录)。

cd /,mkdir newdisk,mount /dev/sdb1 /newdisk/(将sdb1磁盘分区挂载到newdisk目录),lsblk -f。

比如我们想查看/opt/目录情况。语法:du -h[目录],-s指定目录大小汇总,-h带计量单位,-a含文件,--max-depth=1 子目录深度,-c 列出明细的同时,增加汇总量。du -h --max-depth=1 /opt,汇总opt目录下面的磁盘占用情况,du -hac --max-depth=1/opt,查看文件夹大小。

18、磁盘操作实用指令

统计/opt文件夹下文件的个数:ls -l /opt | grep "^-" | wc -l("^-"以文件开头 wc -l 统计个数)

统计/opt文件夹下目录的个数:ls -l /opt | grep "^d" | wc -l("^d"以文件目录开头 wc -l 统计个数)

统计/opt文件下的文件的文件个数,包括子文件夹下的ls -lR /opt | grep "^-" | wc -l(R代表递归

统计/opt文件夹下的目录的个数,包括子文件夹下的ls -lR /opt | grep "^d" | wc -l

以树状结构显示目录结构(如果没有tree,则使用yum install tree安装)tree /home,如果出现bash:tree:command not found...说明需要安装,yum install tree,再tree /home。

19、Linux NAT网络配置

配置映射,通过ping看看能不能通,去etc中sysconfig中的network-scripts中编辑IP,子网掩码,网关。

20、进程的基本概念

ps:查看系统中后哪些进程正在运行,-e:所有的进程,-f:全格式显示进程信息(可叠加),查看指定进程:ps -ef | grep 进程名字 ps -ef | grep 要查看的信息,终止进程:kill(-9强制杀掉) 进程号或者killall(杀死进程及其子进程),PID:进程号(进程id),TTV:终端机号,TIME:当前进行消耗的CPU时间,CMD:当前进程的名称或者执行对应进程的命令,-a:显示进程终端的详细xinx,-u:以用户格式显示进程信息,-x:显示后台进程运行的参数,ps -aux | more 分页展示进程信息。

user:进程所属的用户信息,PID:进程号,%CPU:进程占用CPU的百分比,%MEM:进程占用内存的百分比,STAT:进程的状态,S:睡眠,R:正在或运行,Z:僵死进程。START:进程的开启时间,COMMAND:进程启动需要用到的命令和参数。

查看进程树:pstree,-p:显示进程id,-u:显示进程用户

21、Linux服务管理(后台服务进程)(守护进程)

service network status:查看service服务运行状态。

setup:设置,chkconfig:设置。(通过--level 5 network on)打开network第五层图形化界面。

systemctl命令:systemctl [start | stop | restart | status] 服务名-》服务启动、重启、重载、查看状态,例如systemctl status firewalld.service:查看防火墙状态,masked:此服务禁止自启动,static:该服务无法自启动,只能作为其他文件的依赖,enabled已配置为自启动,disabled:未配置未自启动。指令管理在/usr/lib/systemd/system中查看。

进程管理top指令,-d:设置刷新秒数,-i:使用top不显示任何闲置或者僵死的进程,-p:通过指定监控ID来仅仅监控某个进程的状态。交互操作:P:以CPU使用率来排序,默认就是此项,M:以内存使用来排序,N:以PID排序,q:退出top。

网络监控指令netstart,nestart -anp | more:-an安装一定的属性排序输出 -p:显示哪个进程在调用。Local Address:本机的Linux的id地址,Foreign Address:外部的网络地址。Proto:网络协议

rpm与yum。是下载包和打包的安装工具。rpm -qa | more:分页查询Linux系统里面安装的rpm包,如:firefox-60.8.0-1.el7.centos.x86_64;firefox:rpm包名称,60.8.0-1.el7:rpm包的版本号,centos:rpm包适配的Linux操作系统,x86_64:适配64位的Linux操作系统(i686 i386结尾的就是Linux 32位的操作系统 noarch表示通用)。rpm -q firefox:查询火狐浏览器是否通过rpm方式安装,rpm -qi firefox:查看firefox安装的详细信息。rpm -qr firefox:查看firefox安装之后的文件。rpm -qf /etc/firefox/pref:查看指定文件所属的rpm包,rpm -e firefox 删除rpm包文件,rpm -e --nodeps firefox 强制删除rpm包(可能导致其他不能运行,存在依赖关系),rpm -ivh 火狐浏览器rpm包全名称,i:安装,v:安装的时候,显示安装的详细信息,-h:安装进度条。yum list | grep rpm包名称,yum install rpm包名称。

./startup.sh启动,注册防火墙端口号:firewall-cmd --permanent --add-port=8080/tcp。firewall-cmd --reload:重置防火墙。firewall-cmd --list-ports:查看端口是否开放

这里请注意tomcat版本要9对应jdk8,我一开始用tomcat11对应jdk8导致tomcat启动不成功。

下载jdk8并配置,在/opt目录下面创建jdk文件夹放入压缩包解压,在/usr/local目录下创建java文件夹上传解压缩的jdk文件,我的叫jdk1.8.0_152,配置过程:编辑文件/etc/profile:vim /etc/profile,在文件后面追加export JAVA_HOME=/usr/local/java/jdk1.8.0_152和export PATH=JAVA_HOME/bin:PATH就好了。出去使编辑后的profile生效:source /etc/profile。查看版本java -version看看有没有成功吧。

安装mysql三条指令(),并且改密码。

5、Linux进阶篇

1、shell脚本

脚本以#!/bin/bash开头,需要有可执行的权限。执行方式:给要执行的脚本,添加可执行权限(chmod u+x hello.sh)(把+改为-就是取消) ,或直接用sh脚本文件名命令执行(sh + 名),不用赋予权限。

2、shell变量

系统变量:echo #HOME(#PWD(#SHELL(#USER。set | more:分页查看所有变量信息。

用户自定义变量:定义变量A:A=100,echo A=A,echo "A=A",设置静态变量:readonly B=2,echo "B=B",C=\`date\`,echo "C=C",还有一种声明方式:D=(date),echo "D=D"

3、设置环境变量

export 变量名=变量值:将Shell变量输出为环境变量/全局变量。source配置文件:让修改后的配置文件立即生效,echo $变量名:查询环境变量的值,注释::<<!注释内容!

4、设置位置参数变量

当我们执行一个Shell脚本时,如果希望获取到命令行的参数信息, 就可以使用到位置参数变量,比如./myshell.s 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息

基本语法:1、n:n为数字,0代表本身,1-9代表第一到第九个参数,十以上的参数需要用大括号,如{10}。2、*:代表命令行中所有的参数,\*把所有的参数看成一个整体。@:代表命令行中所有的参数,不过该命令是把每一个参数区分对待。$#:代表命令行中所有参数的个数。

5、预定义变量

Shell设计者事先已经定义好的变量,可以直接在Shell中使用。

:当前进程的进程号。$!:后台进行的最后一个进程的进程号。$?:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪一个数,有命令自己决定),则证明上一个命令执行不正确。 ### 6、shell中的运算符 写法一:$((表达式)),写法二:$\[表达式\],计算:如输出表达式3\*(5+1)的值:方式一:TOTAL=$((3\*(5+1))) echo "TOTAL=$TOTAL",方式二:SUM=$\[3\*(5+1)\] echo "SUM=$SUM"。 ### 7、shell编程_条件判断if语句 if \[ abc \] then echo " 条件为真" fi,if \[ \] then echo "条件为false" fi。 ### 8、多重if,if-else判断 if \[ 条件判断式 \] then 代码 elif \[ 条件判断式 \] then 代码 else 代码 fi。 ### 9、条件判断case语句 case $1 in "1") echo "Monday";; "2") echo "Tuesday";; \*) echo "other";; esac。 ### 10、for循环 方式一:for 变量 in "$@" do 代码 done。 方式二:for((初始值;循环控制条件;变量变化)) do 代码 done。 ### 11、while循环 while \[ 条件判断式 \] do 代码 done ### 12、read获取输入 read 选项 参数:-p:指定读取值时的提示符,-t:指定读取值时等待的时间,如果没有在指定的时间内输入,就不再等待。 ### 13、函数 系统函数:basename获取文件名,dirname:返回完整路径最前面的部分,其他 自定义函数:function getSum(){SUM=$\[$n1+$n2\] echo "$SUM"} read -p "input a number:" n1,read -p "input a number again:" n2 getSum $n1 $n2。 ### 14、数据库的备份 详细的资料请联系主包 ### 15、Linux日志服务 ![](https://i-blog.csdnimg.cn/direct/8dc27c17445649469b26c6c8f27a17f6.jpeg) ### 16、日志管理服务 帮助我们进行日志管理,借助了/etc/rsyslog.conf配置文件来实现的,我们可以去查看这个日志配置文件:more /etc/rsyslog.conf。可以在/var/log下通过cat secure查看日志。 ### 17、自定义日志 ![](https://i-blog.csdnimg.cn/direct/0242bcd260c446bcabcdaf4dea6ca31c.jpeg) ### 18、内存日志 ![](https://i-blog.csdnimg.cn/direct/d8bb5246087d464e90e6d588cb45443a.jpeg)

相关推荐
y小花2 小时前
安卓vold服务
android·linux·运维
开开心心就好2 小时前
体积小巧的图片重复查找工具推荐
linux·运维·服务器·智能手机·自动化·excel·fabric
tryqaaa_2 小时前
学习日志(一)【含markdown语法,Linux学习】
linux·运维·学习·web安全·web·markdown
Leah-2 小时前
Web项目测试流程
笔记·学习·web·测试·复盘
小义_2 小时前
【Kubernetes】(七) 控制器2
linux·运维·云原生·kubernetes·红帽
WJ.Polar2 小时前
Ansible任务控制
linux·运维·网络·python·ansible
计算机安禾2 小时前
【Linux从入门到精通】第10篇:软件包管理——Linux如何安装与卸载软件
java·linux·运维·服务器·编辑器
zzzyyy5382 小时前
Linux进程控制(2)
linux·服务器
热爱Liunx的丘丘人2 小时前
PlayBook常用的模块编写
linux·服务器·ansible