linux lessson

图形界面模式——>命令行模式
Ctrl+Alt+F7(CentOS)设置虚拟控制台,Ctrl+Alt+F2进入。
进入命令行模式
setterm -backgroup color——>设置相应背景颜色
setterm -foregroup color——>设置字体颜色
setterm -inversescreen on——>交换背景色和字体色
命令行模式——>图形界面模式
systemctl set-default graphical.target

systemctl set-default multi-user.target由图形界面模式更改为命令行模式
更改后验证是否正确 shutdown -r now 


Shift+Ctrl+N——>在新的Terminal窗口中启动一个新的shell会话
Shift+Ctrl+T——>在现有的Terminal窗口的新标签中启动一个新的shell会话
Shift+Ctrl+W——>关闭当前标签中的会话
Shift+Ctrl+Q——>关闭当前的Terminal会话
Shift+Ctrl+C——>复制
Shift+Ctrl+V——>粘贴
Ctrl + +——>放大字体
Ctrl + -——>减小字体
Ctrl + 0——>恢复默认字体


用U盘装linux系统出现error
按e
将linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x\86_64 quiet
改为linuxfi /images/pxeboot/vmlinuz initrd=initrd.img linux dd quiet
按Ctrl+X重启
找到镜像文件是存在于哪里例如是sda4
重启
将linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS\x207\x20x\86_64 quiet
改为linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:/dev/sda4 quiet
再重启。

让一个程序可以拥有执行的权限, 但你又不知道该文件原本
的权限为何,此时,利用“chmod a+x filename” ,就可以让该程序拥有执行的权限了。


who——看目前有谁在线
netstat -a——网络连接状态
ps -aux——查看背景执行的程序
sync——同步数据(万一你的系统因为某些特殊情况造成不正常关机
(例如停电或者是不小心踢到power)时,由于数据尚未被写入硬盘当中,哇!所以就会造成
数据的更新不正常啦! 那要怎么办呢?这个时候就需要sync这个指令来进行数据的写入动作
啦! 直接在命令行下输入sync,那么在内存中尚未被更新的数据,就会被写入硬盘中!所
以,这个指令在系统关机或重新开机之前, 很重要喔!最好多执行几次!)


安装硬盘分区:
资料
/home(centos-home)——5120MB
系统
BIOS Boot(vda1)——2048KB
/boot(vda2)——1024MB
/(centos-root)——10GB
swap(centos-swap)——1024MB

重启电脑——>进入"Troubleshooting"、“Run a memory test”
通过这个方式来操内存,
让内存一直保持在忙碌的状态,等待一天过去,可以说这部计算机硬件应该还算稳定。

在笔记本安装Linux时,因为笔记本电脑显卡常常是整合的,
安装Linux程序本身可能就不是很能够侦测到该显卡模块
开机时,按下【tab】按键后,加入下面这些选项:nofb apm=off acpi=off pci=noacpi
nofb:取消显卡上面的缓冲内存侦测
apm(Advantage Power Management):早期的电源管理模块
acpi(Advanced Configuration and Power Interface):近期的电源管理模块

[Ctrl] + [Alt] + [F2] ~ [F6] :命令行登陆 tty2 ~ tty6 终端机;
[Ctrl] + [Alt] + [F1] :图形接口桌面。

要将权限去掉而不更动其他已存在的权限呢?例如要拿掉全部人的可执行权
限  chmod a-x .bashrc

. :代表当前的目录,也可以使用 ./ 来表示;
.. :代表上一层目录,也可以 ../ 来代表。

有“ . ”为开头的为隐藏文件,需要使用 ls -a 这个 -a 的选项
才能显示出隐藏文件的内容,而使用 ls -al 才能显示出属性。

. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表“目前使用者身份”所在的主文件夹
~account 代表 account 这个使用者的主文件夹(account是个帐号名称)


[root@study ~]# pwd [-P]
选项与参数:
-P :显示出确实的路径,而非使用链接 (link) 路径。

[root@study ~]# mkdir [-mp] 目录名称
选项与参数:
-m :设置文件的权限喔!直接设置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上层目录)递回创建起来!


[root@study ~]# rmdir [-p] 目录名称
选项与参数:
-p :连同“上层”“空的”目录也一起删除

如果想要让root在任何目录均可执行/root下面的ls,那么就将/root加入PATH当中即可。
加入的方法很简单,就像下面这样:
[root@study ~]# PATH="${PATH}:/root"

