鸟哥linux摘要-Linux复习必备(Linux命令)

Posted 行码棋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鸟哥linux摘要-Linux复习必备(Linux命令)相关的知识,希望对你有一定的参考价值。

以下内容可能比较少,如要深入了解,可查阅相关书籍,敬请谅解


鸟哥Linux私房菜摘要

1.Linux是什么

1.1 Linux是什么

1.1.1 Linux是什么

  • Linux是操作系统
  • Linux包括内核与系统调用那两层
  • 硬件是由内核来控制的
  • Windows是开发在x86架构上的系统

1.1.2 unix的历史

  • 兼容分时操作系统可以使多个用户分别使用CPU的资源,其实是CPU在每个用户之间的工作之间来回切换
  • 内核程序:所有的程序或系统装置都是文件
  • unix正式版本是由C语言开发出来的
  • 史托曼开始GNU项目,为的是创建一个自由的,开放的UNIX操作系统。先是在Unix上开发GNU软件打开GNU项目的知名度,然后是开发C语言的编译程序(GNU C Complier (GCC))打开项目的能见度。GNU项目开发出来的几个重要软件:GCC,Bash Shell

1.2 linux开发

  • 多任务处理的CPU是在不同程序之间的切换
  • Linux是许多人不断维护的结果
  • Linux的内核版本:
    • 主次版本为奇数:开发中版本
    • 主次版本为偶数:稳定版本

1.3 Linux的特色

  • 自由与开放
  • 配备需求低廉
  • 内核功能强大稳定
  • 多任务多用户
  • 用户与用户组的规划

1.4 主机规划与磁盘分区

  • 磁盘分区的选择
    • 目录树结构
      • 根目录最重要,以一条斜线/表示
    • 文件系统与目录树的关系(挂载)

2.首次登录

命令格式:命令 选项 参数1 参数2…

  • 加入选项参数时,参数前通常会带-
  • 命令太长时,可以使用反斜杠\\转义回车键,让命令在下一行输入
  • 大小写字母不一样

2.1 基础命令

  • date显示时间
    • date + %Y/%m/%d年月日显示
    • date +%H:%M:%S 时分秒显示
  • cal 显示日历
    • cal显示当前年的月份日历
    • cal 2021显示2021年的日历
    • cal [[mongth] year]
      cal 7 2021显示2021年的7月份
  • bc 计算器
    • quit退出
    • scale = number保留的位数
  • man查看帮助

2.2 热键

  • Tab键
    • 补全文件名及命令
  • Ctrl + c强行终止命令
  • Ctrl + d离开命令行,退出

2.3. 关机

在Linux上,每个程序都是在后台运行的,我们不知道有多少人在使用我们的服务

  • 数据同步写入硬盘:sync

Linux系统中,为了加快数据的读取速度,某些加载内存中的数据不会直接被写入硬盘,而是先暂存在内存之中。在不正常关机时,数据会更新不正常,需要使用sync命令更新数据

  • 关机命令shutdown

shutdown -t second:-t后加秒数,过几秒才关机

shutdown -r:停掉服务就重启

shutdown -h now:立刻关机

shutdown -h +30:三十分钟后关机

shutdown -r +30 "The system will reboot!":三十分钟系统重启,并显示消息给在线用户

  • 重启关机

reboot:重启

poweroff -f:关机

  • 切换执行等级init

init 0:关机

init 3:纯命令行模式

init 5:含有图形界面模式

init 6:重启

3.Linux的文件权限与目录配置

3.1 用户和用户组

用户:可以比喻为家庭的成员

用户组:可以比喻为整个家庭

  • 用户身份和用户组记录的文件
    • 所有系统上的帐号和一般身份用户,及root的相关信息记录在 /etc/passwd文件中
    • 个人的密码记录在 /etc/shadow文件下
    • 所有的组名记录在/etc/group内

3.2 Linux的文件权限

3.2.1 Linux文件属性

使用ls -al命令获取文件相关信息

  • 第一列表示文件的类型和权限(共十个字符)
    • 第一个字符代表这个文件是 目录,文件或链接文件
      • d目录
      • -文件
      • l链接文件
    • 接下来九个,三个三个为一组,都为rwx的组合,没有权限则为-,保持rwx的顺序
      • 第一组:拥有者权限
      • 第二组:同用户组的用户权限
      • 第三组:其他用户权限
  • 第二列:有多少个文件名连接到此节点(i-node)
  • 第三列:文件所有者的帐号
  • 第四列:文件所属的用户组
  • 第五列:文件大小
  • 第六列:修改日期
  • 第七列:文件名

3.2.2 改变文件属性和权限

  • chgrp改变文件所属用户组

注意:改变的

