【Linux笔记一篇搞定】

news/2024/11/29 21:27:13/

Linux笔记

文件相关

输出,查看

# more,less翻页显示文件内容
more 只能向下翻页
less 可以上下翻页
空格键翻页
上下键移动
q退出tail # 用于显示文件末尾几行
-n 指定显示的行数
-f 追踪显示文件更新(一般用于查看实时日志)
- head用于显示文件的头几行
-n 指定显示的行数
cat # 显示文件内容

归档,压缩

# tar用于归档文件
# 将dir文件压缩包归档
tar -cvzf newtar.tar.gz /dir 
# 参数解析:
-c 创建
-x 释放
-z 将归档后的归档文件进行gzip压缩以减少大小
-zip,gzip用于压缩文件
# unzip 用于解压缩zip文件,举例
zip zipfile.zip myfile

查找文件

find # 用于高级查找文件,文件夹# find 查找位置 查找参数
-name 根据文件名查找
-type d 查找目录类型的文件
-size 根据大小查找
-ctime 根据最近修改的时间查找
-perm 777 查找777权限的文件
# 查看当前目录“.conf”后缀的文件
find . -name "*.conf" 
### 文件编辑
  • 文件编辑辑器i是几所所有Linux支持的文本编辑器
  • vim是vi的增强版,支持高亮等功能
  • 三种模式
    • 命令模式(默认模式),任何模式通过esc键回退到命令模式
    - o 在当前行的下面插入新行- dd 删除整行- yy 复制当前行- p 粘贴- u 撤回- r 替换当前字符- / 查找关键字,n是跳转到下一个
  • 插入模式:在命令模式中,按"i"键即可进入插入模式,然后编辑文本内容
  • ex模式:在命令模式中,按":"键可以进入ex模式,光标会移动到底部,通过命令可以修改保存退出
:w 保存
:q 退出
:wq! 强制保存并退出
:set number 显示行号
:sh 切换命令行, ctrl+d 切回vim

文本处理

grep

- 命令grep基于关键字搜索文本:-i 在搜索是忽略大小写;-n 显示结果所在行数;-v 输出不带关键字的行;-Ax 在输出时,包含结果所在行之后的制定行数;-Bx 在输出时,包含结果所在行之前的指定行数;举例:
grep “linux” /etc/passwd 查找文件里面包含“Linux”关键字的文本;
find / -user paas | grep test 查找根目录写下paas用户包含“test”关键字的文件;

cut

- 命令cut基于列处理文本内容;-d 指定分隔符(默认是tab);-f 指定输出的列号;-c 基于字符串进行切割;
# 举例
cut -d: -f1 /etc/passwd 通过“:”分割,只返回第一列的数据;
cut -c2-6 /etc/paaswd 

wc

- 命令wc用于统计文本信息;-l 只统计行数;-w 只统计单词;-c 只统计字节数;-m 只统计字符数;

sort

- 命令sort用于对文本内容排序;-r 进行倒序排序;-n 基于数字进行排序;-f 忽略大小写;-u 删除重复行;-t c 使用c作为分隔符分割为列进行排序;-k x 当进行基于指定字符分割为列的排序时,指定基于那个列的排序;

diff

- 命令diff用于比较两个文件的区别;-i 忽略大小写;-b 忽略空格数量的改变;-u 统一显示比较信息(一般用以生成patch文件);
# 举例
diff -u test.conf test2.conf > final.patch

tr

- 命令tr用以处理文本内容;# -d 删除关键字:tr -d "tmd" test# 转换大小写:tr “a-z” “A-Z” test

sed

- 命令sed用于搜索并替换文本;-e 添加多个替换条件;-i 替换改变文件;双引号可以传入变量;单引号可以匹配特殊字符;

帮助文档

-h |--help # 几乎所有命令都可以通过这两个参数获取使用方法,参数信息等
man 命令 #获取改命令的帮助文档
man -k 关键字 # 用来查询包含改关键字的文档
# info与man类似,提供的信息更为详细
# man和info都可以通过"/+关键字"方式进行搜索
/user/share/doc # 目录中存放很多程序,命令的详细文档