[root@study ~]# ls [-aAdfFhilnrRSt] 文件名或目录名称..
[root@study ~]# ls [--color={never,auto,always}] 文件名或目录名称..
[root@study ~]# ls [--full-time] 文件名或目录名称..
选项与参数:
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
-A :全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-f :直接列出结果,而不进行排序 (ls 默认会以文件名排序!)
-F :根据文件、目录等信息,给予附加数据结构,例如:
*:代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件;
-h :将文件大小以人类较易读的方式(例如 GB, KB 等等)列出来;
-i :列出 inode 号码,inode 的意义下一章将会介绍;
-l :长数据串行出,包含文件的属性与权限等等数据;(常用)
-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!)
-r :将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;
-S :以文件大小大小排序,而不是用文件名排序;
-t :依时间排序,而不是用文件名。
--color=never :不要依据文件特性给予颜色显示;
--color=always :显示颜色
--color=auto :让系统自行依据设置来判断是否给予颜色
--full-time :以完整时间模式 (包含年、月、日、时、分) 输出
--time={atime,ctime} :输出 access 时间或改变权限属性时间 (ctime)
而非内容变更时间 (modification time)


[root@study ~]# basename /etc/sysconfig/network
network <== 很简单!就取得最后的文件名~
[root@study ~]# dirname /etc/sysconfig/network
/etc/sysconfig <== 取得的变成目录名了!

[root@study ~]# cat [-AbEnTv]
选项与参数:
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字符 $ 显示出来;
-n :打印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符

[root@study ~]# nl [-bnw] 文件
选项与参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在屏幕的最左方显示;
-n rn :行号在自己字段的最右方显示,且不加 0 ;
-n rz :行号在自己字段的最右方显示,且加 0 ;
-w :行号字段的占用的字符数。

more (一页一页翻动)
空白键 (space):代表向下翻一页;
Enter :代表向下翻“一行”;
/字串 :代表在这个显示的内容当中,向下搜寻“字串”这个关键字;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

less (一页一页翻动)
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻“字串”的功能;
?字串 :向上搜寻“字串”的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
g :前进到这个数据的第一行去;
G :前进到这个数据的最后一行去 (注意大小写);
q :离开 less 这个程序;

head (取出前面几行)
[root@study ~]# head [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思
[root@study ~]# head /etc/man_db.conf
# 默认的情况中,显示前面十行!若要显示前 20 行,就得要这样:
[root@study ~]# head -n 20 /etc/man_db.conf
范例:如果后面100行的数据都不打印,只打印/etc/man_db.conf的前面几行,该如何是好?
[root@study ~]# head -n -100 /etc/man_db.conf 列出前面31行,后面100行不会打印出来

tail (取出后面几行)
[root@study ~]# tail [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的文件名,要等到按下[ctrl]-c才会结束tail的侦测
[root@study ~]# tail /etc/man_db.conf
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@study ~]# tail -n 20 /etc/man_db.conf
范例一:如果不知道/etc/man_db.conf有几行,却只想列出100行以后的数据时?
[root@study ~]# tail -n +100 /etc/man_db.conf
范例二:持续侦测/var/log/messages的内容
[root@study ~]# tail -f /var/log/messages
<==要等到输入[crtl]-c之后才会离开tail这个指令的侦测!


[root@study ~]# od [-t TYPE] 文件
选项或参数:
-t :后面可以接各种“类型 (TYPE)”的输出,例如:
a :利用默认的字符来输出;
c :使用 ASCII 字符来输出
d[size] :利用十进制(decimal)来输出数据,每个整数占用 size Bytes ;
f[size] :利用浮点数值(floating)来输出数据,每个数占用 size Bytes ;
o[size] :利用八进位(octal)来输出数据,每个整数占用 size Bytes ;
x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size Bytes ;

[root@study ~]# touch [-acdmt] 文件
选项与参数:
-a :仅修订 access time;
-c :仅修改文件的时间,若该文件不存在则不创建新文件;
-d :后面可以接欲修订的日期而不用目前的日期,也可以使用 --date="日期或时间"
-m :仅修改 mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYYYMMDDhhmm]

文件默认权限:umask xxx

