Linux学习笔记(一)
如果有自己的物理服务器请先查看这篇文章
文章目录
- 网卡配置
- Linux基础指令
- ls:列出目录内容
- cd(mkdir.rmkdir): 切换文件夹(创建,删除操作)
- cp:复制文件或目录
- mv:文件/文件夹移动
- cat:查看文件
- vi:文件查看编辑
- man:查看命令手册
- more: 查看文件内容
- less : 查看文件内容
- ps: 显示当前进程的状态
- 参数:
- 扩展
- top: 监控linux的系统状况
- 一、top前五条信息解释
- 二、进程信息
- df: 显示文件系统磁盘空间
- du: 显示目录空间使用情况
- 关于用户操作
- whoami:显示当前登录用户名
- useradd: 创建用户
- uesrmod: 加入用户组
- chmod: 权限管理
网卡配置
如果
ssh
连接和yum
都报错,可以查看这篇文章进行网卡配置(注意这个是CentOS的网络配置,一些属性不一样的话请参考其他系统的属性含义)
Linux基础指令
ls:列出目录内容
ls
: 列出目录内容ls
扩展:
查询文件目录中所以的文件ls -a
查询文件中的
权限,所属用户,所属组,文件大小,创建时间,文件名
ls -l
有时可以简写成
ll
如果不能请老实写ls -l
cd(mkdir.rmkdir): 切换文件夹(创建,删除操作)
cd
: 切换文件夹#cd /root/dir #cd dir cd 文件夹路径
mkdir
:创建文件夹mkdir 想要创建的文件夹名称
rmkdir
:删除文件夹(文件夹中内容必须是空的)rmdir 想要删除的文件夹名称
扩展
关于切换文件夹(拓展)
查询当前文件夹从根目录开始的全部路径pwd
文件路径可以是
当前文件夹中的文件夹
,也可以是根目录开始的全部路径
关于创建文件夹(拓展)
递归创建文件夹# mkdir -p dir1/dir2 mkdir -p 想要创建的文件夹名称
关于删除文件夹(拓展)
如果你的文件夹中存在文件夹或者文件,是会删除报错,如何删除文件夹中有文件的文件夹
rm -r 想要创建的文件夹名称
确认删除
rm -ri 想要创建的文件夹名称
强制删除
rm -rf 文件夹名称/文件名
cp:复制文件或目录
cp
:复制文件# cp test.txt test02 # cp test /root/test/ cp 文件名 目标文件夹名称
cp -r
:复制目录# cp -r test2 test1(意思是将test2文件夹复制到test1文件夹中) cp -r 想要复制的文件夹 想要放入的目标文件夹
注意:用户使用该指令复制目录时,必须使用参数
-r
或者-R
复制文件,并在目标文件已存在时进行确认
#cp -i file.txt /path/to/destination/ cp -i 文件名.扩展名 目标文件夹路径
拓展
touch
: 需要复制文件,肯定要有文件,所以下面是创建文件(txt文件为例)# touch test.txt touch 文件名称.扩展名
linux cp命令的其他指令可以查看这里
mv:文件/文件夹移动
mv
:文件/文件夹移动# mv test3 ../(将test3目录移动到上一级目录) # mv test3 /root/dir1(将test3目录移动到指定目录) # mv test3/test1.txt ./(将test3目录中的test1.txt文件移动到当前目录) mv 文件夹(文件) 目标文件夹
拓展
将一个文件夹下的所有文件移动到指定文件夹mv 源文件夹/* 目标文件夹
linux mv命令的其他指令可以查看这里
cat:查看文件
cat
:查看文件#cat file.txt cat 想要查看目标文件.扩展名
注意:
cat
是查看文件中的文件内容,并不会参与编辑, 所以比如如果cat file.txt
,但里面什么都没写,就不会显示内容,注意这并不是查询失败,而是没有内容所以显示什么都没看到
一般我们使用cat指令都是用来查看的, 详情请看
vi:文件查看编辑
vi
: 文件查看编辑vi 文件名.扩展名
这是linux自带的查看编辑
vim
: 文件查看编辑
这是也是文件查看器vim 文件名.扩展名
如果你的控制台报
bash:vim:Not Found(bash:vim:未找到命令)
错,则你需要执行以下操作rpm -qa |grep vim
如果这条指令执行不了
yum -y install vim*
操作方式和
vi
一致。
常用的有ESC键
推出编辑;i键
进入编辑;:q
退出文件;:q!
强制退出;:wq
:退出并保存;:wq!
强制退出并保存
man:查看命令手册
man
:查看命令手册#man vi man linux命令
q键
退出查看
more: 查看文件内容
逐页显示 文件 文档内容
more -s 文件
从第 n 行开始显示文件文档内容。
#more +20 test.txt (从20行开始显示) more +n 文件
详细指令请看
less : 查看文件内容
less
与more
类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
查看文件# less test.txt less 文件名.文件扩展名
ps查看进程信息并通过less分页显示
ps -ef |less
详细指令请看
ps: 显示当前进程的状态
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
ps -ef | grep 进程关键字
打比方查询mysql的运行状态
ps -ef | grep mysql
从左到右看一次是行程拥有者
,PID
,占用的 CPU 使用率
,占用的记忆体使用率
,占用的虚拟记忆体大小
,占用的记忆体大小
,终端的次要装置号码 (minor device number of tty)
,该行程的状态:
,行程开始时间
,执行的时间
,所执行的指令
显示进程信息
ps -A
显示指定用户信息
#ps -u root ps -u 用户名
显示所有进程信息,连同命令行
ps -ef
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
- -A 列出所有的进程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的进程
- au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER
: 行程拥有者PID
: pid%CPU
: 占用的 CPU 使用率%MEM
: 占用的记忆体使用率VSZ
: 占用的虚拟记忆体大小RSS
: 占用的记忆体大小TTY
: 终端的次要装置号码 (minor device number of tty)STAT
: 该行程的状态:D
: 无法中断的休眠状态 (通常 IO 的进程)R
: 正在执行中S
: 静止状态T
: 暂停执行Z
: 不存在但暂时无法消除W
: 没有足够的记忆体分页可分配<
: 高优先序的行程N
: 低优先序的行程L
: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START
: 行程开始时间TIME
: 执行的时间COMMAND
:所执行的指令
详细指令请看
扩展
关闭进程
kill -9 PID
top: 监控linux的系统状况
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
top
一、top前五条信息解释
top - 14:49:28 up 1:33, 1 user, load average: 0.00, 0.00, 0.00
内容 | 含义 |
---|---|
14:49:28 | 表示当前时间 |
up 1:33 | 系统远行时间,格式为时:分 |
1 user | 当前登陆用户数 |
load average: 0.00, 0.00, 0.00 | 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值 |
Tasks: 80 total, 2 running, 78 sleeping, 0 stopped, 0 zombie
内容 | 含义 |
---|---|
Tasks: 80 total | 进程总数 |
2 running | 正在运行的进程数 |
78 sleeping | 睡眠的进程数 |
0 stopped | 停止的进程数 |
0 zombie | 僵尸进程数 |
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
内容 | 含义 |
---|---|
0.0%us | 用户空间占用CPU百分比 |
0.0%sy | 内核空间占用CPU百分比 |
0.0%ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
100.0%id | 空闲CPU百分比 |
0.0%wa | 等待输入输出的CPU时间百分比 |
0.0%hi | 硬中断(Hardware IRQ)占用CPU的百分比 |
0.0%si | 软中断(Software Interrupts)占用CPU的百分比 |
0.0 st | 用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间 |
Mem: 1922488k total, 406936k used, 1515552k free, 11940k buffers
内容 | 含义 |
---|---|
1922488k total | 物理内存总量 |
406936k used | 使用的物理内存总量 |
1515552k free | 空闲内存总量 |
11940k buffers | 用作内核缓存的内存量 |
Swap: 835576k total, 0k used, 835576k free, 111596k cached
内容 | 含义 |
---|---|
835576k total | 交换区总量 |
0k used | 使用的交换区总量 |
835576k free | 空闲交换区总量 |
111596k cached | 缓冲的交换区总量 |
二、进程信息
列名 | 含义 |
---|---|
PID | 进程id |
USER | 进程所有者的用户名 |
PR | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 命令名/命令行 |
Ctrl + c
退出实时查看
详细指令请看
df: 显示文件系统磁盘空间
df
详细指令请看
du: 显示目录空间使用情况
方便阅读的格式显示的目标目录所占空间情况
# du -h test1 du -h dirName
详细指令请看
关于用户操作
whoami:显示当前登录用户名
whoami
useradd: 创建用户
#useradd username
useradd 用户名
为添加的用户指定相应的用户组
#useradd -g root tt useradd -g 用户组 用户
创建一个系统用户
#useradd -r tt useradd -r 用户名
为新添加的用户指定home目录
# useradd -d /home/myd tt useradd -d 目标目录 用户名
建立用户且制定ID
# useradd caojh -u 544 useradd 用户名 -u 用户id
详细指令请看
拓展
查看所有用户ls /home
查看用户名和密码
用户名在/etc/passwd
这个文件中;cat /etc.passwd
密码在/etc/shadow
中cat /etc/shadow
如果没有访问权限,请重新启动服务器,以root用户登录
为了安全,系统将明文密码进行了加密。接下来我们看看系统使用了什么加密方式:authconfig --test | grep hashing
Linux实用命令authconfig和authconfig-tui(备忘)
- 查看 autoconf、automake 是否已安装
rpm -qa|grep autoconf rpm -qa|grep automake
2. 查看 autoconf、automake 对应的包yum whatprovides autoconf automake
3. 安装#按照第2部查到的源来写,不一定一定要是是这个 yum -y install autoconf-2.69-30.oe1.noarch yum -y install automake-1.16.1-6.oe1.noarch
其实我们要安装的并不是
autoconf
,这只是介绍了另一种安装方式
安装authconfig
sudo yum install authconfig --skip-broken
如果安装不上也没关系,因为这只是1查询系统加密方式,一般会用
SHA256
加密方式
因为linux系统是单项加密所以要么暴力破解要么破解不了,所以忘记密码的小伙伴请重新设置密码passwd 用户名
扩展
su:切换用户# su chen(管理员切换成普通用户) #sudo su root(普通用户切换成管理员) su 用户名
用户名 is not in the sudoers file.
因为普通用户没有像root一样的运行权限,所以,凡是指令都要先使用sudo
来执行,执行之后需要输入密码,但是出现了用户名 is not in the sudoers file.
问题,解决办法vi /etc/sudoers
增加配置, 在打开的配置文件中,找到root ALL=(ALL) ALL, 在下面添加一行
#其中xxx是你要加入的用户名称 xxx ALL=(ALL) ALL
su:拒绝权限
查看日志:tail -f /var/log/secure|grep su:
以root
为例子vi /etc/pam.d/su
注释这段
auth required pam_wheel.so use_uid
查看
当前如果是是普通用户时,切换回root用户
输入用户密码即可sudo su root
如果没有访问权限,请重新启动服务器,以root用户登录
passwd:设置密码passwd 用户名
详细指令请看
uesrmod: 加入用户组
首先要确认你的Linux有哪些组
cat /etc/group
root
是用户组 ,x
是用户组指令,1002
是用户组id
注意: 创建一个用户后,linux自动会创建相关用户名的组名,比如我创建了一个没有用户的chen
用户,与之对应的linux会帮我们一起创建一个不存在的chen
的组名
实例useradd chen su chen sudo cd test
如果
非root用户使用sudo cd 目录切换不了目录
(首先使用sudo su root
切换到root下)which cd
如果出现
/usr/bin/cd
是正确的
那就要看文件夹的权限了#ll /root/testls -l 查看想要的文件夹(文件)
查看关于关键字的组名
# cat /etc/group|grep chen cat /etc/group|grep 组名
chmod: 权限管理
#chmod 777 fileName
chmod 777 文件夹名(文件)
这个是对全部人进行开放
详细指令请看
相关文章:

Linux学习笔记(一)
如果有自己的物理服务器请先查看这篇文章 文章目录 网卡配置Linux基础指令ls:列出目录内容cd(mkdir.rmkdir): 切换文件夹(创建,删除操作)cp:复制文件或目录mv:文件/文件夹移动cat:查看文件vi:文件查看编辑man:查看命令手册more: 查看文件内容less : 查看文件内容 ps: 显示当前进…...
Python 爬虫 教程
python爬虫框架:Scrapyd,Feapder,Gerapy 参考文章: python爬虫工程师,如何从零开始部署ScrapydFeapderGerapy? - 知乎 神器!五分钟完成大型爬虫项目 - 知乎 爬虫框架-feapder - 知乎 scrap…...

uniapp原生插件 - android原生插件打包流程 ( 避坑指南一)
【彩带- 避坑知识点】: 当时开发中安卓插件打包成功后,uniapp引用插件aar,用云打包 ,总是提示不包含插件。原因是因为module的androidManifest.xml文件没有注册activity。 这一步 很重要,一定要注册。 --------------------------…...

搭建maven私服
maven maven简介 什么是maven? Maven这个单词来自于意第绪语(犹太语),意为知识的积累。 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Maven 除了以…...

EST-100身份证社保卡签批屏按捺终端PC版web版本http协议接口文档,支持web网页开发对接使用
<!DOCTYPE html><html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,initial-scale1.0"><title>演示DEMO</title><script type"text/…...
基于SpringBoot的毕业论文管理系统
文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的毕业论文管理系统,java…...

iToF人脸识别
iToF(间接飞行时间)是一种测量光飞行时间的技术,主要应用于人脸识别。 iToF人脸识别技术在哪些场景下会用到 iToF人脸识别技术可以应用于许多场景,以下是一些常见的应用场景: 平安城市:在城市监控系统中,iToF人脸识别技术可以用于实时监控、目标检测和识别,以及异常行为…...

Django开发3
Django开发3 Django开发编辑用户9.靓号管理9.1 表结构9.2 靓号列表9.3 新建靓号9.4 编辑靓号9.5 搜索手机号9.6 分页 10.时间插件11.ModelForm和BootStrap操作 各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料! Django开发 部门管…...

MS2358:96KHz、24bit 音频 ADC
产品简述 MS2358 是带有采样速率 8kHz-96kHz 的立体声音频模数 转换器,适合于面向消费者的专业音频系统。 MS2358 通过使用增强型双位 Δ - ∑ 技术来实现其高精度 的特点。 MS2358 支持单端的模拟输入,所以不需要外部器 件,非常适…...

【Android12】Android Framework系列---tombstone墓碑生成机制
tombstone墓碑生成机制 Android中程序在运行时会遇到各种各样的问题,相应的就会产生各种异常信号,比如常见的异常信号 Singal 11:Segmentation fault表示无效的地址进行了操作,比如内存越界、空指针调用等。 Android中在进程(主要…...

中间件系列 - Redis入门到实战(原理篇)
前言 学习视频: 黑马程序员Redis入门到实战教程,深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 中间件系列 - Redis入门到实战 本内容仅用于个人学习笔记,如有侵扰,联系删除 学习目标 Redis数据结构Redis网…...
P2249 【深基13.例1】查找
P2249 【深基13.例1】查找 P2249 【深基13.例1】查找 题意 输入n 个不超过10的9次方的单调不减的(就是后面的数字不小于前面的数字)非负整数a1,a2,a3…然后进行 m 次询问。对于每次询问,给出一个整数q,要…...
linux常用shell脚本
查看系统当前进程连接数 netstat -an | grep ESTABLISHED | wc -l 如何在/usr目录下找出大小超过10MB的文件? find /usr -type f -size 10240k 添加一条到192.168.3.0/24的路由,网关为192.168.1.254? route add -net 192.168.3.0/24 netmask 255.2…...

Rust学习笔记005:结构体 struct
在 Rust 中,struct 是一种用于创建自定义数据类型的关键字,它允许你定义和组织数据的结构。struct 可以包含多个不同类型的字段(fields),每个字段都有一个名称和一个类型。 定义结构体 下面是一个简单的例子ÿ…...

maven中dependencyManagement标签
简介 dependencyManagement正如其名,用于项目依赖的统一管理。 在父项目中的pom.xml文件中加入dependencyManagement标签即可完成依赖版本的声明。在声明完成后,子项目(module)中引用相同的依赖时可以不指定version标签自动引入…...

SparkStreaming与Kafka整合
1.3 SparkStreaming与Kafka整合 1.3.1 整合简述 kafka是做消息的缓存,数据和业务隔离操作的消息队列,而sparkstreaming是一款准实时流式计算框架,所以二者的整合,是大势所趋。 二者的整合,有主要的两大版本。 kaf…...
openwrt源码编译
下载openwrt源码 git clone https://github.com/openwrt/chaos_calmer.git // 官方下载地址 当前我们基于15.05版本开发,如果开发者想用最新的OpenWRT系统,可以下载 https://github.com/openwrt/openwrt.git git clone https://github.com/Ying-Yun/o…...
【Leetcode Sheet】Weekly Practice 22
Leetcode Test 1349 参加考试的最大学生数(12.26) 给你一个 m * n 的矩阵 seats 表示教室中的座位分布。如果座位是坏的(不可用),就用 # 表示;否则,用 . 表示。 学生可以看到左侧、右侧、左上、右上这四个方向上紧邻…...

ROS TF坐标变换 - 静态坐标变换
目录 一、静态坐标变换(C实现)二、静态坐标变换(Python实现) 如前文所属,ROS通过广播的形式告知各模块的位姿关系,接下来详述这一机制的代码实现。 模块间的位置关系有两种类型,一种是相对固定…...

香橙派5plus从ssd启动Ubuntu
官方接口图 我实际会用到的就几个接口,背面的话就一个M.2固态的位置: 其中WIFI模块的接口应该也可以插2230的固态,不过是pcie2.0的速度,背面的接口则是pcie3.0*4的速度,差距还是挺大的。 开始安装系统 准备工作 一张…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...