Linux 基础

巩固基础,砥砺前行 。
只有不断重复,才能做到超越自己。
能坚持把简单的事情做到极致,也是不容易的。

linux的目录结构

linux的文件系统采用树状的目录结构,在此结构的最上层是根目录“/”,
然后在此目录下再创建其他的目录。

目录的具体介绍:
bin:usr/bin usr/local 是Binary缩写。存放最常用的命令 *
sbin:存放管理员使用的系统管理程序
home:存放普通用户的主目录,在linux种每个用户都有一个自己的目录,
一般该目录名是以用户的帐号命名的 *
root:系统管理员目录 *
boot:存放的是启动linux时使用的一些核心文件,包括一些链接文件以及镜像文件 *
proc:这是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息
srv:service缩写,该目录存放的是一些服务启动后需要读取的数据
sys:这是lunux2.6 内核的一个很大的变化,该目录下安装了2.6内核种出现的一个文件系统
tem:存放临时文件
dev:类似于windows的设备管理,把所有的硬件用文件的形式存储
media:linux系统会自动识别一些设备,如:U盘等,如果识别之后,linux就会把识别到的目录挂载到这个目录下
mnt:系统提供了该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在
/mnt/上,然后进入该目录就可以查看这里的内容了。
opt:给主机额外安装软件所摆放的目录,如安装oracle数据库就可以放在该目录下
usr/local:这是另一个给 主机额外安装软件的目录,一般是通过编译源码方式暗转的程序
var:这个目录种存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
selinux: 这是一个安全子系统,他能控制程序只能访问特定文件

linux分区

原理介绍

		1)linux来说无论有几个分区,分给那个目录使用,他归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中每隔分区都是用来组成文件系统的一部分2)linux采用一种叫 载入 的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录练习起来,这时,要载入的一个分区将使它的存储空间在一个目录下获得硬盘说明1)Linux硬盘分ide硬盘和scsi硬盘,目前基本上都是scsi硬盘2)对ide硬盘,驱动器标识符为“hdx~”,其中hd表明分区所在设备的类型,这里时指ide硬盘了。"x"为盘号,(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),"~"代表分区,前四个分区使用数字1-4表示,他们术主分区或者扩张分区,从5开始就是逻辑分区,case:hda3第一个ide硬盘上的第三个主分区或者扩展分区,hdb2表示第二个ide硬盘上的第二个主分区或者扩张分区3)对于scsi硬盘则表示为sdx~,scsi硬盘时使用sd来表示分区所在的设备类型的。其余则和ide硬盘的表示方法一样使用lsblk指令来查看系统的分区情况lsblklsblk -f 查看系统的分区和挂载情况

如何新增一块硬盘

	1)虚拟机添加硬盘2)分区 fdisk /dev/sdb1分区命令 fdisk /dev/sdb开始对/sdb分区m:显示命令列表p:显示磁盘分区 n:新增分区d:删除分区w:写入并退出说明:开始分区后,输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全空间。最后输入w写入并退出,若不保存则退出输入q。3) 格式化 mkfs - ext4 /dev/sdb1ext4 时分区类型4)挂载 创建挂载点 /home/newdisk ,挂载 mount /dev/sdb1	/home/newdiskmount 设备名称 挂载目录unmount 设备名称 挂载目录5)设置永久挂载vim /etc/fstab/dev/sdb1  /home/newdisk ext4 defaule  0 0添加完成后,执行mount -a 即刻生效

硬盘情况查询

	1)查询系统整体磁盘使用情况基本语法df -hdf -lh目录结构文件系统  磁盘大小  使用了多少  空闲多少 使用率 挂载点2)查询指定目录的磁盘占用情况du -h 目录查询指定目录磁盘占用情况,默认为当前目录-s 指定目录占用大小汇总-h 带计量单位-a 含文件--max-depth=1 子目录深度-c 列出明细的同时增加汇总值case1:查询/opt目录下的磁盘占用情况du -ach --max-depth=1 /optcase2:统计/home文件夹下文件的个数ls -l /home |grep "^-" | wc -lcase3:统计/home文件夹下目录的个数ls -l /home |grep "^d" | wc -lcase4:统计/home文件夹下目录的个数(包括子文件夹)ls -lR /home |grep "^d" | wc -lcase5:统计/home文件夹下文件的个数(包括子文件夹)ls -lR /home |grep "^-d" | wc -lcase6:以树状显示目录结构tree如果没有则,安装 yum install tree