chgrp [-R] dirname/filename 进行递归型的更改
eg.
chgrp users install.log 改变为user用户组
  • chown改变文件所有者
chown [-R] 帐号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录

  • chmod 改变文件的权限

数字形式:
r :4
w : 2
x : 1
owner = rwx = 4 + 2 +1 = 7

group = rwx = 4 + 2 + 1 = 7

chmod [-R] xyz 文件或目录

xyz : 为数字类型的权限属性,是数值的相加

eg.
chmod 777 py
  • 符号形式
    • 命令格式chmod 身份 操作 文件或目录
    • 三种身份 user group others all(代表所有)分别为开头字母u,g,o,a
    • 操作:+(加入)-(除去)=(设置)
    • r , w , x
eg
chmod a+w py 所有用户均加入w权限
chmod a-x py 所有用户均去掉可执行权限

3.2.3 权限的意义

  • 目录的x权限

    • 具有x权限,表示能够进入该目录,否则就不能(这个要极其注意)
  • 目录的w权限

    • 可以让用户删除,更新,新建文件或目录,非常重要,谨慎给
  • 目录的r权限

    • 只具有r权限,只可以用ll查到目录下的文件名,而其它信息全是一堆问号

4.Linux文件与目录管理

4.1 目录与路径

4.1.1 相对路径与绝对路径

  • 绝对路径:必须从根目录写起
  • 相对路径:相对于某一路径的路径写法

4.1.2 目录的相关操作

  • cd切换目录
cd [相对路径或绝对路径]
eg.
cd ~py 回到py这个用户的主文件夹
cd 回到自己主文件夹
cd ..返回上层目录
cd - 回到上次访问的目录
cd /var/spool 绝对路径写法
cd ./py相对路径写法
  • pwd显示目前所在的目录
eg.
pwd -P 不适用连接路径,显示当前的路径
pwd 显示目录
  • mkdir 创建目录
mkdir [-mp] 目录名称
-m 设置文件权限
-p 递归创建目录
eg.
mkdir test
mkdir -p tese1/test2/test3创建多级目录
mkdir -m 711 test4创建rwx--x--x的目录
  • rmdir删除的目录
rmdir [-p] 目录名称
-p 连同上层的空目录也删除掉
eg.
rmdir test 有内容(包括空的目录)不可删除,无内容可以删除
rmdir -p AA/BB/CC递归删除上层空目录

4.1.3 执行文件路径的变量: $PATH

查看文件属性的命令ls的完整文件名为:/bin/ls(绝对路径)

因为有环境变量PATH的配置,故可以使用ls命令

4.2 文件与目录管理

4.2.1 查看文件或目录 ls

ls [-各种参数] 目录名称
ls [--color = {never,auto,always}] 目录名称
ls [--full-time] 目录名称
参数:
-a : 显示全部文件,连同隐藏文件
-l : 列出文件属性与权限等数据
-d : 仅列出目录本身,不列出目录内的文件数据

4.2.2 复制、删除和移动 cp,rm,mv

  • cp
cp [-air···] 源文件 目标文件
参数:
-a : 相当于pdr的意思,文件的所有特性复制过去
-p : 文件属性复制过去,而非使用默认属性
-d : 若源文件为连接文件的属性,则复制连接文件属性而非文件本身
-i : 目标文件已经存在时,覆盖前会询问
-r : 递归复制,用于目录的复制
还有许多参数
注意:如果源文件有两个以上,目标文件一定需要是目录

注意文件权限的改变:

默认条件下,cp的源文件和目标文件的权限是不同的,目的文件的所有者通常是命令操作者本身

  • rm
rm [-fir] 文件或目录
eg.
参数:
-f : 忽略不存在的文件,不出现警告信息
-i : 互动模式,询问是否操作
-r : 递归删除
  • mv
mv [-fiu] 源文件 目标地址
参数:
-f : 目标文件存在不询问直接覆盖
-i : 目标文件已存在,询问是否覆盖
-u : 目标文件已存在,source比较新,才会更新

eg.
mv还可以重命名
mv AA CC只要新名称不存在即可
mv 1.txt 2.txt AA多个源文件一个目录

4.3 文件内容查阅

4.3.1 直接查看文件内容

  • cat(concatenate)
cat [-AbEnTv] 
参数:
-b : 列出行号,非空白行做出显示,空白行不标行号
-n : 全部标出行号
  • tac(反向显示)

从最后一行到第一行显示出来

  • nl(添加行号打印)
nl [-bnw] 文件
参数: 
-b : 指定行号指定的方式 两种
 -b a : 空行也列出行号
 -b t : 空行不列出行号
-n : 列出行号的表示方式
 -n ln : 行号在屏幕最左方显示
 -n rn : 行号靠右显示,不加前缀0
 -n rz : 行号靠右显示,加前缀0
