1、Linux基础学习笔记

Linux主要的发行版本:

Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE、红旗Linux(国产)

 

开启SSH的22端口实现远程登入:

Linux的远程操作工具:Xshell、Xftp

开启方式:参考一参考二参考三

 

Linux主要目录(层级式目录结构):

[root@localhost ~]# tree -L 1 /
/         根目录
├── bin   可执行二进制文件的目录,如常用的命令 ls、tar、mv、cat 等
├── boot  系统引导程序启动目录
├── dev   存放设备文件目录
├── etc   软件配置和启动程序目录
├── home   普通用户的家目录
├── lib    库文件目录(命令 软件)
├── lib64  64位操作系统库文件目录(命令 软件)
├── mnt    设备临时挂载目录
├── opt    可选项的,额外安装的第三方软件目录
├── proc   记录操作系统进程和内核信息的目录
├── root   超级管理员的家目录
├── sbin   超级管理员命令存放目录
├── tmp    回收站,临时文件目录
├── usr    用户或软件应用程序目录
├──selinux 系统安全目录
└── var    日志文件存放目录

 

基本指令(Tab键自动补全)

Linux系统操作命令:

1、立刻进行关机:

shutdown now

2、定时关机:

shudown -h [时间]

3、立刻重启:

shutdown –r now
reboot: 现在重新启动计算机
sync: 把内存的数据同步到磁盘

 

Linux用户管理命令:

Linux系统是一个多用户多任务的操作系统,root用户是系统默认创建的管理员账号。

1、添加用户:

useradd  [选项] 用户名

(1)、useradd zhangsan

  创建一个账号叫zhangsan,此时会创建账号、默认创建一个组zhangsan并且把zhangsan分到此组中、还会在/home下创建一个目录叫zhangsan作为新创建用户的根目录。

(2)、useradd -d /home/ls lisi

  创建一个账号叫lisi,并且给lisi指定家目录/ls。

2、给用户名设置密码:

passwd 用户名

3、删除用户:

userdel  [选项] 用户名

(1)、userdel zhangsan

  删除用户zhangsan,保留zhangsan的主目录。

(2)、userdel –r lisi

  删除用户lisi,并且把lisi的主目录也删除。

4、查询用户信息:

id 用户名

5、切换用户:

su 用户名

注意:从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。

另:exit命令可以回到原来的用户。

 

Linux组管理命令:

组管理系统实现对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组;

在文件或目录看来,Linux系统将所有的用户分为三类:所有者、同组用户、其它组用户

1、创建组:

groupadd 组名

2、删除组:

groupdel 组名

3、添加用户时指定其组:

useradd  –g 组名 用户名

4、将用户添加到组/从组中移除:

gpasswd –a/-d 用户名 组名

(1)、添加到test组

  gpasswd –a zhangsan test

(2)、从test组中移除

  gpasswd –d zhangsan test

5、修改文件或目录的所有者:

chown 新的所有者 文件名或目录名
chown 新的所有者 :新的组 文件名或目录名

(1)、chown  Iven : dev  t1.txt

  将t1.txt文件的所有者修改为Iven,并添加到dev组

(2)、chown -R  Iven : dev  t1

  递归修改目录

6、修改文件或目录的所在组:

chgrp 新的组 文件名或者目录名

(1)、chgrp dev t1.txt

(2)、chgrp -R dev t1

 

Linux帮助命令:

1、帮助指令 man

man [命令或配置文件]

功能描述:获得帮助手册上的信息

注:分屏显示,按回车翻一行,按空格翻一页,按q退出查看

2、帮助指令 help

help [命令]

功能描述:获得命令内置的帮助信息

3、清屏指令

clear

 

Linux文件/目录操作命令:

1、显示当前目录的路径:

pwd

2、显示当前文件或目录信息:

ls [选项] [目录或是文件]

常用选项

(1)、-a:(ls -a)

  显示当前目录所有的文件和目录,包括隐藏的。