chattr (设置文件隐藏属性)
[root@study ~]# chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
+ :增加某一个特殊参数,其他原本存在参数则不动。
- :移除某一个特殊参数,其他原本存在参数则不动。
= :设置一定,且仅有后面接的参数
A :当设置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime 将不会被修改,
可避免 I/O 较慢的机器过度的存取磁盘。(目前建议使用文件系统挂载参数处理这个项目)
S :一般文件是非同步写入磁盘的(原理请参考[前一章sync](../Text/index.html#sync)的说明),如果加上 S 这个属性时,
当你进行任何文件的修改,该更动会“同步”写入磁盘中。
a :当设置 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root 才能设置这属性
c :这个属性设置之后,将会自动的将此文件“压缩”,在读取的时候将会自动解压缩,
但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)
d :当 dump 程序被执行的时候,设置 d 属性将可使该文件(或目录)不会被 dump 备份
i :这个 i 可就很厉害了!他可以让一个文件“不能被删除、改名、设置链接也无法写入或新增数据!”
对于系统安全性有相当大的助益!只有 root 能设置此属性
s :当文件设置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间,
所以如果误删了,完全无法救回来了喔!
u :与 s 相反的,当使用 u 来设置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中,
可以使用来救援该文件喔!
注意1:属性设置常见的是 a 与 i 的设置值,而且很多设置值必须要身为 root 才能设置
注意2:xfs 文件系统仅支持 AadiS 而已

lsattr (显示文件隐藏属性)
鸟哥的 Linux 私房菜:基础学习篇 第四版
6.4 文件与目录的默认权限与隐藏权限322
[root@study ~]# lsattr [-adR] 文件或目录
选项与参数:
-a :将隐藏文件的属性也秀出来;
-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
-R :连同子目录的数据也一并列出来!

观察文件类型:file
which (寻找“可执行文件”)
[root@study ~]# which [-a] command
选项或参数:
-a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称

whereis (由一些特定的目录中寻找文件文件名)
[root@study ~]# whereis [-bmsu] 文件或目录名
选项与参数:
-l :可以列出 whereis 会去查询的几个主要目录而已
-b :只找 binary 格式的文件
-m :只找在说明文档 manual 路径下的文件
-s :只找 source 来源文件
-u :搜寻不在上述三个项目当中的其他特殊文件

[root@study ~]# locate [-ir] keyword
选项与参数:
-i :忽略大小写的差异;
-c :不输出文件名,仅计算找到的文件数量
-l :仅输出几行的意思,例如输出五行则是 -l 5
-S :输出 locate 所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等
-r :后面可接正则表达式的显示方式

updatedb:根据 /etc/updatedb.conf 的设置去搜寻系统硬盘内的文件名,并更新
/var/lib/mlocate 内的数据库文件;
locate:依据 /var/lib/mlocate 内的数据库记载,找出使用者输入的关键字文件名。


df:列出文件系统的整体磁盘使用量;
du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
df
[root@study ~]# df [-ahikHTm] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i :不用磁盘容量,而以 inode 的数量来显示

选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;


要制作链接文件就必须要使用 ln 这个指令呢!
[root@study ~]# ln [-sf] 来源文件 目标文件
选项与参数:
-s :如果不加任何参数就进行链接,那就是hard link,至于 -s 就是symbolic link
-f :如果 目标文件 存在时,就主动的将目标文件直接移除后再创建!

lsblk 列出系统上的所有磁盘列表
lsblk 可以看成“ list block device ”的缩写,就是列出所有储存设备的意思!

[root@study ~]# lsblk [-dfimpt] [device]
选项与参数:
-d :仅列出磁盘本身,并不会列出该磁盘的分区数据
-f :同时列出该磁盘内的文件系统名称
-i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-m :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
-p :列出该设备的完整文件名!而不是仅列出最后的名字而已。
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等

blkid 列出设备的 UUID 等参数
UUID 是全域单一识别码
(universally unique identifier),Linux 会将系统内所有的设备都给予一个独一无二的识别
码, 这个识别码就可以拿来作为挂载或者是使用这个设备/文件系统之用了。
parted 列出磁盘的分区表类型与分区信息
MBR 分区表请使用 fdisk 分区, GPT 分区
表请使用 gdisk 分区

利用 du 与 df 来检查一下目前的参数~那个 du -sb 是计算整个 /tmp 下面有多少 Bytes 的容量啦!

,请注意,使用的“设备文件名”请不要加上数字,因为
partition 是针对“整个磁盘设备”而不是某个 partition 呢!
所以执行“ gdisk /dev/vda1 ” 就会发
生错误啦!要使用 gdisk /dev/vda 才对!


partprobe 更新 Linux 核心的分区表信息
[root@study ~]# partprobe [-s] # 你可以不要加 -s !那么屏幕不会出现讯息!
[root@study ~]# partprobe -s # 不过还是建议加上 -s 比较清晰!

我们常听到的“格式化”其实应该称为“创建文件系统 (make filesystem)”才对啦!所以使用的
指令是 mkfs 喔!那我们要创建的其实是 xfs 文件系统, 因此使用的是 mkfs.xfs 这个指令才


xfs_repair 处理 XFS 文件系统
当有 xfs 文件系统错乱才需要使用这个指令!所以,这个指令最好是不要用到啦!但有问题发
生时,这个指令却又很重要...
鸟哥的 Linux 私房菜:基础学习篇 第四版
7.3 磁盘的分区、格式化、检验与挂载387
[root@study ~]# xfs_repair [-fnd] 设备名称
选项与参数:
-f :后面的设备其实是个文件而不是实体设备
-n :单纯检查并不修改文件系统的任何数据 (检查而已)
-d :通常用在单人维护模式下面,针对根目录 (/) 进行检查与修复的动作!很危险!不要随便使用

fsck.ext4 处理 EXT4 文件系统
fsck 是个综合指令,如果是针对 ext4 的话,建议直接使用 fsck.ext4 来检测比较妥当!那
fsck.ext4 的选项有下面几个常见的项目:
鸟哥的 Linux 私房菜:基础学习篇 第四版
7.3 磁盘的分区、格式化、检验与挂载388
[root@study ~]# fsck.ext4 [-pf] [-b superblock] 设备名称
选项与参数:
-p :当文件系统在修复时,若有需要回复 y 的动作时,自动回复 y 来继续进行修复动作。
-f :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入
细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
-D :针对文件系统下的目录进行最优化配置。
-b :后面接 superblock 的位置!一般来说这个选项用不到。但是如果你的 superblock 因故损毁时,
通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。一般来说,superblock 备份在:
1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768

要将文件系统挂载到我们的 Linux 系统上,就要使用 mount 这个指令啦! 不过,这个指令
真的是博大精深~粉难啦!我们学简单一点啊~ ^_^
[root@study ~]# mount -a
[root@study ~]# mount [-l]
[root@study ~]# mount [-t 文件系统] LABEL='' 挂载点
[root@study ~]# mount [-t 文件系统] UUID='' 挂载点 # 鸟哥近期建议用这种方式喔!
[root@study ~]# mount [-t 文件系统] 设备文件名 挂载点
选项与参数:
-a :依照配置文件 [/etc/fstab](../Text/index.html#fstab) 的数据将所有未挂载的磁盘都挂载上来
-l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称!
-t :可以加上文件系统种类来指定欲挂载的类型。常见的 Linux 支持类型有:xfs, ext3, ext4,
reiserfs, vfat, iso9660(光盘格式), nfs, cifs, smbfs (后三种为网络文件系统类型)
-n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。
但在某些情况下(例如单人维护模式)为了避免问题会刻意不写入。此时就得要使用 -n 选项。
-o :后面可以接一些挂载时额外加上的参数!比方说帐号、密码、读写权限等:
async, sync: 此文件系统是否使用同步写入 (sync) 或非同步 (async) 的
内存机制,请参考[文件系统运行方式](../Text/index.html#harddisk-filerun)。默认为 async。
atime,noatime: 是否修订文件的读取时间(atime)。为了性能,某些时刻可使用 noatime
ro, rw: 挂载文件系统成为只读(ro) 或可读写(rw)
auto, noauto: 允许此 filesystem 被以 mount -a 自动挂载(auto)
dev, nodev: 是否允许此 filesystem 上,可创建设备文件? dev 为可允许
suid, nosuid: 是否允许此 filesystem 含有 suid/sgid 的文件格式?
exec, noexec: 是否允许此 filesystem 上拥有可执行 binary 文件?
user, nouser: 是否允许此 filesystem 让任何使用者执行 mount ?一般来说,
mount 仅有 root 可以进行,但下达 user 参数,则可让
一般 user 也能够对此 partition 进行 mount 。
defaults: 默认值为:rw, suid, dev, exec, auto, nouser, and async
remount: 重新挂载,这在系统出错,或重新更新参数时,很有用!

/etc/filesystems:系统指定的测试挂载文件系统类型的优先顺序;
/proc/filesystems:Linux系统已经载入的文件系统类型。
鸟哥的 Linux 私房菜:基础学习篇 第四版
7.3 磁盘的分区、格式化、检验与挂载390
那我怎么知道我的 Linux 有没有相关文件系统类型的驱动程序呢?我们 Linux 支持的文件系统
之驱动程序都写在如下的目录中:
/lib/modules/$(uname -r)/kernel/fs/
例如 ext4 的驱动程序就写在“/lib/modules/$(uname -r)/kernel/fs/ext4/”这个目录下啦!

猜你喜欢

转载自blog.csdn.net/qq_43011640/article/details/85289518