-w : 行号占用的位数
eg.
nl -n rz -w 3 2.txt
结果
001
002
003

4.3.2 翻页查看

  • more(一页一页的查看)
more 文件名

快捷键:

空格 : 下翻一页

回车 : 向下滚动一行

q : 离开

/字符串 : 查询字符串

  • less(一页一页查看)

less功能比more的更全,支持向前翻动

空格 : 下翻一页

q : 离开

/字符串 : 向下查询字符串

?字符串 : 向上查询字符串

还有很多功能,可以man一下

4.3.3 数据选取

  • head(取出前面几行)
head [-n number] 文件
eg.
head -n 1.txt默认显示前10行
head -n 20 1.txt 显示前20行
head -n -20 1.txt 若文件公有52行,显示前面32行,后面20行不显示
  • tail (取出后面几行)
tail [-n number] 文件
参数:
-n
-f : 持续检测后面的文件,按下CTRL C才结束检测
eg.
默认显示后面的10行
tail -n +100 1.txt 列出100行及以后的数据
tail -f 1.txt该文件有数据写入时就立刻显示到屏幕上

4.3.4 非纯文本文件od

od [-t TYPE] 文件
-t后面可以接各种类型的输出
a : 默认字符输出
c : ASCII码输出
d : 十进制
f : 浮点数
o : 八进制
x : 十六进制

4.3.5 修改文件时间或创建新文件:touch

文件时间:

  • modification time(mtime)
    文件数据更改时,就会更新这个时间

  • status time(ctime)
    文件状态(权限与属性)改变时,就会更新这个时间

  • access time(atime)
    文件内容被取用,就会更新

ll = ls -l

ll 获取文件的时间:

ll --time=atime 1.txt
ll --time=ctime 1.txtctime

注意:ls 默认显示的是文件的mtime

touch [-acdmt] 文件
参数:
-a : 修改访问时间
-c : 仅修改文件的时间,文件不存在不创建新文件
-d : 后面接欲修改的日期,也可使用--date="日期或时间"
-m : 修改mtime
-t : 后接欲修改的时间,格式[YYMMDDhhmm]

touch 还可以创建空文件

4.4 文件与目录的默认权限与隐藏权限

4.4.1 文件默认权限:umask

umask是用户在新建文件或目录时的权限默认值

  • 查看默认权限:
umask 获取文默认权限(显示四个数字)数字为需要拿掉的权限
umask -S 以字符形式显示

4.4.2 文件隐藏属性chattr,lsattr

  • chattr设置文件的隐藏属性
    只在Ext2/Ext3的文件系统上生效
chattr [+-=][ASacdistu] 文件目录或名称
参数:
+ : 增加参数
- : 删除参数
= : 修改参数

i : 让文件不能被删除,改名设置连接也无法写入或添加数据。只有root能够设置该属性
a : 只能增加数据,不能删除和修改数据,root才能设置
  • lsattr显示文件隐藏属性
lsattr [-adR] 文件或目录
参数:
-a : 将隐藏文件的属性也显示出来
-d : 接的是目录,仅列出目录本身的属性
—R : 连同子目录的数据也一并列出

4.4.3 文件特殊权限:SUID,SGID,SBIT

先掠过

4.4.4 查看文件类型

file 文件名

4.5 命令与文件的查询

4.5.1 脚本文件名的查询

  • which (寻找执行文件)
which [-a] command
参数:
-a : 将所有由PATH目录中可以找到的命令列出
eg.
which ifconfig

4.5.2 文件名的查找

  • whereis(寻找特定文件)
whereis [-bmsu] 文件或目录名
参数:
-b : 只找二进制的文件
-m : 只找在说明文件manul路径下的文件
-s : 只找source源文件
-u : 查找不在上面三项的其他文件
  • locate
locate [-ir] keyword
参数:
-i : 忽略大小写的差异
-r : 后面接正则表达式的方式
eg.
locate passwd

会查找只要包含关键字的文件,但是在自己创建的数据库寻找文件,不是在硬盘中。

该数据库只会定期的更新数据,如果要查找新创建的文件,需要手动更新数据库—使用命令updatedb

  • find
find [PATH] [option] [action]
参数:
---时间相关的---
-atime  -ctime  -mtime
-mtime n : n天之前的1天内被更改过的文件
-mtime +n : n天之前的(不包括n天)被更改过的文件名
-mtime -n : n天之内的(包括n天)被更改过的文件名
eg.
find / -mtime 0 0代表目前的时间,从现在开始到24小时前


--与用户或用户组名有关的参数--
-uid n : n为数字,为用户的帐号ID,即uid uid是记录在/etc/passwd里面与帐号名称对应的数字
-gid n : n为数字,为用户组名的ID,即gid,gid记录在/etc/group中
-user name : name为用户帐号名称
......