(2)、-l: (ls -l)

  以列表的方式显示信息

3、切换到指定目录:

cd [参数]

绝对路径(以/开头的目录)和相对路径(以目录名开头的目录,从当前目录下开始查找)

(1)、cd /

  回到根目录

(2)、cd ~

  回到用户主目录

(3)、cd .

  当前目录

(4)、cd ..

  回到当前目录的上一级目录

4、创建的目录:

mkdir [选项] 要创建的目录

常用选项

(1)、-p :(mkdir –p test01/test02)

  创建多级目录

5、删除一个空目录:

rmdir 目录

6、创建一个或多个空文件:

touch 文件名称列表

7、复制文件或目录:

cp [选项]  source(源) dest(目标)

常用选项:

(1)、-r :递归复制整个文件夹

(2)cp t1.txt text

  将t1.txt文件复制到text目录中

8、删除的文件或目录

rm [选项] 要删除的文件或目录

常用选项:

(1)、-r :递归删除整个文件夹

(2)、-f :强制删除不提示

9、移动目录或者文件(可重命名)

mv source(源) dest(目标)

(1)、mv  t1.txt  t1_new.txt

10、查看的文件中的内容

cat [选项] 要查看的文件名

常用选项

(1)、-n :(cat -n a.txt)显示行号

11、分页查看文件内容

(1)、more 文件名

一次加载文件所有内容,分页显示

(2)、less 文件名

分页加载文件所有内容,分页显示

(按回车翻一行,按空格翻一页,按q退出查看)

12、查看文件的头/尾的几行:

(1)、查看文件头的前几行

head [选项] 文件名

(head -n 5 文件名(查看文件头5行内容,5可以是任意行数))

(2)、查看文件尾的后几行

tail [选项] 文件名

(tail -n 5 文件名(查看文件尾5行内容,5可以是任意行数))

13、内容输出定向:

(1)、>指令:输出重定向,将原来的文件内容覆盖;

(ls –l > a.txt (将ls –l查到的列表内容覆盖写入文件a.txt中(a.txt不存在会创建)))

(2)、>>指令:不会覆盖原来文件的内容,而使追加到文件的尾部;

(ls –l >> a.txt (将ls –l查到的列表内容追加到文件a.txt末尾中(a.txt不存在会创建)))

14、输出内容到控制台:

echo [选项] [输出内容]

(1)、输出path路径到控制台:echo $PATH

15、查看历史执行过的指令:

history

 

Linux的文本编辑器命令

1、vi和vim的使用:

 

(1)、一般模式:

使用vi或vim命令打开文件(vim text.txt),进入一般模式

(可以查看文件内容,但不能够编辑文件内容)

(2)、编辑模式:

在一般模式下,按i键或者a键,进入编辑模式

(可以编辑内容,但不能保存;按ESC键,可以返回到一般模式)

(3)、命令行模式:

一般模式下,按:键,进入命令行模式

输入:

  1)、q!——不保存强制退出编辑器

  2)、wq——保存并且退出编辑器

  3)、q——只是退出编辑器

2、vi和vim常用快捷键

(1)、一般模式下:

  1)、拷贝当前行,输入(yy),

  2)、拷贝当前行(包括当前行)向下的5行,输入(5yy),

3)、并粘贴,输入(p)。

(2)、一般模式下:

  1)、删除当前行,输入(dd),

  2)、删除当前行向下的5行,输入(5dd)。

(3)、一般模式或命令行模式下,

  1)、在文件中查找关键字,输入(/关键字或?关键字),

  2)、回车查找, 输入(n),表示光标查找下一个关键字。

(4)、一般模式下,

  1)、使用快捷键到达文档的最首行,输入(gg)

  2)、到达文档最末行,输入(G)。

(5)、一般模式下,

  1)、在一个文件中输入"xxxx" ,然后又撤销这个动作,输入(u)。

