当前位置: 首页 > news >正文

Linux常见操作命令【二】

一、Vi 编辑器

Vi 编辑器存在三者模式:命令、末行、编辑

1.1 命令模式

输入 vi 默认进入命令模式

输入n或者nG:定位到某一行行首
输入G:跳到文件最后一行行首
输入hjkl:表示左下上右移动光标(方向键也可以)
H:当前屏幕第一行行首
M:屏幕中间行行首
L:屏幕最后一行行首
w:一个单词一个单词移动光标
yy 复制光标所在行
nyy 复制光标所在行及以下共n行
p 粘贴
dd 删除光标所在行
ndd 删除n行
p 粘贴(删除再粘贴相当于剪切)
x 删除单个字符
u 撤销之前操作
ctrl+r 重做(针对误撤销操作,撤销之前的撤销操作)
/ 查找目标字符串 (从上向下) 输入n同向查找下个字符,N反向查找下一个
?查找目标字符串 (从下向上) 输入n同向查找下个字符,N反向查找下一个
用/查找/,要加转义字符“\”----/\/
用?查?,要加转义字符“\”----?\?

1.2 末行模式

命令模式下输入 : 进入末行模式

2次esc回到命令模式
:set number 显示行号(:set nu也行)
:q  退出
:q! 强制退出
:w  保存
:wq 保存退出
:wq!强制保存退出
%s/abc/def/g-- 替换,把全文abc替换成def
% 表示替换的范围,整个文件;s表示替换;/是分隔符;g,每行替换所有,如果没有g,每行只替换一次
:%s#abc#def#g  替换 , 也可以用#分隔
:1,5s/abc/def/g-- 替换第1行到第5

1.3 编辑模式

命令模式下输入 a\i\o 进入编辑模式

a\i\o 光标位置不一样
esc 回到命令模式,再保存退出
编辑模式与末行模式不能直接切换,需先到命令模式

二、用户管理

2.1 cat 获取信息

cat /etc/passwd   账号信息存储位置
cat /etc/shadow   存放用户密码、加密、安全保护
cat /etc/group    存储用户组信息

2.2 su(switch user)切换用户

su          切换root(需要密码)
su root     切换root
su -        切换root
su - root   切换root
su  user1   切换user1
su - user   切换user
exit  退回到上一个用户/上一个进程(如果用su,又开启一个新进程,history会不一样)

2.3 用户操作

useradd 添加用户

useradd user1    添加用户user1
useradd -g grop1 user2  在指定的group1组添加用户user2

passwd 给用户指定或修改密码

passwd  修改自己密码
passwd user1  修改user1的密码(root登录)

useramod 修改用户

usermod -l user user1  修改user1为user
usermod -g grop1 user2(-g修改组名group1为user2 )

userdel 删除用户

userdel user1  只删除user1的信息,根目录还在
userdel -rf user1   -r删除user1信息同时删除根目录,f强制删除

2.4 组的操作

groupadd 新增组

groupadd group1  新增group1组

groupmod 修改组

groupmod -n group2 group1  修改组group1为group2

groupdel 删除组

groupdel group2 删除group2

三、权限管理(chmod)

背景知识

- 文件  
d 文件夹
l 软链接
b 块设备(内存、硬盘)
c 字符设备(鼠标、键盘)

rwxrwxrwx 权限

第一组rwx:u(user)文件所有者
第二组rwx:g(group)文件所有者所在组
第三组rwx:o(other)本组以外其他用户
a(all):表示这三组皆是,相当于ugo

rwxrw-r–

r:read 可读权限 
w:write 可写权限    
x:execute可执行权限,可执行文件才有用(shell脚本或命令)

权限的符号形式

+:为指定用户类型增加权限
-:取消指定用户类型的权限
=:表示唯一设定权限

权限的数字形式

二进制表示r:4  w:2  x:1
rwxrwxrwx——777  三组用户拥有全部权限
421421421——777
---------——000  三组用户无任何权限
000000000——000
rw-rw-r--——664  user和group有可读可写权限,other只有可读权限
420420400——664

chmod(change mode)修改权限

chmod u-x test.txt   取消文件test.txt所有者的可执行权限
取消文件test.txt的所有用户的可执行权限
chmod u-x,g-x,o-x test.txt  ==  chmod ugo-x  test.txt  ==  chmod a-x    test.txt(a=ugo)
chmod a+rwx test.txt 赋予文件test.txt所有用户的可读、可写、可执行权限
chmod 000 test.txt  所有用户无任何权限
chomd 644 test.txt  user和group有可读可写权限,other只有可读权限
chomd 777 test.txt  所有用户拥有全部权限
chmod -R 755 test   用于文件夹,子目录和文件都赋同样权限 

