Linux达人养成记Ⅱ笔记

来源:互联网 发布:若星汉天空 知乎 编辑:程序博客网 时间:2024/06/05 10:30

磁盘管理基本命令

查看磁盘分区的使用状况

df【选项】
选项:
-l 仅显示本地磁盘(默认)
-a 显示所有文件系统的磁盘使用情况,包含比如/proc/ 和 0字节的文件 
-h 以1024进制计算最合适的单位显示磁盘容量
-H 以1000进制计算最合适的单位显示磁盘容量
-T 显示磁盘分区类型
-t 显示指定类型文件系统的磁盘分区,如df -t ext4
-x 不显示指定类型文件系统的磁盘分区
df -lhT以1024进制计算,显示本地磁盘分区,文件类型 
df -lhT -t ext4 以1024进制计算,显示本地磁盘分区,文件类型,只显示 ext4文件 
df -lhT -x ext4 以1024进制计算,显示本地磁盘分区,文件类型,只显示 ext4文件之外的 

统计磁盘上的文件大小

du【选项】
选项:
-b 以byte为单位统计文件
-k 以KB为单位统计文件
-m 以MB为单位统计文件
-h 按照1024进制以最合适的单位统计文件
-H 按照1000进制以最合适的单位统计文件
-s 指定统计目标,如du -s ~/desktop,可以查看destop目录的大小
du -sb *.zip 统计当前文件下 *.zip文件 
du -sm *.zip 统计当前文件下 *.zip文件 
du -sh *.zip 统计当前文件下 *.zip文件 

底行模式和命令模式常用指令

底行模式下的常用指令

:w 保存
:q 退出
:! 忽略修改,强制退出
:ls 列出所有打开的文件
:n :N 文件前进,后退
:15 快速定位到第15行
/xxx 从光标位置开始,向后搜索xxx
?xxx 从光标位置开始,向前搜索xxx

命令模式常用指令

h 光标左移
j 光标下移
k 光标上移
l 光标右移
ctrl+f 向下翻页(front)
ctrl+b 向上翻页(back)
ctrl+d 向下翻半页(down)
ctrl+u 向上翻半页(up)
dd 删除光标所在行
o 在光标所在行的下方插入一行并切换到输入模式
yy 复制光标所在的行
p 在光标所在行的下方粘贴
P 在光标所在行的上方粘贴

分区格式化

ls -l /dev/sdb* # 查看第二块磁盘的分区

mkfs.ext3 /dev/sdb1# 将第二块磁盘的第一个分区格式化为ext3文件系统

mkfs -t ext3 /dev/sdb2# 效果和上一个一样

挂载分区

分区默认挂载目录是/mnt,挂载点必须先存在

mkdir -p /mnt/imooc # 建立sdb1的挂载点,即新建目录

mount /dev/sdb1 /mnt/imooc # 完成挂载,可以开始存储数据

umount /mnt/imooc # 完成卸载# monut命令,当系统重启之后就会失效,如果想永久挂载,需要编辑/etc/fstab文件

vim /etc/fstab/dev/sdb1 /mnt/imooc ext3 defaults 0 0 # 在末尾添加,保存退出

其他用户和用户组命令

su【用户名】 快速切换当前用户,如果不加用户名,则切换到root用户
whoami 显示当前登录用户名
id【用户名】 显示指定用户信息,包括用户编号和用户名;主要组编号及名称,附属组列表
groups【用户】 显示用户所在的主要组和附属组
chfn【用户】 设置用户资料,依次输入用户资料
finger【用户】 显示用户的详细资料

用户和用户组的概念

用户:使用操作系统的人
用户组:操作系统中具有相同系统权限的一组用户

/etc/group 存储当前系统中所有用户组信息