(6、)命令行模式下,

  1)、设置文件的行号,输入(: set nu)

  2)、取消文件的行号,输入(:set nonu)

 

Linux时间日期命令:

1、查看或设置系统的日期或时间

date(查看系统当前完整的日期和时间)

(1)、date +%Y(显示当前年份)

(2)、date +%m(显示当前月份)

(3)、date +%d(显示当前日期)

(4)、date "+%Y-%m-%d %H:%M:%S"(显示年月日时分秒)

(5)、date -s 字符串时间(设置日期)

2、查看日历

cal [选项](不加选项,显示本月日历)

 

Linux中关于搜索文件或者目录的命令:

1、find [搜索范围] [搜索标准] 关键字

搜索标准:

(1)、-name:按名称查找,支持通配符(*)。

(2)、-user:按用户名查找

(3)、-size:按文件大小查找

2、locate 要搜索的文件名

在目录树结构中搜索文件或目录,根据名称搜索,效率高,但新数据不能及时更新

使用:

updatadb
locate 要搜索的文件名

3、过滤命令grep:(重)

grep过滤查找,管道符:“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

使用:

搜索命令 | grep [选项] 过滤条件
查找命令 | grep [选项] 过滤条件

常用选项:

(1)、-n:显示匹配行和行号

(2)、-i:忽略大小写

例:find *.txt | grep new (所有包含new条件的.txt文件)

 

Linux压缩解压命令

1、zip/unzip指令(.zip)

(1)、压缩命令:

zip [选项] 目标压缩包名称(通常打包成.zip压缩包)  文件或目录列表

选项说明:

-r:递归压缩,即压缩目录

(2)、解压命令:

unzip [选项] 压缩包名称(.zip) 解压的目录名

常用选项:

-d 目录:指定解压后文件的存放目录

2、tar指令(.tar.gz)

(1)、压缩命令:

tar [选项] 目标压缩包名称(XXX.tar.gz) 文件或目录列表

tar -zcvf xxx.tar.gz 文件或目录列表

(2)、解压命令:

tar [选项] 压缩包名称(XXX.tar.gz) -C 解压到目录名

tar -zxvf xxx.tar.gz -C 解压到目录名

3、选项说明:

(1)、-c:产生.tar.gz 打包文件(compression)

(2)、-v:显示详细信息(view)

(3)、-f:指定压缩后的文件名

(4)、-z:打包同时压缩

(5)、-x:解压.tar.gz 文件

(6)、-C: 指定解压到哪个目录

 

Linux文件或目录的权限控制(重)

在linux中,任何文件或目录都有三种权限:读(Read)、写(Write)、执行(Execute)

1、对文件而言:

(1)、读(r): 可以读取,查看文件内容 ,比如cat、more、less、head、tail...

(2)、写(w): 可以修改文件内容,比如vi/vim

(2)、执行(x): 如果该文件是可执行文件(.sh),可直接运行

2、对目录而言:

(1)、读(r): 可以读取,ls 查看目录内容

(2)、写(w): 可以修改,目录内创建+删除+重命名目录

(3)、执行(x): 可以进入该目录

3、rwx 可用数字表示:

r=4(即 2²),w=2(即 2¹),x=1(即 2º)

4、文件或目录的权限控制:

(1)、在linux中,任何一个文件或目录都有三部分权限:

所有者权限——同组用户权限——其它组用户权限

(rwx)————(rwx)————(rwx)    ------第二位开始看

(2)、查看文件或目录的权限:

1)、ls –aul
2)、ls -l

(3)、修改文件或目录的权限(chmod):

1)、用r、w、x分别表示读、写、执行的权限

2)、用u、g、o、a分别代表文件所有者、文件所在组用户、其它组用户、所有用户

3)、=、+、-分别代表设置权限、增加权限、去掉权限

例:chmod u=rwx,g=rx,o=x 文件目录名