chown(change owner修改所有者和组)— 需要root权限

chown root 1.txt  修改1.txt所有者为root
chown :root 1.txt    修改1.txt的组为root
chown root:root 1.txt   修改1.txt所有者和组为root
chown -R root:root 1.txt   修改目录及里面的子目录和文件的所有者和组为root

chgrp(修改文件的组)— 需要root权限

chgrp root 1.txt   修改文件1.txt的组
chgrp -R hll /home/user1  修改目录及里面的子目录和文件的组 

四、文件统计

4.1 wc(word count)

wc test.sh   统计文件里行数、单词数、字节数(英文字符占一个字节,汉字占两个字节)
wc -l test.sh  统计文件有多少行数
wc -w test.sh  统计文件单词数(以空格分隔)
wc -c test.sh  统计文件字节数(统计英文)
wc -m test.sh  统计文件字数(一般用来统计汉字数)
wc *.txt  统计多个文件

4.2 sort 排序

sort 1.txt 2.txt   把此两个文件内容拼在一起,然后对内容进行排序(第一列排,先数字,然后字母,最后汉字)
sort -r 1.txt 2.txt  将这两个文件内容拼在一起,对内容进行倒序排列
sort -u 1.txt  对文件进行排序并去除重复的行
sort -k 5 1.txt 2.txt  指定从第5列首字符排(默认按第一列排,以空格或制表符(\t)分隔)
sort -n -k 5 1.txt(-nk 5同理)-n(number)按照数字大小排序(否则默认当字符串)

4.3 diff(different)

diff 1.txt 2.txt   按行比较2个文件不同地方,显示出来;没有不同不显示
diff -c 1.txt 2.txt  显示全部内容,并标出不同之处
diff -u 1.txt 2.txt  以合并的方式显示文件内容的不同

4.4 ln(link)

ln -s src lnfile 创建软链接---相当于快捷方式
ln -s 1.txt  ln1====cp -s 1.txt ln1
ln src lnfile  创建硬链接(复制文件本身,任意修改源文件src或硬链接lnfile其中一个,2个同步变化)
如果删除src,硬链接无变化,软链接变红

4.5 find 查找文件

find -name d     查找当前目录及子目录下所有d文件或文件夹
find -name ‘*d*'  模糊查找带d的文件或文件夹(*通配符,代表0-N个字符,必须用单引号或双引号)
find -user hll    按属主查找 --不支持模糊匹配
find -group root  按组查找 --不支持模糊匹配
find /hoem/hll -name 1.txt  按文件名查找
find /etc -perm  777  按权限查找(permission)
find -type f      按文件类型查找(f是文件,跟ll那里不一样)
find -size 3M     按大小查找,区间2-3M之间的文件(k\M\G)
find -size 3k     查找区间在2-3k之间的文件
find -size +3k    查找大于3k的文件
find -size -3k    查找小于3k的文件
不能写小数,1.8k应该写2k
find -atime      上次访问时间acess
find -mtime      上次的修改时间modify,ll看到的是修改时间
find -ctime      上次修改的文件权限、属主信息的更新时间,control
find -mtime  5   前第5天,指5-6这段时间----0-1是第0天
find -mtime  +5  (6天以上的)
find -mtime  -5   5天以内的)
表示0-24小时   mtime 0 或者mtime -1
一周以上(7x24h)   mtime +6

4.6 多条件组合

-a:and  两个条件同时满足(可省略)
-o:or   满足一个条件即可
-not:非,查找不符合条件的
find -name "*txt" -not -user hll  查找
find -not type f   查找类型不是文件的

4.7 exec查找并执行命令

find -name 1.txt -exec rm-rf {} \;      {}表示查找的结果。注意{}后面有空格,\;固定格式
find -name '*.txt'  -exec ls -l  {} \;   注意:exec后面命令不能用别名,比如ll。(还有shell脚本里别名也不认识)
find -name 1.txt -exec rm-rf {} \;
find -name 1.txt -delete  
find -name 'l*txt’  | xargs rm -rf   
xargs 是给命令传递参数的一个过滤器,可以将管道或标准输入的数据转换成参数

4.8 grep 快速定位要找的字符串

grep wc *    查找所有文件(*)中的wc字符串
grep -c wc *    统计每个文件中wc字符串的个数
-c(count)以文件为单位,统计目标字符串出现的次数
grep -r hello ll *  查找当前和子目录下的所有目标字符串
grep -i Hello *    不区分大小写
grep -n    增加显示目标字符串所在行号
grep -s    不显示错误信息

