linux相关操作
我们常说的 Linux指的是 “发行版完整的包含一些基础软件的操作系统”
Shell是一个程序,提供一个与用户对话的环境。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户。Bash是目前最常用的Shell。进入命令行环境以后,用户会看到Shell的提示符。提示符往往是一串前缀,最后以一个符号结尾,root用户为# ,普通用户为$,用户可以在这个符号后面输入各种命令。
文章目录
路径
以/开头是根目录,有且只有一个根目录,~/是用户目录,./是当前目录,_/是上一级目录
bin:binary 的缩写,表示二进制文件,bin目录包含了会被所有用户使用的可执行程序
boot:包含与 Linux 启动密切相关的文件
dev:device 的缩写,表示设备,它里面的子目录每一个对应一个外设
etc:包含系统的配置文件
home:用户的私人目录,在这里放置私人的文件,Linux 中每个用户都在 home 目录下有一个私人目录
lib:library的缩写,表示库,包含被程序所调用的库文件
media:媒体,可移动的外设(如U盘、SD卡)插入电脑时,Linux 可以让我们通过 media 的子目录来访问这些外设中的内容
mnt:mount 的缩写,表示挂载,类似media,一般表示临时挂载一些装置
opt:optional application software package 的缩写,表示可选的应用软件包,用于安装第三方软件和插件
root:超级用户 root 的家目录
sbin:system binary 的缩写,表示系统二进制文件,包含系统级的重要可执行程序
srv:service 的缩写,表示服务,包含一些网络服务启动之后所需要取用的数据
tmp:temporary 的缩写,表示临时的,普通用户和程序存放临时文件的地方
usr:Untx Software Resource 的缩写,表示Unix操作系统软件资源,usr 目录是最庞大的目录之一,它安装了大部分用户要调用的程序
var:variable 的缩写,表示动态的,通常包含程序的数据,比如 log 文件
命令
命令格式
命令 [选项] [参数],选项定义命令的执行特性,参数描述命令作用的对象,之间全用空格隔开
选项分为短选项和长选项,短选项由一个连字符和一个字母构成;长选项由两个连字符和一些大小写字母组合的单词构成
多个短选项一般可以结合,只用一个 - 标识;多个长选项或长短选项混合则依次列出,用空格隔开
命令的选项和参数所使用的符号有相应的含义:[ ]:表示方框里的内容是可选的;<>:表示尖括号里面的内容必须提供;a|b:二选一,或多选一;…:前面的内容可重复出现多次;{ }:此处允许使用的参数集合;( ):指明参数的默认值,只用于{ }中
快捷键
通过上下方向键 ↑ ↓ 来调取过往执行过的Linux命令;
命令或参数仅需输入前几位就可以用 Tab 键补全;
Ctrl + R :用于查找使用过的命令(history命令用于列出之前使用过的所有命令,然后输入!命令加上编号 (!2) 就可以直接执行该历史命令);
Ctrl + L:清除屏幕并将当前行移到页面顶部;
Ctrl + C:中止当前正在执行的命令;
Ctrl + U:从光标位置剪切到行首;
Ctrl + K:从光标位置剪切到行尾;
Ctrl + W:剪切光标左侧的一个单词;
Ctrl + Y:粘贴Ctrl + U | K | Y剪切的命令;
Ctrl + A:光标跳到命令行的开头;
Ctrl + E:光标跳到命令行的结尾;
Ctrl + D:关闭Shell会话;
常用命令
查看路径:pwd:显示当前目录的路径;which 文件:查看命令的可执行文件所在路径
浏览和切换目录:ls:列出文件和目录,-a显示所有文件和目录,-l显示详细列表,-h适合人类阅读的(自动选取单位),-t按文件最近一次修改时间排序,-i显示文件的inode(inode是文件内容的标识);cd:切换目录;du:列举目录大小信息
浏览文件:cat 文件:一次性显示文件所有内容;less 文件:分页显示文件内容,空格键:前进一页,b:后退一页,d:前进半页,u:后退半页,q:停止读取文件,中止less命令,=:显示当前页面的内容是文件中的第几行到第几行以及一些其它关于本页内容的详细信息,h:显示帮助文档,/:进入搜索模式,输入字符串回车开始检索,按 n 键跳到一个符合项目,按 N 键跳到上一个符合项目;
创建文件:touch:创建一个文件;mkdir:创建一个目录,[-p 路径] 依次递归检索目录,不存在则创建新目录;
文件的复制和移动:cp:拷贝文件和目录,cp {文件,.格式} {目录,拷贝文件名,目录/文件名},[-r 原路径 拷贝路径] 依次用原路径的目录覆盖拷贝目录,不存在则创建新目录,-n追加不覆盖;mv {文件,目录,.格式} {目录,新名字}:移动(重命名)文件或目录
文件的删除和链接:rm 文件 …:删除文件和目录,-i向用户确认是否删除,-f文件强制删除,-r递归删除文件夹,著名的删除操作 rm -rf;ln 原目录 目标目录:创建链接(默认硬链接),-s:创建软链接,-f:强制执行,-i:交互模式,文件存在则提示用户是否覆盖;硬链接:指向同一块文件内容,共享修改,删除其中任一文件不删除内容;软连接:创建指向前者的快捷方式,前者被删则后者失效;
用户
在 Linux中,理论上来说,我们可以创建无数个用户,但是这些用户是被划分到不同的群组里面的,有一个用户,名叫 root,是一个很特殊的用户,它是超级用户,拥有最高权限。
sudo 命令:以 root身份运行命令,之后需要输入密码
useradd 用户名:添加新用户;passwd 用户名:修改用户密码,输入两次相同的密码完成修改,[-d 用户名]删除密码,[-l 用户名]锁定用户无法登录,[-u 用户名]解锁;userdel:删除用户,需要 root 用户权限,-r同时删除用户文件夹;su:切换用户,需要 root 用户权限,su 普通用户名 切换到对应普通用户,su - 切换root用户;
群组
Linux 中每个用户都属于一个特定的群组,如果你不设置用户的群组,默认会创建一个和它的用户名一样的群组,并且把用户划归到这个群组。
群组的管理
groupadd 群组名:创建群组;groupdel 群组名:删除一个已存在的群组;groups 用户名:查看用户所在群组;usermod:用于修改用户的账户,[-l 新名 旧名]:修改用户的登录名,[-d 路径]修改家目录,[-m 路径]将现在的家目录移动到新位置,[-g 组名 用户名]修改用户所在群组,[-G 组名,… 用户名]指定用户所在的多个群组,-aG追加,-L锁定,-U解锁;chgrp 组名 文件:修改文件的群组;chown 用户名[:组名]:改变文件的所有者(和群组),需要 root 身份才能运行,[-R 用户名:组名 路径]把最终目录下的文件夹都改变;chmod 权限 文件:修改访问权限,-R修改目录下所有文件权限,权限标识可用数字形式或字母形式;
文件权限
由<属性><所有者权限><群组用户权限><其他用户权限>构成,属性:d(目录)-(文件)l(链接),权限rwx依此为可读、可写、可执行,不具备的权限用 - 代替,权限之间没有空格;数字分配权限:r(4)w(2)x(1)-(0),相加所得数字对应分配权限,依次组成三位数字即为权限的数字表示形式;字母分配权限:对象:u(所有者)g(群组用户)o(其他用户)a(所有用户),操作:+(添加权限)-(去除权限)=(分配权限),<对象(没有默认所有)><操作><权限(-即无权限)>
查找文件:locate 文件:搜索包含关键字的所有文件和目录,安装locate:yum -y install mlocate,刚创建的文件不会被检,需要执行updatedb更新数据库;find [目录] 查找形式 关键字 [操作]:遍历实际硬盘进行查找,允许对每个找到的文件进行后续操作,-name名字查找-size大小查找-atime最近访问时间查找,-type d仅查找目录,-type f仅查找文件,操作:-delete删除,-printf输出按后面格式的内容,-exec 命令 { } \ 执行命令,{ }表示对象由前面查找的对象代替
软件
Linux 下软件是以包的形式存在,一个软件包其实就是软件的所有文件的压缩包,包含了安装软件的所有指令,Linux 的包都存在一个仓库,叫做软件仓库,它可以使用 yum 来管理软件包
yum 常用命令:yum update | yum upgrade 更新软件包;yum search xxx 搜索相应的软件包;yum install xxx安装软件包;yum remove xxx删除软件包
切换 CentOS 软件源:有时候 CentOS 默认的 yum 源不一定是国内镜像,这时候需要将 yum 源设置为国内镜像站点,国内主要开源的镜像站点是网易和阿里云:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
文本
文本操作:grep 文本 文件:在文件中查找关键字,并显示关键字所在行,-i忽略大小写,-n显示行号,-r递归查找;sort 文件:对文本行进行排序,[-o 新文件名]将排序后的文件写入新文件,-r倒序排序,-R随机排序,-n对数字进行排序;wc 文件:统计行数、单词数目、字节数,-l只统计行数,-w只统计单词数,-c只统计字节数,-m只统计字符数;uniq 文件 [新文件]:删除文件中连续重复的行;cut:剪切文件每一行的一部分内容,[-d 字符 [-f 数字] ]用该字符将内容分隔,剪切第数字个部分
重定向 管道 流
在 Linux 中一个命令的去向可以有 3 个地方:终端、文件、作为另外一个命令的入参;命令一般都是通过键盘输入,然后输出到终端、文件等地方,它的标准用语是 stdin(终端接收从键盘输入的命令)stdout(终端输出的信息)stderr(终端输出的错误信息)
重定向:把本来要显示在终端的命令结果,输送到别的地方(到文件中或者作为其他命令的输入);输出重定向:> 新文件:将内容覆盖到新文件中,没有会创建一个新文件;>> 新文件:追加到文件末尾,没有也会创建新文件;在输出重定向后用2>或2>>对错误信息重定向,2>&1:输出和错误都重定向到一个位置;输入重定向:< 文件:用文件内容作为输入;<< 结束词:用键盘的输入作为命令输入,以结束词作为输入结束标识;
管道(|):命令|命令,前一个命令的输出作为后一个命令的输入;
流:是一种概念,读一点数据, 处理一点点数据
进程
查看进程
w:快速了解目前有哪些用户登录着,以及他们在干什么;ps:显示当前系统中的进程,-ef列出所有进程,-efH以乔木状列举出所有进程,-u列出此用户运行的进程,-aux --sort -pcpu按CPU使用降序排列,-aux --sort -pmem表示按内存使用降序排列,-axjf以树形结构显示进程;top:获取进程的动态列表;kill 进程号:结束一个进程;
管理进程
进程状态:R:表示正在运行的状态;S:表示中断(休眠中,受阻,当某个条件形成后或接受到信号时,则脱离该状态);D :表示不可中断(进程不响应系统异步信号,即使用 kill 命令也不能使其中断);Z :表示僵死(进程已终止,但进程描述符依然存在,直到父进程调用 wait4() 系统函数后将进程释放);T :表示停止(进程收到 SIGSTOP、SIGSTP、SIGTIN、SIGTOU 等停止信号后停止运行)
前台进程 & 后台进程
默认情况下,用户创建的进程都是前台进程,前台进程从键盘读取数据,并把处理结果输出到显示器;后台进程的优点是不必等待程序运行结束,就可以输入其它命令,在需要执行的命令后面添加 & 符号启动后台进程;nohup 命令:使进程不受挂断(关闭终端等动作)的影响;bg 编号:使一个后台暂停运行的进程,状态改为后台运行;jobs:显示当前终端后台进程状态;fg:使进程转为前台运行,用法和 bg 命令类似;
文件压缩解压
打包:将多个文件变成一个总的文件,它的学名叫存档、归档;压缩:将一个大文件(通常指归档)压缩变成一个小文件
tar 文件…:创建一个tar归档,-cvf创建归档文件并显示操作细节,-tf 显示归档里的内容,-rvf追加文件到归档,-xvf解开归档;gzip / gunzip:“压缩 / 解压” 归档,压缩后的文件后缀名为.tar.gz;zcat、zless、zmore:查看压缩文件内容;zip/unzip:“压缩 / 解压” zip 文件,unzip -l,yum install zip,yum install unzip;
编译安装软件
之前我们学会了使用yum命令进行软件安装,如果碰到yum仓库中没有的软件,我们就需要会更高级的源码编译安装;简单来说,编译就是将程序的源代码转换成可执yum行文件的过程。大多数 Linux 的程序都是开放源码的,可以编译成适合我们的电脑和操纵系统属性的可执行文件;基本步骤:1.下载源代码2.解压压缩包3.配置(执行./configure)4.编译(执行make命令)5.安装(执行make install命令)
网络
ifconfig:(执行yum install net-tools安装)查看 ip 网络相关信息,eth0对应有线连接,lo表示本地回环(所有经由这个接口发送的东西都会回到你自己的电脑),wlan0表示无线局域网;host ip地址/主机名:(执行yum install bind-utils安装)查看对应转换的主机名/ip地址
ssh 连接远程服务器
ssh 用户@ip:port ;配置 ssh:config文件可以配置ssh,方便批量管理多个ssh连接,配置文件分为以下几种:全局ssh服务端的配置:/etc/ssh/sshd_config;全局 ssh客户端的配置:/etc/ssh/ssh_config(很少修改);当前用户ssh客户端的配置:~/.ssh/config;
服务端 config 参数(修改完服务端配置文件需要重启服务systemctl restart sshd):Port:sshd 服务端口号(默认是 22);PermitRootLogin:是否允许以 root 用户身份登录(默认是可以);PasswordAuthentication:是否允许密码验证登录(默认是可以);PubkeyAuthentication:是否允许公钥验证登录(默认是可以);PermitEmptyPasswords:是否允许空密码登录(不安全,默认不可以);
客户端 config 参数:Host:别名;HostName:远程主机名(或 IP 地址);Port:连接到远程主机的端口;User:用户名;
配置当前用户的config:vim ~/.ssh/config #创建config,然后依次填写:参数 内容(一行一个参数);
免密登录:基于密钥验证原理,客户机生成密钥对(公钥和私钥),把公钥上传到服务器,每次登录会与服务器的公钥进行比较;步骤:1.执行ssh-keygen;2.执行ssh-copy-id root@ip地址;完成后运行运行ssh root@ip地址即可免密登录,配合别名设置直接执行ssh 别名即可登录;
wget [参数][URL地址]:给出文件的 HTTP 或 FTP 地址,可以直接从终端控制台下载文件,-c继续中断的下载;
备份:scp [user@ip地址:]原路径 [user@ip地址:]拷贝路径:通过网络把文件从一台电脑拷贝到另一台电脑;rsync [user@ip地址:]原路径 [user@ip地址:]拷贝路径:(yum install rsync)远程同步文件,可以同步两个目录,-a保留文件的所有信息,-r递归调用子目录的所有文件也都包括,-v冗余模式输出详细操作信息;
系统:halt:关闭系统,需要 root 身份;reboot:重启系统,需要 root 身份;poweroff:直接运行即可关机,不需要root身份;
Vim [文件]:
打开vim文本编译器,交互模式(默认):不能输入文本,可以在文本间移动,删除一行文本,复制黏贴文本,跳转到指定行,撤销操作等等;插入模式:可以输入文本,从交互模式按i,I,a,A,o,O进入输入模式:i为“从目前光标所在处输入”,I为“在目前所在行的第一个非空格符处开始输入”,a为“从目前光标所在的下一个字符处开始输入”,A为“从光标所在行的最后一个字符处开始输入”,o为“在目前光标所在的下一行处输入新的一行”,O为在目前光标所在处的上一行输入新的一行,按esc退出;命令模式:可以运行一些命令,从交互模式按 : 进入命令模式,按q退出,:wq 或 :x 保存并退出,:q!不保存且退出;可视模式:v进入字符可视模式,V进入行可视模式,Ctrl + v进入块可视模式,配合方向键选中,d删除选中,I在选中之前插入,u选中变为小写,U选中变为大写;
交互模式指令
移动:h/←向左移动一个字符,i/→向右移动一个字符,j/↓向下移动一个字符,k/↑向上移动一个字符,0/Home跳到行首, / E n d 跳到行尾, w 一个个单词移动;删除: x 删除字符(先输入数字则删除多个), d d 删除光标所在的一行(先输入数字则删除多行), d w 删除光标所在首字母处的单词(先输入数字则删除多个), d 0 从光标所在位置删除至行首, d /End跳到行尾,w一个个单词移动;删除:x删除字符(先输入数字则删除多个),dd删除光标所在的一行(先输入数字则删除多行),dw删除光标所在首字母处的单词(先输入数字则删除多个),d0从光标所在位置删除至行首,d /End跳到行尾,w一个个单词移动;删除:x删除字符(先输入数字则删除多个),dd删除光标所在的一行(先输入数字则删除多行),dw删除光标所在首字母处的单词(先输入数字则删除多个),d0从光标所在位置删除至行首,d从光标所在位置删除至行末;复制:yy赋值光标所在行,yw复制一个单词,y0复制光标所在处到行首,y$复制光标所在处到行末,p粘贴(先输入数字则复制多次);u撤销操作;ctrl + r 取消撤销;数字gg跳转到指定行,G跳转到最后一行,gg跳转到第一行;查找:/字符串 从光标向文件尾查找,?字符串 从光标向文件头查找,n跳转下一个匹配项,N跳转上一个匹配项,替换字符:将光标置于想要替换的字符上,按下 r键,接着输入要替换的字符,😒/旧字符串/新字符串 查找并替换光标所在行第一个匹配项,😒/旧字符串/新字符串/g 替换光标所在行所有旧字符串,:n,m s/旧字符串/新字符串/g 替换第几行到第几行中所有字符串,:%s/旧字符串/新字符串/g 全文替换;:r 路径 在光标处插入一个文件的内容;
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)