系统命令

关机,重启

shutdown # 用于关闭,重启
shutdown [关机,重启] 时间
# h关闭计算机
# r 重新启动
shutdown -h now立即关机
shutdown -h 23:30 23:30分钟后关机
shutdown -r +10 10分钟后开机
poweroff 用于立即关机
reboot 用于立即重启计算机

查看IP

# 查看IP
ifconfig
# 查看网关
route -n 

挂载管理

# 用于将格式化好的磁盘或分区挂载到一个目录上
mount /dev/sda3(要挂载的分区) /home/paas(挂载点) 
# 常见参数:mount # 命令显示所有已挂载的文件系统-t # 指定文件系统的类型-o # 指定挂载选项ro,rw # 以只读或者读写形式挂载,默认rwsync # 代表不使用缓存,将所有操作写入磁盘;async # 代表使用缓存(默认);atime # 每次访问时更新文件的访问时间;noatime # 每次访问时不更新文件的访问时间;remont # 重新挂载文件系统;umount # 文件系统/挂载点 #用于卸载已经挂载的文件系统
fuser -m /home/pass # 查看使用文件系统的进程
losf /home/paas # 查看正在被使用的文件

自动挂载:
配置文件/etc/fstab 用来定义需要自动挂载的文件系统,每一行代表一个挂载配置,
格式如下:
挂载设备 挂载点 系统文件 挂在配置 选项:
/dev/sda3 /home/paas ext4 defaults 0 0

mount -a 命令会自动挂载fstab中定义的自动挂载项

查看硬件设备

# 用于查看PCI硬件设备
lspci
# 用于查看usb设备
lsusb
# 用于查看加载的模块(驱动)
lsmod

管道及重定向

  • 数据流

STDIN 标准输入,编号为0;
STDOUT 标准输出,编号为1;
STDERR 标准错误,编号为2;

  • 管道

l 将一个命令的STDOUT作为另一个命令的STDIN;

  • 重定向
# 将STDOUT重定向到文件(覆盖);
> 将STDOUT重定向到文件(追加);
2> & 1 将STDERR与STDOUT结合;
< 重定向STDIN;

权限机制

用户与组

用户现在使用者或者进程可以操作哪些资源;
组用来方便组织管理用户;
每个用户使用userID操作系统;
每个用户是一个主组,属于一个或者多个副属组;
每个组拥有一个人groupID;
每个可登录用户拥有一个指定的shell

  • 相关文件
# 保存用户信息
/etc/passwd
# 保存用户密码(加密的
/etc/shadow
# 保存组信息
/etc/group

用户

查看用户登录信息
whoami #显示当前用户信息
who #显示有哪些用户已经登录系统
w #显示有哪些用户已经登陆,并且在干什么

ID为32为,从零开始,但为了与老式系统兼容,用户ID限制在60000以下。
用户分为三种:
root用户:ID=0
系统用户:1-499
普通用户:500以上
系统中的文档都有一个所属用户及属组;
id命令 可以显示当前用户信息;
passwd命令 可以修改当前用户密码;

创建用户

useradd user_name # 创建一个新用户;
上面这个命令会执行一下操作:
1、在/etc/passwd目录中添加用户信息;
2、如果使用passwd命令创建密码,则将密码加密保存在/tec/shadow中;
3、为用户建立一个新的家目录/home/user_name;
4、将/etc/shell中的文件复制到家目录中;
5、建立一个与用户名相同的组,新用户默认属于这个组;
useradd命令支持以下参数:
-d 家目录;
-s 登陆shell;
-u serId;
-g 主组;
-G 附属组(最多31个,用“,”分割);

修改用户信息

usermod 参数 username # 用来修改用户信息;
支持一下参数:
-l 新用户名;
-u 新userID;
-d 用户家目录位置;
-g 用户所属主组;
-G 用户所属附属组;
-L 锁定用户使其不能登陆;
-U 解除锁定;

