鸟哥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 = 7group = 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命令)的主要内容,如果未能解决你的问题,请参考以下文章