find 查找的是文件或目录;grep查找的是字符、文件内容

4.9 快捷命令

which  显示命令全路径(从path中查找可执行文件所在路径)
有的命令既是内部命令又是外部命令,如cd
whereis 除了查找可执行程序位置,还查找帮助手册、库文件等
locate  从数据库查找文件,速度比find快(从硬盘一个个查找),但是只能按文件名查找,且已更新
locate hll.txt
whoami   显示当前登录账号
w        显示本机所有登录信息

五、打包压缩

5.1 tar 打包(参数前的-可省略)

参数解释

-c  打包
-x  解包
-v  显示打包的过程
-f  文件
-z  压缩
tar -cvf test.tar *.txt   把当前目录下所有txt打包成tar包
tar cvf aa.tar ./aa    可用打包目录
tar -xvf test.tar      解包
tar -czvf test.tar.gz *.txt    打包并压缩
把当前目录下所有txt打包成tar包,并且压缩成gz包(相当于先tar打包再gzip压缩两步)
tar -xzvf test.tar.gz   解包并解压
tar -xzvf test.tar.gz -C /home/hll  -C指定解压目录

5.2 gzip 压缩(压缩之后会删除源文件)

gizp 1.txt    压缩后变成1.txt.gz
gzip 1.txt 2.txt 3.txt   压缩几个文件,生成几个文件

5.3 gunzip 解压(解压之后会删除源文件)

gunizp  1.txt .gz

当进行压缩操作时,指的是普通文件(不能是目录);当进行解压缩操作时,指的是压缩文件

5.4 zip&unzip 压缩

zip   压缩(压完源文件仍在,而且要加压缩后的文件名)
zip ll.zip ll.txt  将ll.txt压缩为ll.zip
unzip  ll.zip    解压缩ll.zip

相关文章:

Linux常见操作命令【二】