(4)、使用数字的方式修改文件或目录的权限

r=4、w=2、x=1、rwx=4+2+1=7

例:chmod 777 文件目录名 <=>  chmod u=rwx,g=rwx,o=rwx 文件目录名

 

Linux网络管理命令

1、查看IP地址

ifconfig
hostname -I

2、配置linux网络

vim /etc/sysconfig/network-scripts/ifcfg-eth33

 

Linux进程管理命令

进程:一个应用程序;线程:一个应用程序的执行单元

1、查看进程

(1)、只会显示应用进程:ps

(2)、显示当前终端下的所有进程信息:ps –a

(3)、以用户的格式显示进程信息:ps –u

(4)、显示后台进程运行的参数:ps –x

(5)、以全格式的形式显示所有进程信息:ps –ef

2、关闭进程

(1)、使用ps命令查看进程的PID
(2)、kill 选项 进程PID值

选项说明:

-9:表示强迫进程立即停止

(kill -9 PID值)

 

Linux服务管理命令:

1、服务:守护进程,比如sshd、防火墙等

2、操作

systemctl [start、stop、restart、reload、status、enable] 服务名称

(1)、查看防火墙运行状态:systemctl status firewalld

(2)、关闭防火墙:systemctl stop firewalld

(3)、开启防火墙:systemctl start firewalld

(4)、设置防火墙开机启动:systemctl enable firewalld

 

Linux开放指定端口命令:

#查看防火墙列表
firewall-cmd --list-all
#打开防火墙,开放指定端口
#例:firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=要开放的端口/tcp --permanent
#刷新防火墙
firewall-cmd --reload
#查看开放的端口
firewall-cmd --list-ports
#查询某端口是否开放
firewall-cmd --query-port=端口号/tcp
#移除某端口端口
firewall-cmd --permanent --remove-port=端口号/tcp

 

Linux文本编辑中快速定位关键字命令:

一般模式或命令行模式下,
1、在文件中查找关键字,输入(/关键字或?关键字),
2、回车查找, 输入(n),表示光标查找下一个关键字。

 

Linux中软件安装包的管理:

1、RPM包管理(Ubuntu采用deb)

RPM:一种linux的软件包的打包和安装工具(以.rpm结尾)

(1)、查询所安装的所有软件包:rpm –qa

(2)、分页查询所安装的所有软件包:rpm –qa|more

(3)、过滤查询安装的指定软件包:rmp –qa|grep xxx

2、YUM包管理

基于RPM的软件安装包管理工具,可自动处理软件包之间的依赖关系

(1)、查看:yum list installed | grep xx

(2)、卸载:yum remove xx

(3)、安装:yum installed xx

 

crontab定时任务的调度:

1、概述:

  在Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集等。

2、简单使用:

cd /
cd etc
crontab –e
输入任务到调度文件中并保存(ctrl+s与ctrl+x),如:
*/1 * * * * ls -l >> /demo/a.txt            #每分钟执行ls -l >> /demo/a.txt命令

3、crontab命令:

crontab [ -u 用户 ] { -e | -l | -r }
(1)、crontab -e :编辑 crontab 的工作内容
(2)、crontab -l :查阅 crontab 的工作内容
(3)、crontab -r :移除所有的crontab的工作内容,若仅要移除一项,请用-e去编辑

4、crontab语法格式说明:

  Linux下的任务调度分为两类:系统任务调度和用户任务调度。Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab 命令。

特殊符号

含义

*

表示任何时间。比如第一个“*”表示一小时每一分钟执行一次;

,

表示不连续时间。比如“0 8,12 * * * 命令”表达每天8点0分,12点0分都执行一次命令;

-

表示连续时间范围。比如“0 8 * * 1-5 命令”表示周一到周五的8点0分执行命令;

*/n

表达每隔多久执行一次。比如“*/15 * * * * 命令”表达每隔15分钟执行一次命令;

