Linux(基础内容学习)

Linux(基础篇内容)

博客地址,欢迎访问
vmtools:windows和centos共享文件夹
请添加图片描述

在Linux世界里,一切皆为文件

查看linux地址: ifconfig (inet)

reboot 重启

vi文本编译器/Vim

#vim xxx 进入vim一般模式

一般模式 输入i或者a进入编辑模式,esc退回一般模式

一般模式 输入 **: **或者 / 进入命令模式

命令模式 输入**:wq**(保存退出) , :q(退出),:q!(退出不保存)

命令模式 输入esc退回一般模式

一般模式 输入yy复制dd删除(带数字表示行数) p粘贴

命令模式 输入**/加关键字** 回车查找 输入n查找下一个

命令模式 输入**:set nu** 和 :set nonu 设置文件行号或者取消行号

一般模式 输入G开始最末行 gg最首行

输入后 进入一般模式 输入 u 撤销输入

快速定位行号 一般模式下输入 行数+shift + g

关机重启命令

shutdown -h now 或者 halt 立即关机

shutdown -h 1 一分钟后关机

shutdown -r now 或者 reboot 立即重启

sync 将内存的数据同步到磁盘(以上操作前 进行使用!)

登录和注销命令

su - 用户名 更换身份

logout 注销用户回到上一个用户(logout在图像界面下无效,在 s 下有效)

用户管理

添加用户 在home下useradd+用户名(默认家目录在/home/用户名)

useradd -d 指定目录 + 用户名 指定目录生成用户

密码设置 passwd + 用户名 **pwd **显示当前用户所在目录

删除用户保留家目录 userdel + 用户名

删除用户及家目录 userdel -r + 用户名

查询用户信息指令 id + 用户名

切换用户 su - 用户名 根据权限确定是否需要密码

登出 exit

whoami 显示当前使用的身份

who am i 显示最初的身份

who 显示全部登录用户 (?)

用户组: 具有相同权限的多个用户

groupadd + 组名 创建组

groupdel + 组名 删除组

**useradd -g 用户组名 用户 ** 创建用户并添加如组

usermod -g 用户名 用户 修改用户的组

/etc/passwd 用户的配置文件,记录用户信息

/etc/shadow 口令的配置文件

/etc/group 组的配置文件,记录Linux包含的组的信息

实操指令

指定运行级别init 数字

帮助指令

man + 命令 获得帮助信息

help + 命令 获得shell内置命令信息

文件目录类

pwd 显示当前工作目录的绝对路径

ls 显示当前目录所有文件和目录 -a显示隐藏文件 -l列表显示 -lh 更方便看

cd 切换到指定目录 **~**回到自己的家目录 **…**回到当前目录的上级目录

mkdir 创建目录 -p创建多级目录

rmdir 删除****目录(只能删除目录)

touch 创建一个空文件

cp [选项] source dest 指定拷贝文件到指定目录 -r递归复制整个文件夹 \cp 强行覆盖不提示

rm 移除文件或目录 -r递归删除整个文件夹 -f强制删除不提示

mv 重命名或者移动文件 同目录下重命名 不同目录移动文件

cat 查看文件内容 -n显示行号 带上管道命令 | more 更方便

more 快捷交互指令 空格翻页 回车下一行 q退出等等交互指令

more + 查看文件

less 分屏查看文件内容 比more强

ln软链接(符号链接),类似快捷方式

ln -s 原文件目录 软链接名 创建软链接

history 显示已执行过历史命令 +数字 显示多少行 !+ 编号重新执行

时间日期类

date 显示当前时间 +%Y-%m-%d %H:%M:%S 对应 显示当前年 月 日 时间

date -s “新的时间” 修改时间

cal 显示本月月份 cal 2023 显示2023年全部日历

搜索查找类

find 搜索范围 选项 指定目录递归查找

选项有 -name -user -size

size后 **+**表示大于该范围 以此类推

举例

find /home -name hello.txt

find /opt -user nobody

find / -size -200M

locate 快速定位文件路径 (非遍历,建立数据库进行查询)

注意使用前用 updatedb 创建 locate数据库

which 可以查看指令所存放目录

grep 选项 查找内容 源文件 过滤查找 -n 显示匹配行及行号 -i 忽略字母大小写

| 管道符 表示将前一个命令处理结果输出传递给后面的命令处理

举例 cat /home/hello.txt | grep “yes"

grep -n "yes" /home/home.txt

压缩和解压

gzip 文件 压缩文件,只能将文件压缩为*.gz文件