一、Vi 编辑器 Vi 编辑器存在三者模式:命令、末行、编辑 1.1 命令模式 输入 vi 默认进入命令模式 输入n或者nG:定位到某一行行首 输入G:跳到文件最后一行行首 输入hjkl:表示左下上右移动光标(方向键也可以&#xf…...

Linux驱动中断和定时器

目录 中断 顶半部/底半部机制 软中断: Tasklet: 工作队列: 定时器 中断 中断是正在执行的程序被另一个程序打断,去执行另一个程序的处理函数,当执行完再返回执行被打断的程序。分为内中断(异常)和外中断(硬件中断)。 当cp…...

表达式和函数

表达式: 将数字和运算符连接起来的组合称为表达式。我们可以将数字称为操作数,单个操作数也可以被看作是一个表达式。 操作数:常数,列名,函数调用,其他表达式 运算符:算数运算符,…...

C#基础复习

目录 格式字符串 多重标记和值 预定义类型 用户定义类型 值类型和引用类型 存储引用类型对象的成员 C#类型的分类 静态类型和dynamic关键字 类的基本概念 类成员的类型 为数据分配内存 访问修饰符 格式字符串 多重标记和值 C#程序就是一组类型声明,学习C#就是学习…...

Windows服务器使用代码SSH免密登录并执行脚本

服务器操作系统 Window Server 2016 1、Windows服务器安装OpenSSH 有多种方式,本文介绍一种方式 下载页: https://github.com/PowerShell/Win32-OpenSSH/releases 在下载页下载文件OpenSSH-Win64.zip 本次实验解压至 D:\OpenSSH-Win64\OpenSSH-Win6…...

(Deep Learning)交叉验证(Cross Validation)

交叉验证(Cross Validation) 交叉验证(Cross Validation)是一种评估模型泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。 交叉验证不但可以解决数据集中数据量不够大的问题,也可以…...

通俗举例讲解动态链接】静态链接

参考动态链接 - 知乎 加上我自己的理解,比较好懂,但可能在细节方面有偏差,但总体是一致的 静态链接的背景 静态链接使得不同的程序开发者和部门能够相对独立的开发和测试自己的程序模块,从某种意义上来讲大大促进了程序开发的效率&#xf…...

K8S部署常见问题归纳

目录一. 常用错误发现手段二、错误问题1. token 过期2. 时间同步问题3. docker Cgroup Driver 不是systemd4. Failed to create cgroup(未验证)子节点误执行kubeadm reset一. 常用错误发现手段 我们在部署经常看到的提示是: [kubelet-check] It seems …...

Redis高可用

最近离职后还没开始找工作,在找工作前去学习一下Redis高可用方案。 目录Redis高可用高可用的概念实现方式持久化主从复制简单结构优化结构优缺点哨兵模式(Sentinel)哨兵进程的作用自动故障迁移(Automatic failover)优缺点集群优缺点Redis高可…...

Hyperledger Fabric 2.2版本环境搭建

前言 部署环境: CentOS7.9 提前安装好以下工具 git客户端golangdockerdocker-composecurl工具 以下是个人使用的版本 git: 2.39.2golang: 1.18.6docker: 23.0.3dockkekr-compose: v2.17.2curl: 7.29.0 官方文档参考链接:跳转链接,不同的版本对应的官…...

macOS Monterey 12.6.5 (21G531) Boot ISO 原版可引导镜像

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…...

【软件设计师13】数据库设计

数据库设计 1. 数据库设计过程 2. E-R模型 3. E-R图向关系模型的转换 例如一对一联系,可以将联系单独做为关系模式,也可以存放到任意一个实体中 而一对多要合并只能合并到多这边,不能存放到1 多对多则联系必须单独转成一个关系模式 4. 案…...

SpringMVC的全注解开发

文章目录一、spring-mvc.xml 中组件转化为注解形式二、DispatcherServlet加载核心配置类三、消除web.xml一、spring-mvc.xml 中组件转化为注解形式 跟之前全注解开发思路一致&#xff0c; xml配置文件使用核心配置类替代&#xff0c;xml中的标签使用对应的注解替代 <!-- 组件…...

C# | 导出DataGridView中的数据到Excel、CSV、TXT

C# | 导出DataGridView中的数据到Excel、CSV、TXT 文章目录C# | 导出DataGridView中的数据到Excel、CSV、TXT前言DataGridView数据转存DataTableDataTable转Excel方法一、使用Microsoft.Office.Interop.Excel方法二、使用EPPlus库方法三、使用NPOI库DataTable转CSVDataTable转T…...

新规拉开中国生成式AI“百团大战”序幕?

AI将走向何方&#xff1f; ChatGPT在全球范围掀起的AI热潮正在引发越来越多的讨论&#xff0c;AI该如何管理&#xff1f;AI该如何发展&#xff1f;一系列问题都成为人们热议的焦点。此前&#xff0c;马斯克等海外名人就在网络上呼吁OpenAI暂停ChatGPT的模型训练和迭代&#xf…...

日撸 Java 三百行day31

文章目录day31 整数矩阵及其运算面向对象思想java异常处理java中的getter和setter方法代码day31 整数矩阵及其运算 面向对象思想 结合之前day7和day8面向过程开发&#xff0c;只关注了矩阵加法和矩阵乘法的功能。而day31是面向对象开发&#xff0c;一个矩阵类&#xff0c;在这…...

在线绘制思维导图

思维导图是一种可视化的思维工具&#xff0c;它可以将放射性思考具体化为可视的图像和图表。 思维导图利用图文并重的技巧&#xff0c;把各级主题的关系用相互隶属与相关的层级图表现出来&#xff0c;把主题关键词与图像、颜色等建立记忆链接。 它运用图像和颜色等多种元素&…...

月薪20k的性能测试必备技能:发现性能瓶颈掌握性能调优

背景 当下云计算、大数据盛行的背景下&#xff0c;大并发和大吞吐量的需求已经是摆在企业面前的问题了&#xff0c;其中网络的性能要求尤为关键&#xff0c;除了软件本身需要考虑到性能方面的要求&#xff0c;一些硬件上面的优化也是必不可少的。 作为一名测试工作者&#xf…...

3、Web前端学习规划:CSS - 学习规划系列文章

CSS作为Web前端开发的第2种重要的语言&#xff0c;笔者建议在学了HTML之后进行。CSS主要是对于HTML做一个渲染&#xff0c;其也带了一些语言语法函数&#xff0c;功能也非常强大。 1、 简介&#xff1b; CSS(层叠样式表)是一种用于描述网页样式的语言。它可以控制网页中的字体、…...

城市轨道交通列车时刻表优化问题【最优题解】

文章目录城市轨道交通列车时刻表优化问题思路文章底部城市轨道交通列车时刻表优化问题 最新进度在文章最下方卡片&#xff0c;加入获取思路数据代码论文&#xff1a;2023十三届MathorCup交流 (第一时间在CSDN分享&#xff0c;文章底部) 题目为数据分析类题目。列车时刻表优化…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...