删除用户
userdel 用于删除指定用户;
userdel username (保留用户的家目录)
userdel -r username (同时删除用户的家目录)

一般我们使用部门,职能或者地理区域的分类方式创建适应组。
每个组有一个组ID;
组信息保存在/etc/group中;
每个用户拥有一个主组,同时还可以拥有最多31个附属组;

groupadd groupname #创建组;
groupmod -n newname oldname # 修改组名;
groupmod -g newgID oldgID # 修改组ID;
groupdel groupname # 删除组;

权限机制

每个文件有三种权限:读r,写w,执行x;
Linux权限基于UGO模型控制:
u代表user,G代表group,O代表other;

修改文件所属用户,组

chown username 文件 # 修改文件所属用户
-R 参数递归修改目录下的所有文件的所属组
chgrp groupname 文件 #修改文件的所属组
-R 参数递归修改目录下所有文件的所属组
也可以同时修改:chown 用户:组 文件
举例:
chown paas:paas text.conf # 将text.conf文件所属用户改成paas,所属组改成paas

修改权限

chmod 模式 文件 # 修改文件的权限;
模式为如下格式:
u,g,o分别代表用户,组,其他;
a 可以指ugo:
+,- 代表加入或删除对应权限;
r,w,x 代表三种权限;
举例:chmod a-x filename
chmod也支持数字方式修改权限,分别由三个数字表示:
r = 4 (2^2);
w = 2 (2^1);
x = 1 (2^0);
举例:chmod 775 test.conf == rwxrwxr-x

默认权限

每个终端都有一个umask属性,来确认新建文件,文件夹的默认权限;
查看umask值命令:umask
修改umask值命令:umask 值
普通用户的默认umask是002,root用户的默认umask是022;
umask使用数字权限方式:
目录的默认权限是:777-umask;
文件的默认权限是:666-umask;

特殊权限

suid 以文件的所属用户身份运行,而非执行文件的用户,一般用于/user/bin/passwd 修改密码;
设置方式:chmod u+s 文件
sgid 以文件所属组身份执行,在该目录中创建的任意新文件的所属组与该目录的所属组相同;
设置方式:chmod g+s 目录
sticky 对目录拥有写入权限的用户可以删除其拥有的文件,无法删除其他用户所拥有的文件;
设置方式:chmod o+t 文件
与普通用户一样,特殊权限也可以使用数字方式表示:
suid = 4;
sgid = 2;
sticky = 1;
举例:chmod 4755 dir

网络相关

IP编址

分为ipv4和ipv6,ipv4地址为32位长,ipv6地址为128为长;
ipv4地址分为两部分:网络部分和主机部分;
网络部分用来标识所属区域,主机部分用来表述该区域中的哪个主机;
ipv4通常使用点分十十进制方式表示,整个IP地址分为4部分,每个部分8位;

子网掩码

通过子网掩码来确认IP地址中,网络部分的分位;
IP地址中对应子网掩码中为1的部分是网络部分;

基本网络参数

要配置一个局域网通信的计算机:
IP地址 + 子网掩码
局域网通过IP查询到MAC地址,然后通过通过MAC地址定位传输数据;
MAC是物理地址,IP是网络地址;

要配置一个跨局域网通信的计算机:
IP地址 + 子网掩码 + 网关/路由器
网关/路由器:用于不同网络之间传输数据

要配置一个可上网的计算机:
IP地址 + 子网掩码 + 网关 + DNS
DSN是用来IP与域名之间装换,一般有电信系统提供;
域名是为了解决IP难记问题,分为三部分:
主机名.域名.类型,比如:www.baidu.com

以太网链接

# 在Linux中,以太网接口被命名为:eth0,eth1等;
# 通过lspci 查看网卡硬件信息(如果是USB网卡,可以使用lausb);
# 查看接口信息命令:ifconfig
ifconfig -a # 查看所有接口;
ifconfig eth0 查看特定接口;
# 使用ifup,ifdown命令启用,禁用一个接口;
ifup eth0 
ifdown eth0
# 查看网关命令:route -n

