linux知识备忘录

目录

文件系统

文件类型
d,目录
-,文件
l,链接文件
b,可读取储存设备
从,设备文件

目录

/bin 可执行文件目录,可被root以及一般用户使用,例如cp,move等
/dev 设备文件
/lib 函数链接库
/mnt 挂载,暂时性挂载
/run 开机产生的信息

/usr 软件目录 unix software resource

usr/bin 一般用户指令放置在这里,链接文件从/bin到/usr/bin

usr/lib 库

usr/local 自行安装软件目录,

usr/sbin 非系统正常运行所需系统指令。

usr/share 放置只读架构数据文件 /man 线上说明文档, /doc 软件杂项文件说明 /zoneinfo 时区文件

usr/game 游戏相关的数据

usr/include C/C++程序语言的header,include放置

/usr/libexec 一些不常使用的可执行文件和脚本.例如X窗口的命令

/usr/lib64 功能类似

/usr/src 源代码

/sbin root使用的系统级命令
/srv (service) 网络服务启动所需的数据目录
/tmp 暂时放置文件的地方
/opt 第三方软件
/etc 配置文件
/lib64 放置支持64为的库
/lost+found
使用ext2/3/4文件系统才会产生的目录,当文件系统发生错误的时候,将一些遗失的片段放置在这里。如果是的xfs文件系统,就不会存在这个目录
/proc 虚拟文件系统,数据都在内存中。记录process,drive等信息

/var 系统运行过程相关

/var/cache 程序运行过程中产生的暂存盘

/var/lib 程序本身执行过程需要使用的数据文件放置目录

/var/lock 某些设备文件资源只能一次被一个程序使用的目录。确保lock,保证单一软件使用

/var/log 登录文件信息

/var/mail 邮件目录,一般与/var/spool/mail 相互链接

/var/run 某些程序的PID放置在这里 与/run链接

/var/spool 放置一些调度数据

/sys 虚拟文件系统,记录核心与系统硬件信息相关

文件操作

目录操作

pwd 显示目前的目录

mkdir -p 逐层建立目录

rmdir -p 连同上一层目录删除

文件

文件默认权限umask

umask 指定目前使用在创建文件或者目录的权限默认值
umask的数字是默认值减掉的权限
目录默认777,文件默认666

文件隐藏属性chattr

chattr [+-=][ASacdistu]
一般主需要用到i,文件不可删除,改名,设置连接,无法修改。即使是root也不行。

对应的显示文件隐藏属性
lsattr [-adR]

文件打开指令

cat 从第一行开始显示
tac 从最后一行开始显示
nl 显示的时候,输出行号
more 一页一页显示

less 与more类似,不过可以先前翻页

  • /string 向下搜寻string功能
  • ?string 向上搜寻string功能
  • n 重复前一个搜寻
  • N 反向重复前一个搜寻
  • g 到第一行
  • G 到最后一行

head 只看开头几番

tail 最后几行

od 以二进制方式读取文件内容

改变文件属性

chagrp 改变文件所属群组

群组文件在/etc/group中

chown 改变文件的拥有者

用户文件在/etc/passwd

chmod 改变文件(夹)的权限

u 用户
g 群组
o 不同组的其他用户
a 所有用户

  • 加入
  • 减去
    = 设置

r=4
w=2
x=1
chomd u=rwx,go=rx .bashrc
改变ugo用户的权限
chomod a+w .bahsrc
a所有用户

软件源配置

默认情况下,apt软件管理的版本都不是最新版本。

第三方PPA

PPA 全称是 Personal Package Archive(个人软件包档案)

# 方法一:查看源文件
ls /etc/apt/sources.list.d/

# 方法二:使用 apt 命令
apt policy golang-go

# 方法一:使用 add-apt-repository 移除
sudo add-apt-repository --remove ppa:longsleep/golang-backports

# 方法二:手动删除源文件
sudo rm /etc/apt/sources.list.d/longsleep-golang-backports*

# 更新软件列表
sudo apt update

工作流程

通过 PPA 安装软件
当执行 sudo add-apt-repository ppa:user/ppa-name时

系统自动从 https://launchpad.net/~user/+archive/ubuntu/ppa-name获取软件包
下载仓库信息到 /etc/apt/sources.list.d/目录
添加数字签名确保软件包安全性
更新本地软件包列表(相当于执行 apt update)

资源渠道

Launchpad 官方平台​
https://launchpad.net/ubuntu/+ppas
最权威、最官方的PPA托管平台。由软件开发者或知名社区维护者创建,更新相对及时。
寻找知名软件(如Go语言
、Wine、PHP特定版本)或希望从源头查找时首选。
Ubuntu Updates 等第三方索引站​
https://www.ubuntuupdates.org/ppas
收录了大量PPA信息,可查询某个PPA支持哪些Ubuntu版本,避免出现“不支持当前系统版本”的错误

不确定某个PPA是否兼容你的Ubuntu版本时,用于查询验证。
社区搜索与问答​
https://askubuntu.com或技术博客
用户会分享经过验证可用的PPA源,有讨论和反馈。
当官方源和索引站没有明确结果时,可在此搜索“软件名+PPA”获取线索。

命令行

工具命令

cp 复制

压缩命令

gzip 解压compress,zip,gzip文件

bzip2,取代gzip

xz 取代前面的

打包命令tar

信息查询命令

chsh 改变shell
w,who,last,lastlog 查询使用者
write, mesg, wall 用户交流

grep

查看CPU处理器数量

grep 'processor' /proc/cpuinfo

日志文件中错误信息的高亮显示(标红)及快速定位