--文件权限及名称有关的参数--
-name filename :查找文件名为filename的文件
-size [+-]SIZE 查找比SIZE规格还大(+)或小(-)的文件,SIZE规格有c:byte k:1024bytes
-type TYPE : 查找文件类型为TYPE的文件,TYPE有正规文件(f)
......


5. Linux磁盘与文件系统管理

5.1 Linux的磁盘文件系统EXT2

  • 文件数据:文件权限(rwx)和文件属性(所有者,群组,时间参数),文件系统通常会将这两部分存放在不同的块中。权限和属性存放在inode中,实际数据存放在data block块中。

  • 三种数据:

    • super block:记录文件系统的整体信息,包括inode/block的总量,使用量,剩余量,以及文件系统的格式和相关信息
    • inode:记录文件的权限和属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码
    • block:实际记录文件的内容,若文件太大时,会占用多个block
  • 挂载:将文件系统和目录树结合的操作成为挂载

    • 挂载点一定是目录,该目录为进入该文件系统的入口

5.2 文件系统的简单操作

5.2.1 磁盘与目录的容量

  • df(列出文件系统的整体磁盘使用量)
df [-参数] [目录或文件名]
参数:
-h : 以GB、MB、KB的格式显示
-i : 不用硬盘容量显示,而用inode的数量显示
.....

eg.
df -h
......
  • du(评估文件系统的磁盘使用量)
du [-参数] 文件或目录名称
参数:
-s : 列出总量而已,不列出个别目录的占用容量
-h : 以人们易读的容量单位格式显示(G/M)

5.2.2 链接文件ln

  • 硬连接:通过文件系统的inode连接来产生新文件名,而不是产生新文件
  • 软连接:类似Windows的创建快捷方式
ln [-sf] 源文件 目标文件
参数:
-s : 不加参数就是硬连接,加上-s就是软连接(symbolic link)
-f : 若目标文件存在,就主动将目标文件直接删除后再创建

5.3 磁盘分区、格式化、检验、挂载

5.3.1 磁盘分区:fdisk

fdisk [-l] 设备名称
输出后面所接设备的所有分区的内容。如只有fdisk -l,系统会将整个系统能够找到的所有的分区全部列出来

fdisk /dev/hdc
后面会显示等待输入:输入m显示所有的命令介绍

  • 只要离开时按下q,所有的操作都不会生效!可以随便练习,最后按下q即可
  • 按下w,那么操作生效

5.3.2 格式化:mkfs

mkfs [-t 文件系统格式] 设备文件名
参数:
-t : 可以接文件系统格式,例如ext3,ext2等
eg.
mkfs -t ext3 /dev/hdc6

5.3.3 检验:fsck,badblocks

  • fsck(莫名的死机可能导致文件系统错乱,可以使用fsck进行分析)
fsck [-t 文件系统] [-参数] 设备名称
参数:
-a : 自动修复检查到有异常的扇区
...
  • badblocks
badblocks [-svw] 设备名称
参数:
-s : 在屏幕上列出进度
-w : 使用写入的方式来测试
-v : 可以在屏幕上看到进度

5.3.4 卸载与挂载

将文件系统挂载到Linux系统上,使用mount命令,卸载使用umount命令

6.文件与文件系统的压缩和打包

7.vim编辑器

7.1 vim的使用

vim分为三种模式

  • 一般模式
    默认的模式。可以移动光标,删除字符或整行(按下dd删除整行)。
  • 编辑模式
    可以编辑文件的内容
  • 命令模式
    可以输出各种命令

一般模式->编辑模式:输入i,o,a,r中的任意一个

一般模式->命令模式:输入:,/,?中的任意一个

编辑模式或者命令模式->一般模式:按下Esc

三种模式的按键:

  • 一般模式

    • dd删除光标所在的整行
    • yy复制光标所在的那一行
    • v选择字符
    • V整行选择字符
  • 编辑模式

    • 进入编辑模式按i,a,o,r中的一个
    • 退出按Esc
  • 命令模式

    • :w保存文件
    • :wq保存文件并退出
    • :w!强制保存文件
    • :w [filename]将文件数据存为另外一个文件

以上是关于鸟哥linux摘要-Linux复习必备(Linux命令)的主要内容,如果未能解决你的问题,请参考以下文章

如何学习linux?买了鸟哥的linux私房菜和服务器架设,一边看书一边实践,已经看了三遍了

Linux培训内容都有哪些

Linux运维工程师必备的十个技能点

鸟哥的linux私房菜 哪些内容要看

求鸟哥的linux私房菜全部视频教程 百度网盘资源

求鸟哥的linux视频教程,最好百度云,,