gunzip 文件.gz 解压压缩文件命令

zip 选项 xxx.zip 用于压缩文件 选项 -r 递归压缩,压缩目录

 zip -r myhome.zip/home/ 将home文件夹压缩为myhome.zip

unzip 选项 xxx.zip 用于解压的 选项 -d<目录> 指定解压后文件的存放目录

 unzip -d /opt/tmp myhome.zip 将myhome.zip 解压tmp

tar 打包指令 最后打包的文件是.tar.gz

tar 选项 xxx.tar.gz 打包内容 打包目录,压缩文件格式.tar.gz

选项 -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后文件名 -z打包同时压缩 -x 解包.tar文件

tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt    压缩多个文件
tar -zcvf myhome.tar.gz /home/                     将home文件夹压缩为myhome.tar.gz
tar -zxvf myhome.tar.gz                            解压
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2         将myhome.tar.gz 解压到 /opt/tmp2

组管路和权限管理

每个用户都必须属于一个组

每个文件有所有者,所在组,其他组概念

ls -ahl 查看文件所有者

chown 用户名 文件 改变文件所有者

组的创建与用户管理部分类似 重新复习一下

groupadd 组名 创建组

useradd -g 组名 用户 将用户放入组中

chgrp 组名 文件名 修改文件所在组

usermod -g 新组名 用户名 改变用户所在组

usermod -d 目录名 用户名 改变该用户登录初始目录(用户需要相应权限)

ls -l 中显示的内容中

drwxr-xr-x. 2 aoiner aoiner     4096 3月   1 20:48 公共
文件类型 权限 子目录个数 用户 组   字节 修改时间 文件名

第0位是文件类型 (link快捷文件 directory目录 character字符设备文件 block设备 -普通文件)

第1- 3位 是所有者对文件的权限

第4 - 6位 是确定所属组对该文件的权限

第7 - 9位 确定其他组对该文件的权限

rwx作用到文件

[r] 可读 [w] 可写但不一定可删除 [x] 可执行

若要删除该文件则是对该目录加以修改 所以需要对目录的权限

rwx作用到目录

[r] 可读 [w] 可写=可删除 [x] 可执行

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

chmod 修改文件或目录权限

u:所有者 g:所有组 o:其他人 a:所有人(u+g+o)

方式一 chmod u=rwx,g=rw,o=x 文件/目录 或者 chmod o+w 文件/目录 或者 chmod a-x 文件/目录

方式二 chmod 751 == chmod u=rwx,g=rw,o=x

chown newowner 文件/目录 改变所有者

chown newowner:newgroup 文件/目录 改变所有者和所在组

-R 如果是目录 则使其下所有子文件或目录递归生效 例子:chown -R fox abb

chgrp newgroup 文件/目录 改变文件及目录所有组

警察与强盗的实践总结 获得文件权限但无文件所在目录权限 依旧无法对该文件进行操作

对与目录权限的理解

x(可执行) 可进入目录(可cd) 无法查看目录中的文件数量以及信息(无法用ls) 但可以进入其中的文件中

w 可查看(可ls) 但无法对目录里的文件(非内容)进行删除和添加(无法touch rm)

r 可以进行添加文件和删除文件

定时任务调度

crontab 选项 进行定时任务的调度 如数据库备份等

选项 -e 编辑定时任务 -l 查询crontab任务 -r 删除当前用户所有的crontab任务

service crond restart 重启任务调度

举例

*/1 * * * * ls -l /etc/ > /tmp/to.txt

第一个* 一个小时中的第几分钟

第二个* 一天中的第几个小时

第三个* 一天当中的第几个天

第四个* 一年当中的第几月

第五个* 一周当中星期几

* 代表任何时间,第一个*代表一个小时中每分钟都执行一下
,代表不连续时间,如0,8,12,16 * * * 代表明天8点,12点,16点执行一次命令
- 代表连续时间范围 如 0 5 * *  1-6 代表周一到周六的凌晨五点执行命令
*/n 代表每隔多久执行一次 如*/10 * * * * 代表每隔10分钟执行一次

可编写shell脚本并让crontab进行调度

举例

vim /home/my.sh
在文件中写入 date >> /home/mycal和cal >> /home/mycal
给my.sh执行权限 chmod u+x my.sh
crontab -e 中加入 */1 * * * * /home/my.sh

at 定时任务 为一次性定时计划任务

在用 at 命令时 保证 atd 进程的启动

检测方式 ps -ef | grep atd

at 选项 时间 Ctrl + D 结束at命令的输入