基础用法:高亮显示日志中的"ERROR"关键字(默认红色)
grep --color "ERROR" /path/to/your/logfile.log

进阶用法:显示错误上下文(前后5行),便于理解错误场景
grep --color -C 5 "ERROR" /path/to/your/logfile.log

统计错误次数(快速判断问题严重程度)
grep --color -c "ERROR" /path/to/your/logfile.log

man

man -k:根据关键字搜索联机帮助,是一种模糊搜索 功能同apropos
man -f:关键字精确搜索,与-k不同,它只搜索与关键字完全匹配的帮助页。 功能同whatis
man 之后有一个(?)数字表示
1,使用着在shell环境中可以操作的指令
2, 系统核心可调用的函数与工具
3 一些常用的函数与函数库,大部分为C的函数库
4 设备文件的说明,通常在/dev下的文件
5 配置文件或者是某些文件的格式
6 游戏
7 协定,文件系统,网络协议,等说明
8 系统管理员可用的管理指令
9 与kernel有关的文件

info

linux 的帮助命令
有点类似于xml文件的结构

操作方法

space键方向键
tab node之间移动
enter 进入node
b 移动到页面的第一个node
e 移动到页面的最后一个node
n 前往下一个node
p 前往上一个node
u 向上移动一层
s(/) 在infopage中搜索
h.? 求助菜单
q 结束

man page 结构

NAME 简单的指令和数据名称说明
SYNOPSIS 简单的指令语法
DESCRIPTION 完整的说明
OPTIONS 指令选项说明
COMMANDS 当程序执行时,在程序中可以下达的命令
FILES 程序使用链接的一些文件
SEE ALSO 参考,其他说明
EXAMPLE 范例

文件信息file

搜索find

指令文件的搜寻which , type
文件名搜寻 find,whereis,loacte

进程信息

程序处理信息

pv命令,显示处理进度,(复制,打包)

pv getiot.db > getiot.db.bak
pv /var/log/syslog | zip > syslog.zip
pv rootfs.tar.bz2 | tar -jxf - -C rootfs/

磁盘健康信息smartctl

sudo apt install smartmontools
sudo smartctl -H /dev/sda
输出pass,以为正常

查看磁盘的容量

ls -lh,列出总大小

df,列出文件系统整体磁盘使用量

du,评估文件系统的磁盘使用量

常用du -sh

系统级命令

启动关闭系统

shutdown
reboot
halt 系统停止
suspend 休眠
sync 数据同步到磁盘上,因为有部分数据还在内存上,当然现在的关机都有执行

其他命令

uname 查看操作系统信息

磁盘命令

文件系统挂载和卸载 mount umout

每次开机进行挂载,相关文件/etc/fstab以及/etc/mtab

swap分区

swap 格式化
swapon 使用
free 查看

文件磁盘系统参数修改

mknod

查看磁盘分区

列出所有储存设备 lsblk

列出磁盘的分区类型与分区信息 parted

文件系统检验

xfs_repair fsck

磁盘分区 parted

MBR分区表使用fdisk

GPT分区表使用gdisk

更新linux核心分区表partprobe

磁盘格式化

mkfs

创建xfs文件系统,使用mkfs.xfs指令

实体链接与符号链接ln

Shell 略

数据流重定向

  1. 标准输入stdin, 0, <, <<
  2. 标准输出stdout, 1, >, >>
  3. 标准错误输出 stderr, 2, >, >>

>是将文件内容清空,然后写入
>>则是添加
/dev/null,黑洞设备,将信息忽略,不显示,不存储
<<结束的字符

命令执行的顺序;&&||

; 是一个接一个
&&,||,判断语句形式

管道命令 |

不同与执行顺序;
管道命令针对于数据流的执行顺序,很像重定向,只不过定向到了另一个指令中

数据截取命令cut,grep

排序命令sort, wc, uniq

双向重导向 tee

字符转换命令 tr, col, join, paste, expand

分包命令split

参数代换 xargs

文件名称替代 -

用户管理

查询用户id命令 id

账号密码 /etc/passwd

authconfig --test | grep hashing
':'分隔符号
账号名称:密码:最近更动密码的日期:密码不可被更动的天书:密码需要重新变更的天书:密码需要变更期限前的警告天数:密码过期后账号宽限时间:账号失效日期:保留

检查工具

pwck, pwconv, pwunconv, chpasswd,

多用户的磁盘分配

quota

工作调度

at, cron

用户增删

useradd usermod

groupadd groupmod

ACL

检验是否有ACL dmesg | grep -i acl

设置ACL,getfacl, setfacl

job control管理

指令后台执行 &

后台暂停 Ctrl+z

关闭后台 kill killal

killall -signal

离线管理,登出系统后,依旧执行 nohup

因为用户登出后,即使是后台指令,也会中断。可以使用at.

调整PRI,也就是程序的优先执行顺序 nice renice

已存在的程序的nice重新调整

系统资源的查看 free

查看正在运行的程序 pstree

静态ps

ps -l

F代表程序的process flags,说明了权限。4为root,1仅仅进行复制而没有实际执行
S代表程序的状态,R,running; S,sleep;D,不可被唤醒的睡眠的状态,在等待IO;T停止状态;Z zombie,程序终止,却无法移除内存外
C,CPu使用率
PRI/NI 程序执行的优先顺序,数值越小,程序优先级越高

动态top

查看目前后台的工作状态 jobs

后台转到前台 fg %[jobnumber]

PAM模块

管理员权限

visudo

修改/etc/sudoers。其实利用vi 将/etc/sudoers文件调用出来进行修改

posted @ 2024-08-08 18:42  no_no  阅读(30)  评论(0)    收藏  举报