base

vi 和vim 编辑器
所有的linux系统都会内建 vi文本编辑器
vim具有程序编辑的能力,可以看作是vi的增强版本,可以主动的以字体颜色辨别语法的正确性。
方便程序设计,代码补充,编译以及错误跳转等方便编程的功能特别丰富

shutdown
showdown -h now
shutdown -h 1
shutdown -r now

halt
直接关机
reboot

syn
把内存中的数据同步到硬盘
su - 用户名

logout

常用指令

用户管理

usradd xm
usradd -d /home/xm xm
passwd xm
usrdel xm
删除用户,但是保留家目录
usrdel -r xm
删除用户以及用户主目录
id root
查询uid gid 组 信息
su - 用户名

组管理

groupadd police
groupdel police

usradd -g police xm
id xm
usrmod -g 组名 用户名
修改用户组

etc/passwd 文件
用户user配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组号:解释性描述:主目录:登录shell
etc/shadow 文件
存放口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:失效时间:标志
etc/group 文件
存放组信息
每行含义:组名:口令:组标志:组内用户列表

man ls

help cd

pwd

ls
ls -l
ls -la (显示文件以及隐藏文件)

cd

mkdir
mkdir XX
mkdir -p /usr/local/a/b/c

rmdir
删除文件夹命令(文件要是一个空目录)
rmdir /usr/local/a (a是一个空目录)
rmdir -rf /usr/local/a (强制删除)

touch
创建空文件
touch aa.txt
rm -f aa.txt

cp
cp source dest
cp /usr/local/a.txt /usr/local/p/a.txt
cp -r /usr/local/aa /usr/local/p/bb 复制文件夹

rm
rm -f /usr/local/aa.txt
rm -rf /user/local/dicdemo

mv
移动文件或者重命名
mv /usr/local/aa.txt /usr/local/bb.txt 重命名
mv /usr/local/aa.txt /usr/local/cc 系统文件

cat
cat /usr/local/aa.txt
cat -n /usr/local/aa.txt 显示行号

more

less

会覆盖之前的文件

追加
ls -al >aa.txt
ls -al >>aa.txt

echo
输出内容到控制台
echo $PATH

head
用于显示文件的开头部分,默认情况下head指令显示文件前10行内容
head /usr/local/aa.txt
head -n 5 /usr/local/aa.txt

tail
显示尾部文件(10行)
tail 文件
tail -n 5 文件
tail -f 文件

In
软连接
In -s /root linlToRoot
ls
进入root目录
rm -f linlToRoot

history

日期
date
date 显示当前日期
date +%Y 显示年份
date +%m
date +%d
date +%Y-%m-%d %H:%M:%s

date -s "" 设定时间

cal
查看日历
cal 2020

find
find /home - name aa.txt 按照名称查询
find /opt - user xm 按照用户查询
find /home - size -20M

locate
基于数据库指令快速定位文件,第一次运行前需要使用updatedb指令

grep |
cat /usr/local/aa.txt | grep -n 哈哈
-n 显示行号
-i 忽略大小写

压缩

gzip、gunzip
gzip aa.txt (不会保留原来的文件,压缩成为.gz文件)
gunzip aa.txt.gz

zip 、 unzip (zip)
zip -r 压缩后的文件名 路径
zip 压缩后的文件 文件名

unzip -d 解压后放在哪里 压缩文件名

tar (.tar.gz)
tar -zcvf 压缩后的文件名 文件1 文件2……
tar -zxvf 压缩后的文件名 解压目录

组管理和权限管理

所有者、所在组、其他组、改变用户所在组

ls -ahl 查看文件的所有者

groupadd police
usradd -g police xm
passwd 123456
su xm
touch aa.txt 
ls -ahl

修改文件所有者:

修改文件所有者:	
chown 用户名 文件名 修改文件所有者chown root aa.txtls -ahlid xmchown newowner:newgroup 文件名 改变用户的所在组和所有者- R 如果是目录 则是其下的所有子文件或者目录递归生效case:1)将home/abc.txt 文件的所有者调整为tomchown tom /home/abc.txt2)将home下kk目录的所有文件或者目录的所有者都调整为tomchown -R tom /home/kk
chgrp 组名 文件名groupadd hahachgrp haha aa.txt
case:1)将home/abc.txt 文件的所在组修改为policchgrp police /home/abc.txt2)将home下kk目录的所有文件或者目录的所在组都调整为policechgrp -R police /home/kk