atq 查看系统中的工作任务 atrm 编号 删除已设置的任务

案例

1. 两天后下午五点 /bin/ls/home
at 5pm + 2days
at> /bin/ls /home 
2. 明天17点钟,输入时间到指定文件内
at 5pm tomorrow
at> date > /root/date100.log
3. 2分钟后输出时间带指定文件内
at now + 2minutes
at> date > /root/date200.log

磁盘分区和挂载

硬盘说明

Linux硬盘分为IDE硬盘和SCSI硬盘 目前基本为SCSI硬盘

IDE硬盘 驱动器标识符为 hdx~

hd 表明分区所在设备类型 这里指IDE硬盘
x 为盘号(a为基本盘 b为基本从属盘 c为辅助主盘 d为辅助从属盘)
~ 代表分区,前四个分区用数字1-4表示,他们是主分区或扩展分区,从5开始就是逻辑分区
例如 hda3表示第一个IDE硬盘上的三个主分区或者扩展分区

SCSI硬盘 标识符 sdx~ SCSI硬盘是用‘sd‘来表示分区所在类型的

lsblk 或者 lsblk -f 查看所以设备挂载情况

fdisk /dev/sdb 分区操作

m 显示命令列表
p 显示磁盘分区 同 fdisk -l
n 新增分区
d 删除分区
w 写入并退出
说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q

mkfs -t ext4 /dev/sdb1 格式化此磁盘 ext4为分区类型 格式化后获得UUID

mount 设备名称 挂载目录 挂载

unmount 设备名称 或者 挂载目录

注意 重启后命令行的挂载会失效

永久挂载(自动挂载) 慎重操作

vim /etc/fstab
文件中添加 /dev/sdb1     /newdisk  ext4  defaults  0 0
保存退出重启
磁盘情况查询

df -h 查询系统整体磁盘使用情况

du -h /目录 查询指定目录的磁盘占用情况

-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

工作实用指令

1.统计/opt文件夹下文件的个数
ls -l /opt|grep "^-"|wc -l
2.统计/opt文件夹下文件的个数
ls -l /opt|grep "^d"|wc -l
3.统计/opt文件夹下文件的个数
ls -lR /opt|grep "^-"|wc -l
4.统计/opt文件夹下文件的个数
ls -lR /opt|grep "^d"|wc -l
5.树状显示目录结构tree目录
如果没有tree 用yum install tree
tree /home/

网络配置

Linux网络配置原理图
在这里插入图片描述

ipconfig 查看windows环境中VMnet8网络配置

ifconfig 查看Linux的网络配置

IP地址需要在同一网段才可以ping通

ping 目的主机 测试当前服务器是否可以连接目的主机

linux网络环境配置

方法一 自动获取 特点:linux启动后会自动获得IP,缺点是ip可能每次不同

方法二 指定ip 直接修改配置文件来指定ip,并可以连接到外网

实践

vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO 改为 static
IP地址 IPADDR = 192.168.200.130
网关 GATEWAT = 192.168.200.2
域名解析器 DNS1 = 192.168.200.2
在虚拟器编辑中 VMnet8中子网改为192.168.200.0
NAT设置中 网关IP 改为 192.168.200.2
重启网络服务或者重启机器
service network restart 或者 reboot
设置主机名和hosts映射

hostname 查看当前主机名

vim /etc/hostname 查看并修改主机名

设置hosts映射

1.windows中  在C:\Windows\System32\drivers\etc\hosts文件中指定
ip + 名称
2.linux中    在/etc/hosts文件中指定
ip + 名称

Hosts 是文本文件 记录IP和Hostname的映射关系

DNS 就是 Domain Name System的缩写 翻译过来是域名系统 是域名和IP相互映射的分布式数据库

在输入网址后 >> 浏览器缓存 >> DNS缓存 >> host文件中寻找 >> 公网DNS数据库中寻找 >> 域名不存在

在这里插入图片描述

ipconfig /displaydns DNS域名解析缓存

ipconfig /flushdns 手动清理dns缓存

进程管理(重点)

在Linux里,每一个执行的程序被称为一个进程 会分配一个ID号(pid,进程号)

