Linux基础:基础知识

Linux介绍

         Linux,是一种免费使用,开源和自由传播的类UNIX操作系统。是一个多用户,多任务,支持多线程和多CPU的操作系统。它支持32位和64位硬件。是一个性能稳定的多用户网络操作系统。

linux下的目录介绍(CentOS7)

在这里插入图片描述

         根目录:一般只存放目录,不存放文件,原则上不修改(删除)根目录下的内容,否则可能造成系统崩溃。
         bin:存放可执行的二进制文件的目录(所有用户都能执行),比如常用的命令:cat,ls等。有些系统会存在sbin目录,顾名思义,就是给超级用户用的目录,该目录所有命令只能通过root权限用户执行。

         boot:存放Linux系统启动时用到的一些文件(一定不能删除)。比如:系统引导管理器:/boot/grub
         dev:存放Linux系统下的设备文件。访问该目录下某个文件,相当于访问某个设备,比如挂载光驱:mount /dev/cdrom /media;

/**
 * 挂载,将光盘挂载到media目录。
 * 挂载是linux本身的文件目录与硬件设备的文件目录合二为一的过程
 * /
mount /dev/cdrom /media
// 卸载
umount /dev/cdrom
//  查询
df -h
// 查看卸载时报错 target is busy。 谁在占用(yum install -y psmisc)
fuser -mv /media
// 将占用media进程kill掉
fuser -kv /media

         etc:系统默认存放配置文件的地方,比如:etc/init.d,/etc/sysconfig。 不建议在此存放可执行文件。
         home:普通用户的家目录。新增用户账号时,用户的家目录都存放在此目录下。~表示当前目录的家目录, ~xxx表示xxx家目录;
        opt:给主机额外安装软件所放置的目录;
        root:系统管理员root的家目录。
        tmp:临时目录,比如文件上传(文件不是很重要,操作空间大)。
        var:存放经常修改的数据,比如程序运行的日志文件等。
        usr:用户自己的软件安装处。
        mnt: 测试目录,用于了存放测试数据。

输入输出错误重定向

        输入重定向:将输入的内容写入到指定的文件中去。
        输出重定向:将输出的内容写入到指定的文件中去。
        错误重定向:将错误的内容写入到指定的文件中去。
        一般系统中不允许我们将错误内容打印到控制台,而是写入到文件中持久化起来。

文件描述符

名称文件描述符用途
stdin0(可以省略)标准输入
stdout1(可以省略)标准输出
stderr2(不可省略)标准错误输出
  • 输入重定向: <
  • 输出重定向: > (覆盖写入),>> (追加写入)
// 将查询到的数据,输出到wp.txt中
ps -ef |grep nginx > wp.txt
  • 错误重定向: llll 2
// 将打印的信息不打印到控制台, 
llll 2 > wp.txt   

管道符

        管道符:将管道符左侧的输出结果传输给右侧作为参数。

	ps -ef |grep -v grep |grep nginx	// 去掉当前grep查询nginx对应的进程

VI编辑器

        vi编辑器是一款强大的编辑器,vim是vi的升级款,可以显示不同的字体颜色(不过很多Linux不自带vim,需要自行下载)。

  • 命令模式:不可编辑模式,在插入模式按esc后,或者进入编辑文件后未按“i”之前。
$ 		#移动到这一行的行尾
gg 		#移动到文档第一行行首
G 		#移动到文档最后一行行首
x 		#删除内容,删除一个字符
dd 		#删除游标所在的那一整行
u 		#复原原来的操作
v 		#选中范围
y		#复制选中范围
p 		#粘贴
  • 插入模式:按住键盘的 “i”
  • 底行模式:前提是得在命令模式,输入 : 进入。
# 都需要先输入 :
n 						#n为数字。光标移动到第n 行
/ 						#寻找内容
%s/word1/word2/g 		#从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
n1,n2s/word1/word2/g 	#n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代
为 word2
set nu 					#显示行号
set nonu 				#取消行号
q!					 	#强制离开不保存
wq 						#离开并保存
wq! 					#强制离开并保存
! 						#暂时离开(可以在!后输入Linux命令,比如查询,查看某个文件)

用户和用户组管理

        Linux是一个多用户、多任务的操作系统。一个Linux系统,可以有多个用户同时登录并进行工作,互不干扰。这是windows做不到的。
        1. Linux用户分类:

  • 超级管理员 root: 拥有完全的权限。root的UID是0
  • 普通用户:权限有一定的限制,可以登录系统。一般可以执行/usr/local/bin或者/bin或者/usr/bin或者自己家目录的命令。无法越权执行命令。普通用户的UID: 500-60000(CentOS6),1000-60000(CentOS7)
  • 系统用户:一般不会登录系统,是用来维持某个服务程序。 系统用户UID:1-499(CentOS6),1-1000(CentOS7)

        2.用户的配置文件:

  • 账号信息:/etc/passwd
  • 密码信息:/etx/shadow
// 密码文件中
用户		密码占位符	UID			GID		用户描述	  用户的家目录					登录后使用shell的解释
lighthouse	:	x	:	1000	:	1000	:		:	/home/lighthouse	:	/bin/bash

/sbin/nologin #是不可登录的
/bin/bash #可以登录

        3.添加用户(useradd):

  • -u #指定用户UID
  • -d #指定用户家目录
  • -g #指定用户所属组
  • -r #指定用户是系统用户
  • -s #用户登录shell解释器
  • -M #不创建家目录
// 创建一个test用户,指定UID 10032 指定家目录为/home/test 指定所属组为root,指定可以登录
useradd -u 10032 -d /home/test -g 0 -s /bin/bash test

        登录用户时出现以下信息如何解决:

如下:
bash-4.2$
bash-4.2$
解决:复制相关信息到家目录
cp -r /etc/skel/.bash* /home/用户名/

        4.删除用户(userdel):

# 删除 test用户
userdel test		#不会删家目录
userdel test -r		# 删除家目录

        5.修改用户(usermod):

  • -u #指定用户UID
  • -d #指定用户主目录
  • -g #指定用户所属组
usermod -u 10003 test

        7.给用户设置密码(passwd):

passwd test
echo "123456" | passwd --stdin test  # 将test 密码设置为123456

        7.新增用户组(groupadd):
        8.删除用户组(groupdel):

文件属性和权限修改

        1.文件属性

# 查看文件属性
ls -lrti
137121	-rw-r--r--.	1	root	root	242916	Sep 8 14:40	dnf.log
第一列:i节点;i节点可以理解文件id,一个i节点号可以对应多个文件,一个文件只能对应一个i节点号
第二列:文件的类型与权限
 -:代表的是文件;d:代表是目录; l:软链接文件 ;b:代表块设备;c:代表的是硬件设备(键盘)
rw-------:分为三列 rw- --- ---,第一列为所属者的权限,第二列为所属组的权限,第三列为其它的权限
r:表示读权限 ;w:表示写权限;x:表示执行权限
4:表示读权限 ;2:表示写权限;1:表示执行权限

第三列:有多少文件名链接到这个节点(硬链接)
第四列:文件的所有者
第五列:文件的所属组
第六列:文件当前的大小,单位默认为B
第七列:创建或最后一次修改的时间
第八列:文件名

        2.权限修改

  • 修改文件的权限命令chmod:
chmod -R 777 /home/test/*   	#  递归修改test文件目录下所有的文件和目录 -R代表递归 7代表rwx,所以777就是所有人都能读写操作,
chmod u+x /home/test/xxx.log   	#  u修改所有者.  u+x 给所有者增加执行权限
chmod g+x,o-w xxx.log   		#  g修改所属组,o修改其他权限。 给所属组增加执行权限,给其他权限减去写权限。

软链接&硬链接

        软链接:文件有类似于Windows的快捷方式。文件实际上是一个文本文件,其中包含的有另一文件的位置信息。如果源文件删除,则软链接不能用了
        硬连接:指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。如果文件删了,硬链接还能用。
        1.创建软链接&硬链接:

ln -s /var/log/xxx.log /usr/local	#文件名必须要用绝对路径,否则容易读不到

ln /var/log/xxx.log /usr/local	#文件名必须要用绝对路径,否则容易读不到

文件归档

        归档:简称打包,是指把多个文件组合到一个文件中,好处是文件数目变少了,有利于文件的传输以及备份。归档工具:tar 可以将多个文件合并为一个文件
        压缩:是利用速算法将文件有损或者无损的处理,目的是为了节约空间和提高传输速率。压缩工具:gzip,xz等

        解压缩命令。

  • gzip: 压缩比率低,压缩速率快。只能压缩文件,不能压缩目录。 扩展后缀 .gz。
gzip rest.txt  						# 不保留源文件压缩,压缩后rest.txt会被删除,压缩包名rest.txt.gz
gzip rest.txt > rest.txt.gz  		# 可选是否保留源文件压缩,Y,覆盖不保留,N,不覆盖保留。  > 重定向  
gzip -c rest.txt > rest.txt.gz  	# 保留原文件压缩
gunzip rest.txt.gz					# 不保留源文件解压
gzip -d rest.txt.gz					# 不保留源文件解压
gunzip -c rest.txt.gz > rest.txt    # 保留源文件解压,

注意:

#注意,不能写成gzip rest.txt > rest.gz 这样改变了文件后缀,解压会出现问题。
gzip rest.txt > rest.gz    # 错误
  • xz: 压缩速度慢,压缩比率高。可以压缩目录和文件。 拓展名.xz
xz rest.txt							# 不保留源文件压缩
xz -c rest.txt > rest.txt.xz 		# 保留源文件压缩
unxz rest.txt.xz					# 不保留源文件的解压
xz -d -k rest.txt.xz				# 保留原文件的解压
xz -d rest.txt.xz					# 不保留源文件解压

        tar:归档与压缩命令。

  • -c 创建新文件(必须)
  • -f 指定文件格式(必须)
  • -v 显示详细过程
tar -cvf rest.tar rest  # -cvf:创建新文件以及格式,显示压缩过程   rest.tar:归档的新文件名 rest:被归档的目录或者文件
  • -z 以gzip方式归档压缩
tar -zcvf rest.tar.gz rest
  • -J 以xz方式进行归档压缩
tar -Jcvf rest.tar.xz rest
  • -v 解压操作
tar -xf rest.tar.xz
  • -C 指定解压路径
tar -xf rest.tar.xz -C /tem/test   # 指定解压路径

安装命令

        安装好Linux系统后,会有一些命令需要我们自己安装,这边就以netstat与ifconfig命令为例。

#比如找不到telnet命令
[root@VM-12-14-centos ~]# telnet 127.0.0.1 3306
-bash: telnet: command not found

# 安装telnet命令
yum -y install xinetd telnet telnet-server 
# 安装netstat与ifconfig命令
yum -y install net-tools

防火墙

        在centos7 之前默认采用的防火墙是iptables,而在centos 7则是采用firewall。本质上firewall是iptables的一个升级。
        1.查看防火墙服务状态:

# 查看防火墙状态(方法1)
systemctl status firewalld

# Active: active 表示防火墙是启动的

Active: active (running) since Fri 2022-09-09 11:39:37 CST; 3h 31min ago
     Docs: man:firewalld(1)
 Main PID: 2524191 (firewalld)
    Tasks: 2 (limit: 47456)
   Memory: 29.2M
   CGroup: /system.slice/firewalld.service
           └─2524191 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Sep 09 11:39:36 VM-12-14-centos systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 09 11:39:37 VM-12-14-centos systemd[1]: Started firewalld - dynamic firewall daemon.
Sep 09 11:39:37 VM-12-14-centos firewalld[2524191]: WARNING: AllowZoneDrifting is enabled. This is considered an inse>

# 查看防火墙状态(方法2)
firewall-cmd --state

        2.重启防火墙:

#关闭防火墙(已经配置了服务)
systemctl stop firewalld.service

#打开防火墙
systemctl start firewalld.service

#重启防火墙
systemctl restart firewalld.service

        3.查看防火墙开放端口规则:

firewall-cmd --list-port

#查看端口是否被监听
netstat -tunlp |grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3343/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      3343/sshd


        4.开放和关闭端口:

# --permanent表示永久生效,否则重启后失效
# --add-port开放端口
# 80/tcp  端口/端口的协议
#需要reload才有效
firewall-cmd --permanent --add-port=80/tcp 
# 重启防火墙
firewall-cmd --reload

# 关闭端口
#不需要reload
firewall-cmd  --remove-port=80/tcp 

        5.SELinux(Security-Enhanced Linux):它属于增强型防火墙。SELinux提供了非常强大的功能,当然也非常复杂,当然如果能够灵活运用,可以大大提高系统的安全性。
        SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
        SELinux工作模式:

  • enforcing::强制模式。违反selinux 规则的行为将会被阻止并记录到日志中去
  • permissive:宽容模式。违反selinux 规则的行为将会记录到日志中去
  • disabled:关闭模式。

         SELinux配置文件路径:/etc/selinux/config

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值