ZHE知识库 ZHE知识库
首页
JAVA
中间件
易学
小说漫画
其他
Source (opens new window)
首页
JAVA
中间件
易学
小说漫画
其他
Source (opens new window)
  • 首页
  • 记事本
  • 笔记杂项
  • GIT版本控制
  • 操作系统笔记

    • Windows笔记
    • Linux笔记
      • 系统安装
      • 系统信息查看
        • 架构信息
        • 硬件信息
      • 资源使用情况
        • CPU和内存
        • 实时网速
        • 硬盘存储
      • SSH相关配置
      • VIM编辑器
      • 文件权限管理
      • 长命令起别名
      • 常用命令
        • 查找命令
        • 配置代理
        • 文件上传下载
        • 后台运行
        • 结束进程
    • Ubuntu笔记
    • CentOS笔记
  • Docker笔记

  • 首页
  • 操作系统笔记
张涵哲
2023-10-17
目录

Linux笔记

# 系统安装

安装系统至少需要分配三个分区

分区 分区名 分区类型 文件系统
/boot 引导分区,建议1GB 主分区 ext4
swap 交换分区,按需分配 主分区 无
/ 根目录,新手建议剩余全部 主分区 ext4

# 系统信息查看

# 架构信息

通过uname -m命令查看系统架构信息,然后在下面的表格中找到对应的架构信息

$ uname -m
x86_64
输出 架构
i386, i686 i386
x86_64 amd64
arm, arme arm_garbage
armv7l, armhf armv7
aarch64, armv8l arm64
mips mips
mips64 mips64

# 硬件信息

CPU型号核心数

$ lscpu
架构:                   x86_64
  CPU 运行模式:         32-bit, 64-bit
  Address sizes:         46 bits physical, 48 bits virtual
  字节序:               Little Endian
CPU:                     4
  在线 CPU 列表:        0-3
厂商 ID:                GenuineIntel
  型号名称:             Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
    CPU 系列:           6
    型号:               79
    每个核的线程数:     1
    每个座的核数:       4
    ......

内存信息

其中manufacturer代表厂商,part number代表型号规格,speed代表频率和速度

$ dmidecode -t memory
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.

Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
	Location: Other
	Use: System Memory
	Error Correction Type: Multi-bit ECC
	Maximum Capacity: 4 GB
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x1100, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x1000
	......

# 资源使用情况

# CPU和内存

CPU内存使用情况可以通过top命令查看,也可以使用增强版的htop命令,top命令是系统自带的,htop命令可能需要额外安装

# 执行top命令的打印
$ top
top - 18:02:58 up 2 days,  2:24,  1 user,  load average: 0.73, 0.25, 0.14
任务: 204 total,   1 running, 203 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.5 us,  2.9 sy,  0.0 ni, 95.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3904.5 total,   1026.5 free,   1412.3 used,   1465.7 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   2219.2 avail Mem 

 进程号 USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND

# 汉化top命令打印结果
$ top
top - 18:02:58 已运行 2 天,  2:24,  1 用户,  平均负载: 0.73, 0.25, 0.14
任务: 204 总数,   1 运行中, 203 睡眠中,   0 已停止,   0 僵尸进程
%Cpu(s):  1.5 用户态,  2.9 系统态,  0.0 改变过优先级, 95.6 空闲,  0.0 等待IO,  0.0 硬中断,  0.0 软中断,  0.0 虚拟机时间
MiB 内存 :   3904.5 总数,   1026.5 空闲,   1412.3 已使用,   1465.7 缓存
MiB 交换空间:      0.0 总数,      0.0 空闲,      0.0 已使用.   2219.2 可用内存

 进程号 用户      优先级  改变过优先级  虚拟内存  实际内存  共享内存  CPU占用率  内存占用率     运行时间  命令

# 实时网速

查看实时网速需要使用ifstat命令,直接输入即可,如果命令不存在可以apt安装

# 安装ifstat命令
$ sudo apt install -y ifstat