修改用户的所在组:

usermod -g 组名 用户名 改变用户所在组
usermod -d 目录名 用户名 改变用户登录的初始目录

权限的基本介绍

ls -l 命令
-rwxrw-r-- 1 root root 1212 时间0到9位 -rwxrw-r-- 说明
第0位确定文件的类型:- 普通文件 d 文件夹 l 软连接
第1-3位:文件所有者所拥有的权限
第4-6位:文件所在组所拥有的权限
第7-9位:其他组所拥有的权限

rwx权限详解

	rwx 作用到目录rwx 作用到文件夹

修改权限

chmod 命令,可以修改文件或者目录的权限

第一种方式
第一种方式:+ - = 
u:所有者 g:所在组 o:其他人 a:所有人
1)chmod u=rwx,g=rx,o=x  文件目录名称
2)chmod o+w 文件目录名
3)chmod a-x 文件目录名
case:
1.给abc文件的所有者 读写执行  ,所在组 执行 ,其他 读执行
chmod u=rwx,g=x,o=r abc
chmod u+rwx g+x o+r abc2.给abc文件所有者除去 执行权限,新增 组写权限
chmod u-x g+w abc
第二种方式 通过数组变更权限
	规则r=4 w=2 x=1rwx=4+2+1=7chmod u=rwx,g=rx,o=x aa.txtchmod 751 aa.txt

linux运行级别说明

标题linux运行级别说明:

0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图像界面
6:系统重启

常用运行级别是3和5
要修改默认的运行级别可修改文件:/etc/inittab 的id:5 :initdefaule:num

case:
忘记root的密码,怎么找回 ?

crond 任务调度

crond 任务调度

定时的调度脚本或者代码 通过crontab来执行
基本语法:
crontab [选项]-e 编辑crontab定时任务-l 查询crontab任务-r 删除当前用户的所有crontab任务

快速入门:

任务的要求:
设置任务调度文件:/etc/crontab
设置个人任务调度,执行 crontab -e 命令输入任务到调度文件中case:*/1 * * * * ls -l /etc/ > /tmp/aa.txt每分钟执行 ls -l /etc/>/tmp/aa.txt 

参数说明:

占位符说明:
第1个* 第几分钟
第2个* 一天中的第几小时
第3个* 一个月中的第几天
第4个* 一年当中的第几个月
第5个* 一年当中的第几星期特殊符号说明:* 代表任何时间, 代表不连续的时间 0 8 12 * * * * 执行- 代表连续的时间*/n 代表每隔多久执行一次

case:

45 22 * * * 在22点45分中执行命令
0 17 * * 1  每周1的0点和 17点执行命令
0 5 1,15 ** 1号和15号的 5点执行命令
40 4 * * 1-5 每周1到周五的4点40执行命令
*/10 4 * * * 每天4点每隔10分钟执行一次命令
0 0 1,1/15 * 1 1号和15号,每周1的0点0分都会执行命令,注意 周几和几号最薄不要同时出现

练习:

1)每隔1分钟,就将当前日期信息追加到/tmp/mydate文件中a. 先编写一个testcron.sh文件date >> /tmp/mydateb. 授权chmod 744 /home/testcron.sh c. crontab - e*/1 * * * * /home/testcron.sh 备份数据库
/usr/local/mysql/bin/mysqldump -uroot -proot testdb > /tmp/mydb.bak

linux 安装redis

1. 拷贝redis安装包到对应的目录下。解压

在这里插入图片描述

2.make

在这里插入图片描述### 3. make install在这里插入图片描述

4.到 /usr/local/bin

在这里插入图片描述

5. 修改redis 为后台启动

在这里插入图片描述

6.启动redis ,使用 redis-cli 进入,测试

在这里插入图片描述

7.关闭 redis

redis-cli shutdown
redis-cli -p 6379 shutdowm
在这里插入图片描述

linux 安装nginx

安装nginx 需要的包

pcre
openssl
zlib
nginx

yum install wget

1.首先安装 pcre

(1)wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
(2)进入到 pcre-8.37 目录
./configure
(3) make
(4)make install

2. 安装 openssl zlib

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

3.安装nginx