5、案例:

(1)、每一分钟执行一次 /bin/ls:

* * * * * /bin/ls

(2)每小时的第3和第15分钟执行command

3,15 * * * * command

 

shell脚本编程入门

1、shell是命令行编译器,用户通过这个界面访问操作系统内核的服务。

2、脚本格式要求:

(1)、脚本以#!/bin/bash开头

(2)、脚本需要可执行权限

3、入门:

创建一个shell脚本(demo.sh),输出hello
(1)、vim demo.sh
(2)、输入:
#!/bin/bash
echo "hello"3)、保存、并赋予执行(x)权限
chmod 744 demo.sh
(4)、执行
./demo.sh

4、shell变量:

(1)、系统变量:$HOME、$PWD、$SHELL、$USER等

echo $HOME

(2)、用户变量:

1)、自定义变量:

注:可撤销变量: unset 变量

A=10
echo "A=$A"
unset A
echo "A=$A"

2)、静态变量:

注:使用readonly声明变量,不能使用unset撤销

readonly A=10
echo "A=$A"

5、变量命名规则:

(1)、由字母、数字和下划线组成,不能以数字开头

(2)、等号两侧不能有空格

(3)、变量名一般大写

6、注释:

(1)、单行注释:#

(2)、多行注释:

:<<符号
注释内容...
注释内容...
注释内容...
符号

注:符号必须一致

7、基本语法:

#1、A=`ls -l`(反引号)等价于A=$(ls -l)
#2、将shell变量输出设为环境变量:
#export 变量名=变量值
#3、让修改的配置信息生效:
#source 配置文件
#4、查询变量值:
#echo $变量名
#5、获取输入参数(执行时:./demo 参数一 参数二...)
#(1)、$n:n为数字,$0表示命令本身,$1-9表示参数一到九,十以上用${n}表示:
#echo "$0 $1 $2"
#(2)、$*:表示命令行中所有参数(看为一个整体):
#echo "$*"
#(3)、$@:表示命令行中所有参数(区分开来):
#echo "$@"
#(4)、$#:表示命令行中所有参数的个数:
#echo "参数个数=$#"
#6、查询当前进程的PID:
#echo "当前进程号=$$"
#7、后台运行的最后一个进程的PID:
#echo "最后的进程号=$!"
#8、显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误:
#echo "退出状态=$?"

8、运算符、数组、流程控制、函数

   参考

9、备份数据库案例:

获取:链接 提取码:b87f

(1)、在/opt/text下编写mysql_db_backup.sh脚本:

#!/bin/bash

#完成数据库的定时备份
#备份的路径
BACKUP=/data/db
#当前的时间作为文件名
DATETIME=$(date +%Y_%m_%d_%H%M%S)

#可以输出变量调试
#echo ${DATETIME}

echo "=======开始备份========"
echo "=======备份的路径是 $BACKUP/$DATETIME.tar.gz"

#主机
HOST=localhost
#用户名
DB_USER=root
#密码
DB_PWD=root
#备份数据库名
DATABASE=IvenDB

#创建备份的路径
#若备份的路径文件夹不存在则创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

#执行mysql的备份数据库的指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST  $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz

#打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME

#删除临时目录
rm -rf $BACKUP/$DATETIME

#删除10天前的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

echo "=====备份文件成功==========="

(2)、使用crontab定时调度

cd /
cd etc
crontab –e
#输入任务到调度文件中并保存(ctrl+s与ctrl+x):
0 1 * * * /opt/text/mysql_db_backup.sh            
#每天一点执行mysql_db_backup.sh脚本进行备份

 

Ubuntu系统安装JDK教程:

相关参考

 

Ubuntu系统安装MySQL教程:

相关参考

 

Ubuntu系统安装Nginx教程:

相关参考

 

posted on 2022-01-27 11:00  爱文(Iven)  阅读(141)  评论(0编辑  收藏  举报

导航