# 直接使用ifstat就可以查看网速,但是一般建议搭配参数使用,效果更好
$ ifstat -S -i eth0 -t 1
    -S:行内刷新,默认打印网速是一行一行打印的,很快铺满屏幕
    -i:查看指定网卡网速,默认打印所有网卡的网速信息
    -t:指定刷新频率/秒,默认网速是每秒钟更新一次,

# 硬盘存储

# 硬盘分区信息查看,使用参数可查看分区UUID
$ lsblk
    -a:显示所有设备(包括未挂载的)
    -f:显示UUID以及分区使用情况
    -t:显示设备的拓扑关系
    -p:显示文件系统
    -J:以JSON格式显示

# 查看挂载点使用情况
$ df -h
    -a:显示所有挂载点
    -h:以可读的存储单位显示(KB,MB,GB)

# 查看目录/文件使用情况
$ du -ah --max-depth=1
    -h:以可读的存储单位显示(KB,MB,GB)
    -s:查看当前目录总占用大小
    -a:查看文件,默认只查看目录,不可与-s同时使用
    --max-depth:统计深度
    --exclude:排除条件

# SSH相关配置

启用Root用户SSH远程

# 编辑配置文件
$ vim /etc/ssh/sshd_config

# 找到PermitRootLogin解开注释并修改为yes
$ 略

# 重启sshd服务
$ systemctl restart sshd

修改SSH端口号

# 编辑配置文件
$ vim /etc/ssh/sshd_config

# 找到Port属性解开注释修改为合适的端口号,注意防火墙放行端口
$ 略

# 切记先放行防火墙,然后重启sshd服务
$ systemctl restart sshd

SSH连接慢

# 编辑配置文件
$ vim /etc/ssh/sshd_config

# 将GSSAPIAuthentication 设置未no,同时添加UsePAM no 、UseDNS no这两项
GSSAPIAuthentication no
UsePAM no
UseDNS no

# 重启sshd服务
$ systemctl restart sshd

# VIM编辑器

快捷键

# gg跳转文件开头,G跳转文件结尾,10G跳转第10行
# 复制行:yy,复制5行:5yy
# 删除行:dd,删除5行:5dd
# 粘贴复制的行:p

# 回退到上一步:u
# 撤销上一步的回退:Ctrl + R

指令

# 显示/关闭行号
:set nu
:set nonu

# 开启/关闭自动缩进
:set paste
:set nopaste

# 替换内容,带%表示全文,不带%表示当前行
%s/aaa/bbb/g

# 查找内容,快捷键n为下一条,N为上一条
/aaa

# 关闭查找高亮
:nohlsearch

关闭自动缩进

有些配置写在VIM配置文件中,例如我个人不喜欢VIM的自动缩进,可以将set paste指令写入配置文件

# 编辑VIM系统配置文件,对所有用户生效
$ vim /etc/vim/vimrc

# 如果用户目录下有配置文件,也可以修改用户文件仅对当前用户生效
$ vim ~/.vimrc

解决VIM中文乱码

# 编辑VIM系统配置文件,对所有用户生效
$ vim /etc/vim/vimrc

# 加入下面这段内容
set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030

关闭VIM可视化鼠标事件

# 移动到该目录,然后查看该目录的文件信息
$ cd /usr/share/vim
$ ll
总计 12
drwxr-xr-x  2 root root 4096  5月 4日 10:24 addons
drwxr-xr-x  2 root root 4096  5月 4日 10:24 registry
drwxr-xr-x 18 root root 4096  8月23日 04:44 vim90

# 该目录下有个vim开头的目录,我这里是vim90,移动到该目录下
$ cd vim90

# 编辑defaults.vim文件
$ vim defaults.vim

# 在文件中找到if has('mouse')命令,注释相关代码即可
"if has('mouse')
"  if &term =~ 'xterm'
"    set mouse=a
"  else
"    set mouse=nvi
"  endif
"endif

# 文件权限管理

权限顺序:所有者(Owner / u)、所属组(Group / g)、其他用户(Others / o)

权限数值:读取(Read / 4)、写入(Write / 2)、执行(Execute / 1)

权限管理