解压nginx
进入到安装目录
./configure
make这里有报错
make: *** No rule to make target `build', needed by `default'. Stop.
解决办法
方法一:
网络上说 : 更新yum
我更新yum之后,然后重新解压,进入目录,./configure ;make && make install 依旧有问题;
方法二:
出现此种情况,是linux系统没有安装先决条件
 1GCC——GNU编译器集合(GCC可以使用默认包管理器的仓库(repositories)来安装,包管理器的选择依赖于你使用的Linux发布版本,包管理器有不同的实现:yum是基于Red
Hat的发布版本;apt用于DebianUbuntu;yast用于SuSE Linux等等。)RedHat中安装GCC:yum install gccUbuntu中安装GCC:apt-get install gcc2PCRE库(Nginx编译需要PCREPerl Compatible Regular
Expression),因为NginxRewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码,这正是我们需要的理由。)RedHat中安装PCRE:yum install pcre pcre-develUbuntu中安装PCRE:apt-get install libpcre3 libpcre3-dev3、zlib库(zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。如同安装PCRE一样,同样需要安装库和它的源代码:zlib和zlib-devel。)RedHat中安装zlib:yum install zlib zlib-develUbuntu中安装zlib:apt-get install zlib1g zlib1g-dev4OpenSSL库(在Nginx中,如果服务器提供安全网页时则会用到OpenSSL库,我们需要安装库文件和它的开发安装包(openssl和openssl-devel)。)RedHat中安装OpenSSL:yum install openssl openssl-develUbuntu中安装OpenSSL:(注:Ubuntu14.04的仓库中没有发现openssl-dev):apt-get install openssl openssl-dev

这种方法解决掉了 我上面的问题
环境问题有很多情况。

4. 查看nginx 安装在那个目录下

whereis nginx

查看是否启动成功默认端口 是 80

Linux 安装 jdk

1. 下载安装包

tar -zxvf XXX

2. 重命名文件,删除jar

在这里插入图片描述

3. 找到etc/profile 配置以下内容

export JAVA_HOME=/opt/jdk/jdk8  #jdk安装目录export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}

在这里插入图片描述

4. 环境变量生效命令

source /etc/profile

5. Java -version在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法——双指针】LeetCode 1089 复写零

千万不要被这道题标注着“简单”迷惑了,实际上需要注意的细节很多。 题目描述: 解题思路: 正序遍历,确定结果数组的最后一个元素所在的位置;知道最后一个元素的位置后倒序进行填充。 先找到最后一个需要复写的数 先…

javaee dom4j读取xml文件

引入jar包 dom4j-1.6.1.jar 创建xml文件 <?xml version"1.0" encoding"UTF-8"?> <books><book id"1"><title ID"t1">背影</title><price>88</price><author>三毛</author>…

Excel表格制作,快速提升效率好方法!

“作为一个刚开始工作的职场新人&#xff0c;每天要做各种不同的表格&#xff0c;真的让我很崩溃&#xff0c;感觉我对这些表格制作一点都不了解&#xff0c;Excel表格制作有什么比较好的方法吗&#xff1f;” Excel作为一款广泛应用于各个领域的管理和分析工作&#xff0c;给我…

【STM32】FreeRTOS消息队列和信号量学习

一、消息队列&#xff08;queue&#xff09; 队列是一种用于实现任务与任务之间&#xff0c;任务与中断之间消息交流的机制。 注意&#xff1a;1.数据的操作是FIFO模式。 2.队列需要明确数据的大小和队列的长度。 3.写和读都会出现堵塞。 实验&#xff1a;创建一个消息队列…

qt5.15.2 使用mysql8.1

报错&#xff1a; QMYSQL driver not loaded 报错&#xff1a;无 QMYSQL 使用 QStringList drivers QSqlDatabase::drivers(); //获取现在可用的数据库驱动 foreach(QString driver, drivers) qDebug() << driver; “QSQLITE” “QMARIADB” “QMYSQL” “QMYSQL3” “…

Linux常用命令——dmidecode命令

在线Linux命令查询工具 dmidecode 在Linux系统下获取有关硬件方面的信息 补充说明 dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息。dmidecode的作用是将DMI数据库中的信息解码&#xff0c;以可读的文本方式显示。由于DMI信息可以人为修改&#xff0c;因此里面…

网络编程的使用

文章目录 基础代码URL类进行传输编码解码 协议TCPUDPhttp PORT端口协议的实现TCPUDP 模拟服务器 基础代码 最后一个是&#xff1a;只要再timeout时间内连接上就是true URL类 导了一个common-iojar包&#xff0c;那个IOUtils就是那个里面的工具类 进行传输编码解码 协议 TC…