cat /etc/group 会发现密密麻麻好多用户组,每一行都有一个基本格式a:b:c:d:a是组名称;b是组密码占位符;c是组编号;d是组中用户名列表,为空不代表没有用户,当这个组内只要一个用户,且用户名和组名相同时是可以省略的。需要注意以下几点:

  1. root用户组的组号一定为0,如'root:x:0:'

  2. 组号1-499是预留给系统软件和服务的,如安装了MySQL,会自动创建一个MySQL用户组,越早安装的软件和服务,组号越小

  3. 用户手动创建的用户组编号是从500开始的

  4. 主密码占位符无一例外全都是用x来表示的,这与系统安全演变有关,后面课程会提

/etc/gshadow 存储当前系统中用户组的密码信息

cat /etc/gshadow
基本格式a:b:c:d:a是组名称;b是组密码;c是组管理者;d是组中用户名列表。

/etc/passwd 存储当前系统中所有用户的信息

cat /etc/passwd
基本格式a:b:c:d:e:f:g:a是用户名;b是密码占位符;c是用户编号;d是用户组编号;e是用户注释信息;f是用户主目录;g是shell类型。

/etc/shadow 存储当前系统中所有用户的密码信息

cat /etc/shadow
基本格式a:b:c:d:e:f:g:a是用户名;b是用户登录密码,单向加密,其他都是些零碎的内容,包括创建时间,最后修改时间等。

原先只有group和passwd两个文件,但后来考虑到安全性问题,就又演变出shadow和gshadow两个文件。

用户和用户组的基本命令

# 跟用户组有关的命令

groupadd cloudedge# 创建用户组

cat /etc/group# 看最后一行是否已添加

groupmod -n hadoop cloudedge# -n代表修改组名

groupmod -g668 hadoop # -g代表修改组编号

groupadd -g888 Master # -g代表在创建用户组时也指定组编号

groupdel hadoop# 删除用户组


#跟用户有关的命令

useradd -g hadoop Jeff# -g代表指定用户组

useradd-d /home/Jeff Jeff # -d代表创建指定用户的目录,默认会在/home下创建一个和用户名同名的目录

usermod -c helloworld Jeff# -c代表为用户添加注释信息

usermod-l NewJeff Jeff # -l代表修改用户名

usermod-d /home/NewJeff NewJeff # 修改用户的目录

usermod -g Master Jeff# -g代表更改用户所在的用户组

userdel Jeff# 删除用户,但不会删除/home/Jeff内的文件

userdel -r Jeff# 完全删除

touch /etc/nologin# 只要创建这个空文件就能禁止root用户外的用户删除用户信息

用户和用户组进阶命令

passwd -l NewJeff # 锁定用户passwd -u NewJeff # 解锁用户passwd -d NewJeff # 无密码登录

主要组和附属组

用户可以同时属于多个用户组,但必须要有一个主要组,加上多个附属组。

gpasswd-a NewJeff Master# -a代表将用户添加到一个附属组,如果有多个附属组,可以相互之间用逗号隔开,

但用户创建文件等操作都默认属于他的主用户组,如果要在附属组下进行,就要将身份临时切换到附属组

newgrp Master# 注意这个命令的前提是你现在登录在NewJeff下!!需要用户自己执行!!

# 此时可能需要你输入Master的组密码

gpasswd-d NewJeff Master # 从用户组中删掉用户,即将用户的某个附属组去掉

useradd -g group1 -G group2,group3 Jeff# 直接设置用户的主从用户组

gpasswd hadoop# 设置用户组密码

GPT分区

分区模式之MBR

  • 主分区不超过4个

  • 单个分区容量最大2TB

分区模式之GPT

  • 主分区个数『几乎』没有限制

  • 单个分区容量『几乎』没有限制

  • 但,GPT主分区中不适合安装X86构架的系统

parted # 既可以进行MBR分区,也可以进行GPT分区

# 默认是using /dev/sda,即第一块硬盘,是可以切换其他磁盘的

help # 查看帮助信息

select /dev/sdc # 切换到第三块磁盘

mklabel gpt # 指定分区表类型,使用GPT分区模式

mklabel msdos # 或者使用MBR分区模式

print # 查看当前磁盘的分区信息

print all # 查看所有磁盘的分区信息

# 现在可以开始进行分区,有交互和命令模式两种# 首先,交互模式