$ chmod u+r file.txt     # 给所有者添加读权限
$ chmod g-w file.txt     # 移除所属组的写权限
$ chmod o=x file.txt     # 设置其他用户的权限为仅执行
$ chmod a+rw file.txt    # 给所有用户添加读写权限
$ chmod 751 file.txt     # 所有者全部权限,同组读取执行权限,其他用户执行权限,
$ chmod 755 ./java -R    # 所有者全部权限,同组及其他用户读取执行权限,对该目录及所有子文件生效

文件管理

$ chown zhang file.txt          # 所有者改为zhang
$ chown zhang:zhang file.txt    # 所有者改为zhang,所属组更改为zhang
$ chown :zhang file.txt         # 所属组更改为zhang
$ chown root:root ./java -R     # 将该目录及所有子文件所属用户和所属组修改为root

# 长命令起别名

Debian系用户配置文件为~/.bashrc,全局配置文件为/etc/bash.bashrc

# 编辑配置文件
$ vim /etc/bash.bashrc

# 找到现有alias的位置,在结尾添加下面这段内容
alias ll='ls -lhF'
alias rm='rm -i'
alias dk='docker'
alias dkc='docker compose'
alias docker-compose='docker compose'
alias rtnet='ifstat -S -i eth0 -t 1'

# 更新配置文件
$ source /etc/bash.bashrc

# 常用命令

这里记录一些常用的命令,用的时候方便查阅

# 查找命令

# find 范围 选项 选项值
# 从根目录内查找名字为 1.txt 的文件
$ find / -name 1.txt

# 查找/opt目录下大于100MB的文件
$ find /opt -type f -size +100M
# locate 查找条件
# 查找 1.txt 文件
$ locate 1.txt

# 长时间未使用locate需要更新数据库
$ updatedb

# 命令不存在可以安装mlocate或者locate软件包

# 配置代理

命令行代理

# 查看代理
$ echo $http_proxy
$ echo $https_proxy
$ echo $ftp_proxy
$ echo $no_proxy

# 设置代理
$ export http_proxy="http://127.0.0.1:7897"
$ export https_proxy="http://127.0.0.1:7897"
$ export ftp_proxy="http://127.0.0.1:7897"
$ export no_proxy="localhost,127.*,192.168.*,10.*,172.16.*,172.17.*,172.18.*,172.19.*,172.20.*,172.21.*,172.22.*,172.23.*,172.24.*,172.25.*,172.26.*,172.27.*,172.28.*,172.29.*,172.30.*,172.31.*"

# 清空代理
$ unset http_proxy
$ unset https_proxy
$ unset ftp_proxy
$ unset no_proxy

APT 包管理器代理

编辑/etc/apt/apt.conf配置文件,用于查看、设置、删除代理

Acquire::http::Proxy "http://127.0.0.1:7897";
Acquire::https::Proxy "http://127.0.0.1:7897";

# 文件上传下载

建议自己备一份 Debian 和 RedHat 的lrzsz安装包用此命令上传后安装,防止电脑无法安装 XFTP 的情况,文件命名最好避免中文名称,防止文件上传后出现乱码现象

# 将本地文件上传至服务器
$ scp /路径/文件名 用户名@远程服务器:/路径/文件名

# 反之则是将服务器文件下载至本地
$ scp 用户名@远程服务器:/路径/文件名 路径/文件名

# 后台运行

# 后台运行程序,将日志打印在 nohup.log
$ nohup java -jar xxx.jar > nohup.log 2>&1 &

# 后台运行程序,丢弃日志信息
$ nohup java -jar xxx.jar > /dev/null 2>&1 &

# 结束进程

# 找到占用该端口号的程序的PID
$ netstat -apn | grep 端口号

# 根据进程名称查询PID
$ ps -ef | grep 进程名 | grep -v grep

# 根据PID结束应用程序
$ kill -9 程序的PID
上次更新: 2025-03-15, 18:19:38
Windows笔记
Ubuntu笔记

← Windows笔记 Ubuntu笔记→

Theme by Vdoing | Copyright © 2023-2025 Zhe | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式