当程序(代码//静态) >> 运行起来后 >> 进程(动态)

进程分前台和后台 前台屏幕显示 一般服务都是以后台进程方式存在且常驻在系统

ps 查看目前系统执行的进程 -a 显示终端所有进程信息 -u 以用户格式显示进程信息 -x 显示后台进程运行的参数 -e显示所有进程 -f 全格式显示 |grep xxx 查看某个进程

USER 进程执行用户
PID 进程号
PPID 父进程 
%CPU 占用cpu百分比
%MEM 占用物理内存百分比
VSZ 占用虚拟内存的大小
RSS 占用物理内存的大小
TTY/TT 终端信息
STAT 运行状态 (S/sleep休眠  r运行状态  D短期等待  Z僵死进程  T被跟踪或停止)
STARTED 执行开始时间
TIME 占用cpu时间
COMMAND 进程名/执行该进程的指令

kill 选项 进程号 通过程序号杀死进程 -9表示强迫进程立即停止

killall 进程名称 通过进程名称杀死进程,也支持通配符 ,在系统负载过大而变慢时有用,父进程被杀死,子进程岂能苟活

实例演示

1.踢掉非法登录用户
ps -aux| grep sshd
kill 11421

2.终止远程登录范围sshd,适当时重启
ps -aux| grep sshd
kill 10748
/bin/systemctl start sshd.service

3.终止多个gedit,演示killall
killall gedit 

4.强制杀死一个终端
ps -aux| grep bash 
kill -9 10487 

pstree 选项 直观查看进程信息 -p显示进程PID -u显示进程所属用户

服务(service)管理

后台程序 = 守护进程 = 服务

service 服务名 [start | stop | reload | status]

CentOS7.0后 很多服务不在使用service 而是 systemctl /etc/init.d中的服务可以继续用 service 管理;

查看服务名的方式

1. setup -> 系统服务         	查看全部
2. ls -l /etc/init.d 				  查看service指令管理的服务
服务的运行级别

常用 3 和 5;

在这里插入图片描述
开机流程

开机 > BIOS > /boot > systemd 进程1 > 运行级别 > 运行对应的服务

运行级别三 multi-user.target 运行级别五 graphical.target

systemctl get-default 查看当前运行级别

systemctl set-defailt TARGET.arget 指定运行级别

chkconfig 给服务的各个运行级别设置自启动(/etc/init.d里的指令)

chkconfig --list | grep xxx 查看可管理服务

chkconfig --level 5 服务名 on/off 控制运行级别下的服务是否自启动

systemctl [start | stop | restart | status] 服务名 service 服务管理

systemctl指令可管理服务在 /usr/lib/systemd/system 中查看

systemctl list-unit-files [ | grep 服务名] 查看服务开机启动状态

systemctl enable 服务名 设置服务开机启动 35运行级别同时

systemctl disable 服务名 关闭服务开机启动

systemctl is-enabled 服务名 查询某个服务是否自启动

某个服务关闭自启动 == 永久关闭

firewall防火墙指令

firewall-cmd --permanent --add-port = 端口号/协议 打开端口

firewall-cmd --permanent --remobe-port = 端口号/协议 关闭端口

关闭和开启端口后需要重新载入防火墙 firewall-cmd --reload

firewall-cmd --query-port = 端口/协议 查询端口是否开放

动态监管进程

top 选项 显示正在执行的进程 与ps类似 但top在执行一段时间可以更新正在运行的进程

-d 秒数 指定top命令每隔几秒更新,默认三秒 -i 使top不显示任何闲置和僵死程序 -p 通过指定监控程序ID来监控某个进程的状态

如何看top中的监管信息
在这里插入图片描述
在top监管信息中 **P **按CPU使用率排序,默认僵死此项 **M **以内存使用率排序 **N **以PID排序 **q **退出top

监控指定用户 top中输入u 再输入用户名

终止指定进程 top中输入k 再输入要结束的进程号

netstat 选项 监控网络状态 -an按一定顺序排列输出 -p显示那个进程正在调用

Proto 网络协议     Local Address 本地地址     Foreign Address 外部地址

ping + ip 检测主机是否正常

RPM与YUM

rpm 用于互联网下载包的打包与安装 生成具有.RPM扩展名的文件

rpm -qa|grep xx 查看已安装的rpm列表

rpm -q xxx 指定查询是否安装 rpm -qi 查询软件包信息 rpm -ql 查询软件包中的文件 rpm -qf 文件全路径名 查询文件所属软件包

rpm -e RPM包的名称 卸载rpm包 –nodeps 强制删除(不推荐) rpm -ivh RPM包全路径名称 i安装 v提示 h进度条 安装rpm包

Yum是一个以Shell前端软件包管理器 可以从指定服务器中自动安装RPM包并安装

yum list | grep xx软件列表 查询是否有所需安装软件

yum install xxx 下载安装

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值