【Spring Cloud +Vue+UniApp】智慧建筑工地平台源码

智慧工地源码 、智慧工地云平台源码、 智慧建筑源码支持私有化部署&#xff0c;提供SaaS硬件设备运维全套服务。 前言&#xff1a;互联网建筑工地&#xff0c;是将互联网的理念和技术引入建筑工地&#xff0c;从施工现场源头抓起&#xff0c;最大程度的收集人员、安全、环境、材…

微信小程序调用map数据 并在wxml中对数组进行截取的操作

wxs文件的位置如图 实现数组截取 只保留五张图片 <wxs module"filter" src"./slicefunc.wxs"></wxs> <view class"wrap"><view class"search-box" bindtap"toSearch"><view class"v1"…

【几个python虚拟环境会遇到的问题】

几个python虚拟环境会遇到的问题 twine is not recognized as an internal or external command,operable program or batch file.setup命令不报错但不起作用pipreqs is not recognized as an internal or external command,operable program or batch file. ‘twine’ is not …

快递管理系统springboot 寄件物流仓库java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 快递管理系统springboot 系统有1权限&#xff1a;管…

11. Docker Swarm(二)

1、前言 上一篇中我们利用Docker Swarm搭建了基础的集群环境。那么今天我们就来验证以下该集群的可用性。上一篇的示例中&#xff0c;我创建了3个实例副本&#xff0c;并且通过访问http://192.168.74.132:8080得到我们的页面。 2、验证高可用 1&#xff09;我们可以通过以下命…

13个顶级AI代码助手排行榜【2023最新】

AI代码助手&#xff08;AI Coding Assistant&#xff09;是一种利用人工智能帮助开发人员更快、更准确地编写代码的软件工具。 它可以通过根据提示生成代码或在你实时编写代码时建议自动完成代码来实现此目的。 以下是AI代码助手可以做的一些事情&#xff1a; 与你使用的流行代…

YOLOv5可视化界面

Pyside6可视化界面 安装Pyside6 激活之前的虚拟环境yolov5 在该环境的终端输入以下命令 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside6输入where python找到当前使用的Python的路径 找到该路径下的designer.exe文件&#xff08;/Lib/site-packages/PySi…

布置Zabbix监控

一、在 Web 页面中添加 agent 主机 1.1打开Zabbix的Web页面 2.2在 Web 页面中添加 agent 主机 二、在 Web 页面创建自定义监控项模板 2.1创建模版

Chrome

Chrome 简介下载 简介 Chrome 是由 Google 开发的一款流行的网络浏览器。它以其快速的性能、强大的功能和用户友好的界面而闻名&#xff0c;并且在全球范围内被广泛使用。Chrome 支持多种操作系统&#xff0c;包括 Windows、macOS、Linux 和移动平台。 Chrome官网: https://ww…

css3新增选择器总结

目录 一、属性选择器 二、结构伪类选择器 三、伪元素选择器 四、UI状态伪类选择器 五、反选伪类选择器 六、target选择器 七、父亲选择器、后代选择器 八、相邻兄弟选择器、兄弟们选择器 一、属性选择器 &#xff08;除IE6外的大部分浏览器支持&#xff09; E&#…

嵌入式面试笔试刷题(day10)

文章目录 前言一、数组和链表的区别二、什么是内存对齐三、IIC的时序四、static作用五、查看tty设备的方法六、查找指定文件命令七、三次握手和四次挥手1.三次握手2.四次挥手 八、半关闭状态九、字节流和数据报总结 前言 本篇文章继续讲解笔试和面试。 一、数组和链表的区别 …

PHP 使用ThinkPHP实现电子邮件发送示例

文章目录 首先我们需要设置我们的邮箱客户端授权&#xff0c;获取到授权码找到我们的邮箱设置去账号中找到这一堆服务&#xff0c;找到后开启smtp服务开启服务后管理服务 接下来需要去下载相应的第三方类库(我这里使用的是PHPMailer)在thinkPHP中封装一下邮件服务类实际调用效果…

数据结构—图的应用

6.4图的应用 概念回顾—生成树 生成树&#xff1a;所有顶点均由边连接在一起&#xff0c;但不存在回路的图。 一个图可以有许多棵不同的生成树、含有n个顶点 n-1 条边的图不一定是生成树所有生成树具有以下共同特点 生成树的顶点个数与图的顶点个数相同&#xff1b;生成树是图的…