网络相关配置文件

# 网卡配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
# DNS配置文件:
/etc/resolv.conf
# 主机名配置文件:
/etc/sysconfig/network
# 静态主机名配置文件:
/etc/hosts

网络测试命令

# 测试网络连接:
ping IP(或域名)
# 测试DNS解析:
host 域名
dig 域名
# 显示路由表:
ip route
# 追踪到达目标地址的网络路径:
traceroute 域名
# 故障排查遵循顺序:
# 从底层到高层,从自身到外部
# 先查看网络配置信息是否正确:
# IP地址,子网掩码,网关,DNS;
# 查看到达网关是否联通:
ping 网关IP地址
# 查看DNS解析是否正常:
host 域名

http://www.ppmy.cn/news/104850.html

相关文章

华为OD机试(2023.5新题) 学生方阵(java,py,c++,js)

华为OD机试真题目录&#xff1a;真题目录 本文章提供java、python、c、jsNode四种代码 题目描述 学校组织活动&#xff0c;将学生排成一个矩形方阵 请在矩形方阵中找到最大的位置相连的男生数量 这个相连位置在一个直线上&#xff0c;方向可以是水平的&#xff0c;垂直的&…

QT设置QPushButton样式

QPushButton *button new QPushButton("Button");// 设置样式表button->setStyleSheet("QPushButton {""background-color: rgb(181, 255, 184);""border-style: outset;""border-width: 2px;""border-radius: 10p…

如何在 Python 中进行循环语句控制?

在 Python 中&#xff0c;循环语句控制是编程中最常用的结构之一。它允许程序员重复执行一组代码&#xff0c;直到达到特定的条件为止。在本篇博客中&#xff0c;我们将介绍 Python 中的循环语句控制以及如何使用它来编写更加灵活的程序。 Python 中的循环语句 Python 中有两…

[笔记]C++并发编程实战 《三》线程间共享数据

文章目录 前言第3章 线程间共享数据3.1 共享数据带来的问题3.1.1 条件竞争3.1.2 避免恶性条件竞争 3.2 使用互斥量保护共享数据3.2.1 C中使用互斥量3.2.2 用代码来保护共享数据3.2.3 定位接口间的条件竞争选项1&#xff1a; 传入一个引用选项2&#xff1a;无异常抛出的拷贝构造…

Games104现代游戏引擎学习笔记10

Physics Actors and Shapes Actor Static:静态actor&#xff0c;例如挡板等 Actor Dynamic&#xff1a;动态actor&#xff0c;例如可移动的箱子 Trigger&#xff1a;触发器 Actor-Kinematic&#xff1a;违背物理原则&#xff0c;由设计决定&#xff0c;不遵循真实物理原则 反物…

python+django+vue协同过滤算法的电影推荐评分系统nzf73

用户:登录&#xff0c;注册&#xff0c;修改密码&#xff0c;修改个人信息&#xff0c;电影搜索&#xff0c;电影评分&#xff0c;电影评论&#xff0c; 推荐:个性化推荐电影(协同过滤)&#xff0c;热门推荐 管理员:用户管理&#xff0c;电影管理&#xff0c;评论管理 电影是本…

外贸商城ERP系统-海外跨境电商平台【APP+小程序+PC多端同步商城系统】

外贸商城ERP跨境电商系统是帮助打开海外贸易&#xff0c;线上出海贸易的平台&#xff0c;欢迎名片探讨开发跨境电商系统&#xff0c;相互学习成长。 一、基础功能架构 跨境全球跨境贸易多语言无货源多国货币一键铺货后台采集多商户一件代发视频直播带货国JI化UI面板国际多类型…

Python 面向对象编程笔记:中级面向对象

__super__() 在 Python 中&#xff0c;super 是一个内置函数&#xff0c;用于调用父类方法。该函数可以在子类中调用父类中被重写的方法&#xff0c;从而实现对父类方法的继承并且进行扩展。它能够动态地查找当前子类继承链中的下一个类&#xff0c;从而允许设计者更加灵活地…