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

Linux笔记

介绍

Linux被称为虚拟文件操作系统,与Windows系统不同,所有的东西在Linux系统里都以文件的形式存在的,Linux没有后缀名的概念的。
Windows系统是设备管理器系统,所有的东西根据后缀名来区分与运行的。

Linux基本命令

基础知识

命令行的提示
[root@master ~]#
root代表当前登录的用户名
master代表当前服务器的主机名
~代表现在所处的系统路径和文件夹的位置,即当前用户文件夹

切换路径

命令:cd change directory 切换文件
常用路径:
/:系统根目录,Linux文件系统的起点,类似于Windows中的此电脑。
根目录中的文件夹及其含义:
bin:存储Linux系统所有命令的文件夹
boot:管理系统开机启动文件的文件夹
etc:存储系统配置文件的文件夹
home:存储所有非管理员账号的用户文件夹
root:管理员账号所在的用户文件夹
mnt:相当于Windows系统的光驱盘,读取光盘内容的文件夹

cd /切换到根目录
cd home切换到home文件夹
cd. .回到到上一级文件夹

绝对路径与相对路径
绝对路径:从根目录 / 描述路径
相对路径:从当前位置开始描述路径
绝对路径任何时候都有效,相对路径不能描述与当前位置无关的路径

展开文件夹

ls查看某个路径里面的文件夹和文件的名字信息
ls查看当前路径下的文件信息
ls /home查看home文件夹的内容
ls -l查看文件夹和文件夹的详细属性,包括文件权限,文件大小等,可以缩写成ll

小命令

pwd查看某个路径里面的文件夹和文件的名字信息
hostname显示主机名
clear清屏(可以用快捷键CTRL+L)

文件和文件夹的操作

创建文件

关键字 touch
touch 文件名 创建一个文件并为其命名
touch .hello.txt 名字前缀为.的文件默认隐藏,需要使用ls -A来查看隐藏的文件

创建文件夹

关键字: mkdir 文件夹名
可选操作
-p: 递归创建文件夹,路径中某个文件夹不存在会自动创建

删除文件

关键字:rm 文件名
可选操作:
-r:删除文件夹,文件夹的删除需要加上-r的选项
-f:删除并且不提示信息
-rf:强制删除,不提示信息

复制文件或文件夹内容

关键字:cp copy
语法:cp 文件名 目标路径:将某个文件赋值并粘贴到某个目标位置
可选操作:
-r:文件夹的复制也需要加上-r的选项

重定向

符号 :>
任何文件都可以通过重定向复制到别的文件中。
/>:覆盖写入
/>>:追加写入

剪切文件或文件夹

关键字:mv
语法:mv a b 剪切A位置的内容,粘贴到B位置,剪切的时候,文件和文件夹的操作是一样的。
可选操作:
mv在剪切的时候可以对文件或文件夹重命名
语法:mv 旧路径 新路径(如果没有新路径会自动创建)
例:mv /opt/test1.txt /opt/测试.txt

编辑文件

使用vi或者vim文件编辑器进行操作
vim是vi的升级版,编辑脚本文件时,vim会显示颜色,vi只有黑白。
语法:
vi/vim 文件名:打开文件,进入编辑模式
在编辑时,如果文件名不存在,会自动创建一个新的进行编辑。
在这里插入图片描述
从查看模式进入编辑模式

快捷键作用
i从当前光标前进行插入
a将当前光标后移一位,再从光标前插入,等同于从当前光标后插入的效果
o换一行进行插入
s将当前光标的数据删掉再插入
I将光标移至行首再插入
A将光标移至行尾再进行插入
O再这一行的上方添加一行再插入
S把这一行删掉再插入

命令行工具

快捷键作用
/内容在文件中对内容进行搜索,将找到的数据上颜色,/apple就是对apple进行查询
yy复制光标所在这一行
p粘贴复制的内容
nyy复制光标一下n行
dd删除光标所在这一行
ndd删除光标一下n行
n↑快速移动n行,n+方向键
gg光标快速回到文件第一行
G光标跳到文件最后一行
命令作用
:w只保存文件不退出
:q在执行了w之后,保存了文件后,退出操作,没有保存文件时无法退出的
:q!强制退出不保存文件
:wq保存的同时执行退出操作
:wq 文件名当忘记输入文件名时,输入文件名
:set nu打开文件的行号显示
:set nonu关闭文件的行号显示
:start,ends/old/new/g从开始行,到结束行,搜索旧内容并替换为新内容 注:$表示最后一行

在终端操作文件内容

