Linux基础:基础知识
Linux 基础知识点
- linux下的目录介绍(CentOS7)
- 挂载
- 输入输出错误重定向
- 文件描述符
- 管道符
- VI编辑器
- 用户和用户组管理
- 文件属性和权限修改
- 软链接&硬链接
- 文件归档
- 安装命令
- 防火墙
linux下的目录介绍(CentOS7)
根目录:一般只存放目录,不存放文件,原则上不修改(删除)根目录下的内容,否则可能造成系统崩溃。
bin:存放可执行的二进制文件的目录(所有用户都能执行),比如常用的命令:cat,ls等。有些系统会存在sbin目录,顾名思义,就是给超级用户用的目录,该目录所有命令只能通过root权限用户执行。
boot:存放Linux系统启动时用到的一些文件(一定不能删除)。比如:系统引导管理器:/boot/grub
dev:存放Linux系统下的设备文件。访问该目录下某个文件,相当于访问某个设备,比如挂载光驱:mount /dev/cdrom /media;
/*** 挂载,将光盘挂载到media目录。* 挂载是linux本身的文件目录与硬件设备的文件目录合二为一的过程* /
mount /dev/cdrom /media
etc:系统默认存放配置文件的地方,比如:etc/init.d,/etc/sysconfig。 不建议在此存放可执行文件。
home:普通用户的家目录。新增用户账号时,用户的家目录都存放在此目录下。~表示当前目录的家目录, ~xxx表示xxx家目录;
opt:给主机额外安装软件所放置的目录;
root:系统管理员root的家目录。
tmp:临时目录,比如文件上传(文件不是很重要,操作空间大)。
var:存放经常修改的数据,比如程序运行的日志文件等。
usr:用户自己的软件安装处。
mnt: 测试目录,用于了存放测试数据。
挂载
Linux一切皆文件。所以linux系统将所有的硬件设备当做文件来处理。这样就导致需要将设备挂载到系统中,才能让系统识别设备。如果不挂在,那么是无法通过命令来寻找设备的(通过图形界面可以)。
挂载的本质其实是将硬件设备的文件目录和Linux本身的文件目录合二为一。
常用的场景:比如用内网服务器,不允许连外网,那么可以通过挂载光盘来从光盘获取jar包等内容。
// 挂载命令
mount /dev/cdrom /media// 卸载命令
umount /dev/cdrom
在卸载的时候可能会出现忙碌状态。
[root@localhost media]# umount /dev/cdrom
umount: /media: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
解决方案:
// 安装fuser
yum install -y psmisc
// 查询谁在使用某个文件夹
fuser -mv /media
// 杀死使用media的用户进程
fuser -kv /media
输入输出错误重定向
输入重定向:将输入的内容写入到指定的文件中去。
输出重定向:将输出的内容写入到指定的文件中去。
错误重定向:将错误的内容写入到指定的文件中去。
一般系统中不允许我们将错误内容打印到控制台,而是写入到文件中持久化起来。
文件描述符
名称 | 文件描述符 | 用途 |
---|---|---|
stdin | 0(可以省略) | 标准输入 |
stdout | 1(可以省略) | 标准输出 |
stderr | 2(不可省略) | 标准错误输出 |
- 输入重定向: <
- 输出重定向: > (覆盖写入),>> (追加写入)
// 将查询到的数据,输出到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修改其他权限。 给所属组增加执行权限,给其他权限减去写权限。
软链接&硬链接
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 agoDocs: man:firewalld(1)Main PID: 2524191 (firewalld)Tasks: 2 (limit: 47456)Memory: 29.2MCGroup: /system.slice/firewalld.service└─2524191 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopidSep 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
Linux基础:基础知识相关推荐
- 权限认证php,2016年Linux认证基础知识:php做权限管理
2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...
- 查看linux硬核上的线程,给大家分享一点基础硬核知识哦 Linux的基础指令操作Lin...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 给大家分享一点基础硬核知识哦 Linux的基础指令操作L inux的基础指令操作 Linux的指令下达方式很简单,只需要记得几个重要的概念就可以 l: c ...
- Linux系统基础知识
Linux系统基础知识 1.在Linux系统中,以文件方式访问设备. 2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Linux操作系统基础知识学习
Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...
- Linux的基本知识和基础操作
Linux的基本知识和基础操作 一.基本知识 Linux是基于Unix的 Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各种 ...
- Linux 系统基础知识
温故而知新,可以为师矣.好久没有再次系统学习 Linux 相关的知识了,总结回顾一下,为了更好的前进. 一.环境搭建 环境的配置,是我们学习的基础.环境配置会用到的工具及环境: (1) Int ...
- Linux常用基础知识必备三之常用指令及操作
Linux常用基础知识必备三之常用指令及操作 1.vi和vim vi如何使用 vi几种模式下的操作指令 命令模式进入编辑模式 命令模式下的快捷键 底行模式(指按了esc键之后输入按键:后出现) 字符串 ...
- linux系统下io的过程,Linux系统基础知识:IO调度
Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...
- Linux入门基础知识
注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...
最新文章
- linux 下/proc/cpuinfo三级缓存,linux /proc/cpuinfo文件分析
- python全栈-Day 14
- Vue.js 状态管理
- 计算机基础知识菜鸟教程,机器学习基础知识整理归纳
- kie-api_KIE-WB / JBPM控制台Ng –配置
- 解决删除镜像时image is referenced in multiple repositories
- 为啥浏览器中的对象和w3c不一样??
- 页面文字请使用css进行控制,css控制页面文字不能被选中user-select:none;
- 测试加减乘除c语言,科学网-一个C语言加减乘除的小程序-杜波的博文
- Linux inittab和oracle lsntctl 启动的问题解决办法
- 废旧安卓手机利用(一)安装linux系统(Centos、Debian)
- Python学习笔记——变量(图灵学院)
- 贪婪洞窟2怎么在电脑上玩 贪婪洞窟2安卓模拟器教程
- AMD intel CPU 型号对比
- 太原理工大于丹计算机,太原理工大学硕士生将参加中国第30次南极考察
- 【转】互操作性的区块链系统设计理念
- Navicat Premium 12.0.22安装与激活
- sybase ASE在unixlinux上的自动备份脚本
- Web服务器python编程
- 怎么把收藏夹变成html文件,用Delphi将IE收藏夹导出为HTML文件
热门文章
- 从打击App刷榜看苹果的底线
- 5s硬件测试软件,iphone怎么检测硬件故障
- Acer宏碁笔记本电脑 暗影骑士 AN515-52原装出厂恢复原厂系统1709
- 2019年最新Java面试题及答案整理(下)
- spring-cloud集成数据库版本迁移工具flyway
- jQuery动态创建的元素无法删除?—— 事件委派找其静态父级
- python语言最适合的领域_Python语言被广泛用在哪些领域了?
- 丰田在北美的工厂配置了Invisible AI的智能系统
- 并联串联混合的电压和电流_图文详解:电流互感器的接线方法及相关注意事项!还不收藏?...
- 手把手教你手撕SPF生成树(OSPF区域内防环)