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 略
数据流重定向
- 标准输入stdin, 0, <, <<
- 标准输出stdout, 1, >, >>
- 标准错误输出 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文件调用出来进行修改

浙公网安备 33010602011771号