关键字说明
cat将文件当成一个整体进行输出和查看 cat a.txt
more分页查看文件,回车一次翻一行,空格一次翻一页
head查看文件的前几行 例:head -n 5 a.txt 查看前5行
tail查看文件的后几行,用法与head相同
cut对文件内容进行截取:cut -b start-end 文件名
sort对文件内容进行排序(默认按照字符串排序)-n:按照数字排序 -r:反向输出
wc对文件内容进行统计 -w:统计文件的单词数量,只能识别用空格隔开的单词 -l:统计文件行数
uniq对文件内容进行去重,对文件内容进行统计(uniq只能对连续的在一起的相同的数据进行去重的操作,所以去重前需要先排序 。例:sort .txt 管道符 uniq(管道符(java中的或者符号) 将第一个命令执行的结果,传递给第二个命令来执行)sort e.txt 管道符 uniq -c -c:就是count,统计行数。

文件操作的三剑客

grep 对数据的内容进行过滤

grep中搜索数据的公式,是正则表达式,用法与之前学的大差不差
特殊点
1.没有\w等特殊关键字
2.使用{}匹配次数要加上 -E的可选参数
3.或者的规则用(a|b)实现

也可以对其他命令执行的结果进行数据的过滤:
例如查看当前文件夹里面所有的图片名字:
ls | grep -E “.(png|jpg)$”

查看文件中是否包含了某个关键字
查询文件中有apple这个单词的是哪些文件:
grep -r “关键字” 搜索的路径
grep -r “apple” /usr/games/allen/ | uniq.

sed 对数据按照行进行增删改查

1.在文件中新增行数据
sed “行号i\new” 文件名

2.删除指定行的数据
sed “行号d” 文件名
sed “2d” g.txt 删除文件的第二行
sed “2,5d” g.txt 删除文件的第二行到第五行

3.修改行数据的内容
sed “stare,ends/old/new/s” 文件名
注:开始和结束不写,默认修改整个文件

4.指定查看文件的具体行数
sed “start,endp” 文件名
sed -n “2p” g.txt 只查看第二行的数据
sed -n “3,6p” g.txt 查看第三行到第六行的数据

sed的操作,默认没有对文件本身进行修改,新增、修改、删除不影响文件原本的数据的。
如果你的操作想要直接作用在文件本身的话,需要在sed后面添加一个 -i 的选项。
sed -i “3i\apple” g.txt
不加-i就是打印查看,加上-i就是修改文件内容。

awk 将文件当成一个表格,对行和列分别进行读取操作

  1. 读取文件的时候,通过awk指定文件的分隔符:
    awk -F “分隔符” ‘{print $列号}’ 文件名字
    awk -F “,” ‘{print $1,$2}’ emp.txt
    如果文件的分隔符是空格的话,那么分隔符可以不用写-F和分隔符信息了。

  2. 在读取文件的时候,可以添加变量的信息
    awk -v变量名=值 -F “分隔符” ‘{print $列号}’ 文件名字
    awk -vday=22 -vmonth=12 -F “,” ‘{print $2,$6/day,$6,$6*month}’ emp.txt

  3. 在读取文件之前,先添加列名等数据显示
    awk -F “分隔符” ‘BEGIN{print 文件读取之前打印的信息}{print $列号}’ 文件名字
    awk -vday=22 -vmonth=12 -F “,” ‘BEGIN{print “名字”,“日薪”,“月薪”,“年薪”}{print $2,$6/day,$6,$6*month}’ emp.txt

  4. 在文件读取之后,去添加一个尾部的打印信息
    awk -F “分隔符” ‘{print $列号} END{print 读完之后打印的尾部信息}’ 文件名字
    awk -vday=22 -vmonth=12 -F “,” ‘BEGIN{print “名字”,“日薪”,“月薪”,“年薪”}{print $2,$6/day,$6,$6*month}END{print “文件读取完毕”}’ emp.txt

  5. 在读取文件的过程中对行数据进行筛选
    awk -F “分隔符” ‘$列号和数据的筛选’ 文件名字
    awk -F “,” ‘$8 == 10’ emp.txt
    awk -F “,” ‘$6>=3000’ emp.txt
    awk -F “,” ‘$8 == 10 && $6<2000’ emp.txt
    awk -F “,” ‘$8 == 10 || $8==20’ emp.txt
    并且是 && 或者是 ||

练习:
结合之前学过的所有命令,查询 /usr/games/allen/emp.txt文件中,入职人数最多的年份是哪一年
awk -F “,” ‘{print $5}’ emp.txt|awk -F “/” ‘{print $1}’|sort -n|uniq -c|sort -n -r|awk ‘{print $2}’|sed -n “1p”

打包文件

tar.gz
在Linux系统中效率最好的打包方式
语法
tar.gz -zcvf 压缩包名 被打包的文件或文件夹(1,2,3…)

命令说明
-zcvf打包文件
-ztvf查看压缩包内容
-zxvf解压
./*.txt.代表当前路径,*.txt代表所有txt后缀的文件
-z压缩格式:gz
-c打包
-v查看操作过程
-x解包
-t查看包的内容
-f后面紧跟压缩包名字

zip

命令说明
zip 压缩包名 文件名打包
unzip -l查看压缩包内容
unzip解压缩

rar
rar不是Linux自带的操作和命令,不是所有系统都可以用rar操作,在centos中,rar通过其他的软件包独立安装

命令说明
rar a 包名 文件名打包
rar i查看包的内容
rar x解压缩

文件权限相关操作

权限的分类

类型所属主权限所属组权限其他人权限
类型说明
-普通文件,通过touch创建的
d文件夹,通过mkdir创建的
l连接文件(快捷方式),通过ln关键字创建 ln -fs 源文件位置/文件名
权限说明
r读取数据
w写入编辑数据
x执行脚本和代码的权限
-这个位置没有权限

修改权限
关键字:chmod

针对某个权限修改:
chmod 修改对象+/-权限 文件名

修改对象说明
u所属主
g所属组
o其他人

对权限进行整体修改:
使用对应的十进制数字来表示权限,没有代表0,有权限代表1
语法:chmod 数字 文件名

权限的传递
将某个文件夹以及文件夹内的所有文件,同意赋予权限:
chmod -R 权限 文件夹名字:递归地修改权限

用户相关操作
–创建用户
语法:useradd 用户名
–赋予用户密码
语法:passwd 用户名
–给用户分配不同的组
注意
用户在创建时,系统会默认创建一个同名的组,用户就是组长,再给用户分配组,就是将用户移动到其他组中
usermod 用户名 -g 组名
–切换用户
su 用户名
Q:su 切换用户和su - 切换用户有什么区别?
A:su切换用户,切换后位置不发生变化,还在当前路径,su - 切换用户,会充值用户的登陆时间和登陆状态,此时会回到用户文件夹。
–删除用户
注意:删除用户时,要联同他的组一块删掉
语法:userdel -r 用户名
删除时要确保用户没有再登录状态
–查看用户分组:
groups 用户名
id 用户名
–删除分组
groupdel 用户名

软硬件相关命令

命令说明
free查看内存使用情况 -h:显示单位
df查看硬盘使用情况 -h:显示单位
top查看任务管理器列表
ps查看所有进程列表 -aux:a 所有的 u 用户 x 执行中的
kill强制终止某个进程的运行 kill 进程编号 ### -9:强制结束进程
netstat查看端口号的使用情况 netstat -atunp
ip a查看网卡的基本信息 lo:服务器环回地址,ens33:服务器物理网卡名
ping检查网络通信是否正常
service管理服务 service 服务器名字 status or start or stop or restart
rpm检查当前服务器是否安装了某个工具 rpm -qa (管道符) grep mysql 查询当前服务器有没有安装mysql
yun指定服务器安装或卸载某个服务 yum -y install 服务名 安装服务;yum -y remove 服务名 卸载服务
date查看当前系统时间;date +“%Y-%m-%d %H:%M:%S" 自己定义时间格式
find再Linux系统中查询文件的位置 语法:find 位置 方法 内容 例: find /usr -name a.txt;可选操作 -o 或者

使用Linux进行命令的嵌套:
例:使用当前的年月日去命名一个文件夹:

mkdir `date +"%Y%m%d"` 创建文件夹

嵌套时,命令与命令之间用反引号隔开,运行时先运行反引号里面的内容,再运行外面的命令。


http://www.mrgr.cn/news/31704.html

相关文章:

  • 【3D Slicer】的小白入门使用指南九
  • c++ 宏函数 inline 以及区别
  • 用WordPress需要学习哪些编程知识
  • MQTT协议解析 : 物联网领域的最佳选择
  • Design Compiler:Topographical Workshop Lab2
  • World of Warcraft [WeakAuras]Barney Raid Kit - Collapsing Star Indicator
  • Java的IO流(一)
  • 常见排序(C语言版)
  • Windows系统使用PHPStudy搭建Cloudreve私有云盘公网环境远程访问
  • 【后端】【nginx】nginx常用命令
  • 影刀RPA实战:网页爬虫之药品数据
  • 2024 “华为杯” 中国研究生数学建模竞赛(E题)深度剖析|高速公路应急车道启用建模|数学建模完整代码+建模过程全解全析
  • 高校心理辅导系统:Spring Boot技术实现指南
  • linux----进程地址空间
  • 2024华为杯C题详细完整思路和视频讲解
  • 数据飞轮崛起:数据中台真的过时了吗?
  • 树莓派配置Qt+OpenCV
  • 数据结构|二叉搜索树
  • 【模板进阶】完美转发
  • 【CPU】CPU的物理核、逻辑核、超线程判断及L1、L2、L3缓存、CacheLine和CPU的TBL说明
  • Rust 运算符快速了解
  • 2024华为杯数学建模研赛F题建模代码思路文章研究生数学建模
  • thinkphp8 从入门到放弃(后面会完善用到哪里写到哪)
  • 【图文详解】什么是微服务?什么是SpringCloud?
  • Web_php_include 攻防世界
  • 6. Python 输出长方形,直角三角形,等腰三角形