mkpart
# 询问个性化分区名称,默认留空

# 询问分区的文件系统,默认ext2

# 询问分区位置的起始点,指的是从第几MB开始,输入0

# 询问分区位置的结束点,指的是到第几MB结束,比如想给它2G,即给2048

# 可能会出现一个"未对齐"的错误提示,这时候需要cancel,然后设置起始点从1或者2开始

# 然后,命令模式

mkpart test 2000 3000 # 直接设置分区名和大小,此时已经有两个分区了

# 但如果再设置一个分区mkpart next 2500 3500,会和前一个分区重叠,它会让你选择是否接受建议的分区大小

rm 3 # 删除分区,3是分区编号#继续添加分区,可以突破4个的限制,且没有主分区,逻辑分区这些概念

unit GB # 单位转换为GB

quit # 退出分区工具,立即生效

MBR分区

分区命令

fdisk【选项】
fdisk -l代表列出当前磁盘信息
假设我们后来添加了一块硬盘,被系统识别为
/dev/sdb,但未被分区,即显示doesn't contain a valid partition table,我们可以通过以下步骤对其进行分区:

fdisk /dev/sdb # 进入分区模式

# 输入m可以查看命令的帮助信息

# 输入n,代表add a new partition

# 此时弹出两个选项,一个p(主分区),一个e(扩展分区)

# 输入p

# 弹出partition number选项,即要求输入分区号,默认为1,直接enter

# 弹出first sector选项,即要求设置分区的起始位置,直接enter,即默认

# 弹出last sector选项,即要求设置分区的终止位置,可以通过增量方式显式设置这个分区的大小,比如+2048M,即2G大小

# 完成主分区添加

# 输入p,查看已经添加的分区

# 输入n,选择e,即添加扩展分区,后面一路enter,使用默认值*

# 输入n,可以看到此时有一个主分区,一个扩展分区,接下来在扩展分区上分逻辑分区,而逻辑分区编号只能从5开始,因为1~4是留给主分区和扩展分区使用的

# 输入l,添加一个逻辑分区,比如分给它2G# 重复步骤再添加一个逻辑分区,选择大小的时候直接enter,将剩余空间全给它

# 完成分区,可以看出两个逻辑分区是在扩展分区内的

# 此时如果要删除某个分区,输入d,在输入分区对应的分区号,如2,就将扩展分区删除了,此时逻辑分区也没有了,只剩下主分区了

# 最后输入w,即真正完成磁盘分区

swap分区

如何为硬盘添加swap交换分区?

  1. 建立一个普通的Linux分区

  2. 修改分区类型的16进制编码

  3. 格式化交换分区

  4. 启用交换分区

fdisk /dev/sbdp # 打印第二块硬盘的分区信息

t
6 # 选择最后一个分区作为swap分区

L # 查看编码列表,82是swap分区编号

82

p # 再次查看

w # 保存

mkswap /dev/sdb6 # 格式化swap分区

swapon /dev/sdb6 # 启用swap分区

free # 查看swap分区启用状况

swapoff /dev/sdb6 # 停用swap分区

wq # 保存退出

vim编辑器的操作模式

三种模式

  • command mode-命令模式

  • insert mode-输入模式

  • last line mode-底行模式(尾行,末行)

vim abc
# 按I键进入insert mode

hello world
111111

222222

333333

# 按esc键进入last line mode

:wq # 保存退出

vim abc # 再次进入文件

# 连按两下D键删除第一行,这便是command mode,通过命令直接操作

vim编辑器的命令模式

vim abc 定位到第一行
vim + abc 定位到尾行
vim +3 abc 定位到第三行,其他数字依次,如果超过文件最大行数,则光标定位到尾行
vim +/xxx abc 定位到xxx首次出现的行,通过按N键来回切换定位其他有xxx的行
vim aa bb cc 一次性创建或打开多个文件,一开始进入第一个文件,只要在底行模式中键入:n就依次进入其他文件,键入:N或者:prev依次回到前一个文件

原创粉丝点击