天天看点

Linux入门学习笔记-上

GUI 图形方面的shell ------〉windows 、mac os

CLI 命令行方面的shell -----〉比图形强大

*提示符*

# root用户 (最高权限)

$ 普通用户

命令一般由 (选项、命令、参数) 组成。

uname 显示系统的基本信息

-r 内核版本号

-a 显示所有信息==(--all)

*命令后面加上 &将这个命令放到后台运行。*

使用Tab键来自动补全命令(注意:无法自动补全参数,)

按2下Tab显示所有命令

通过history可查看输入过的全部命令。

!!重复前一个命令(用上也可以。还方便)

!字符 重复前一个以“字符”开头的命令

!num 按照历史记录的序号执行命令

!?abc重复之前包含abc的命令

!-n重复n歌命令之前的那个命令

通过Ctrl+r来在历史记录中搜素命令(reverse-i-search)“:

重新调用前一个命令中的参数Esc.(按完Esc键之后按.)

*命令行通配符*

*匹配零个或多个

?匹配任意一个字符

[0-9]匹配一个数字范围

[abc]匹配列表里任何字符

[Λabc]匹配列表以外的字符

*切换用户*

su - 切换到root用户(切换终端)

sudo 使用管理员权限运行命令

显示当前用户信息

id

修改当前用户密码

passwd username

首先输入当前密码

然后输入的是新密码

*添加用户*

1-首先切换到root模式下输入:sudo adduser 用户名

2-进入这个用户查看其所属组:groups loutest(结果表示:其中冒号之前表示 用户,后面表示该用户所属的用户组)

3-使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限(在 centos上可能会出现usermod: group \'sudo\' does not exist

因为centos默认没有sudo组,可以将你的用户指向wheel用户组, wheel用户组同样有sudo权限所以在centos上可以使用如下命令添加用户组

sudo usermod -a -G wheel userName

*

**管理后台作业*

jobs 查看当前在后台运行的作业

可使用ctrl+c终止 或者 使用ctrl+z暂停

bg 编号 控制进程继续在后台运行

fg 编号 继续在前台运行

*Linux文件系统基本结构*

1、Linux文件系统结构

1)、Linux文件系统为一个倒转的单根树状结构

2)、*文件系统的根为“/"*,在安装操作系统时划分为2个区,一个交换分区,作为虚拟内存;一个是根目录,liunx中所以的文件、文件系统都是存在根目录下面。

![img](file:///C:\Users\admin\AppData\Local\Temp\ksohtml1812\wps1.jpg)

3)、linux文件系统严格区分大小写,大小写敏感

4)、路径使用”/"分割,(windows中使用“\”)

2、当前工作目录

1)、每一个shell或系统进程都有一个当前的工作目录:~显示当前所在目录。

2)*使用pwd命令可以显示当前的工作目录*

3、文件名称

1)、文件的名称大小写敏感

2)名称最多可以使用255个字符

3)除了正斜线外都是有效字符

4)*通过touch命令可以创建一个空白文件或者更新已**存在文件**的**修改**时间*

5)*以“."开头的文件为隐藏文件*

4、列出目录内容:ls命令用了列出目录内容

1)ls -a :显示所有文件(包括隐藏文件):隐藏文件绝大多是都是配置文件,不要去动这些文件。

2)ls -l:显示详细信息

3)ls -R:递归显示子目录结构

4)ls -ld + 目录 显示目录和链接信息

5、查看文件类型:file

file + 目标文件

6、绝对路径于相对路径

1)绝对路径:以”/”开头,递归每级目录直到目标的路径。不受当前所在工作目录限制

2)相对路径:以当前目录为起点,到达目标的路径。受当前所在目录限制

3)cd用来切换目录:cd .切换到当前目录,cd ..切换到上一级目录,cd ~切换到家目录, cd -上一个工作目录。cd回到家目录。

*文件管理操作*

复制文件:cp (-r/-v/-rv) 源文件 目标文件

“-r” 可以复制文件夹

“-v”显示复制的详细信息,显示复制的过程

移动文件:mv 源文件 目标目录/重命文件名

删除 文件: rm 目标文件

-i(交互式-有提示)

-r(递归的删除包括目录中的所有内容)

-f(强制删除-没有交互式警告提示)

创建目录:mkdir

删除目录 rmdir (不能删除非空文件夹)

*Linux系统目录架构*

bin 含常用可执行二进制文件,即命令;

boot 含系统引导、启动文件、vmlinux内核文件;

dev 硬件设备文件;

etc 几乎所有系统相关配置文件;

home 家目录;

root root用户家目录;

lib 所有库文件;

media 实时挂载目录;

mnt 一般挂载目录;

opt 一般用于装大型软件;

proc 系统的一些实时信息,是虚拟文件夹,存在内存中;

sbin 只有root用户才能运行的命令;

sys 系统底层硬件的信息;

tmp 临时目录;

usr 用于装应用软件;

var 经常变化的信息,如log;

*Linux系统常用命令*

一,日期和时间

1,date 查看和设置系统的日期和时间

2,-u,来查看UTC时间

3,date +%y--%m--%d 其中“--”可以自定义更 改,这是更改时间的显示格式

4,date -s 设置时间,这个需要切到root用户才能有权限更改

5,date查看的是操作系统的时间,他是从硬件的时间中来的,可以直接用clock(hwclock)来查看

6,cal来打印日历

7,uptime,用来查看系统运行了多久,系统的用户,系统的负载

注:可以用 man uptime来查看对uptime的解释

二,输出,查看命令

1,echo:显示输入的内容,你输的啥就给你输出啥(格式:echo “内容”)

2,cat:来显示文件的内容,它直接显示出所有的文件内容,很不人性化,麻烦

3,为了方便查看,避免cat的不便,可以用已下几个命令

4,more:用于翻页显示内容,但是不能向前翻页

5,less:相对于more 可以上下来回翻页

6,head:显示文件的头几行(默认10行)

-n:来指定显示开头的n行

7,tail:显示末尾的几行(默认10行)

-n:来指定显示末尾的n行

-f:追踪显示文件的更新,当我们用-f指令后,命令 行就会卡在这里,等待文件更新再显示出新内容。一般用于查看日志,持续显示新加入的内容

三,查看硬件信息

1,lspci 用于查看PCI设备(如声卡网卡等)

-v查看详细信息

这几条命令相当与Windows中点属性点设备管理器一样

2,lsusb 查看USB设备,如摄像头等

-v也是显示详细信息

3,lsmod 查看当前加载的所有模块(模块即windows中相当于驱动)

四,关机重启

格式:shutdown【关机/重启】时间

立即关机:shutdown -h now=poweroff

立即重启:shutdown -r now=reboot

n分钟后关机:shutdown -h +n

定时关机:shutdown -h xx:xx

五,归档和压缩

1,zip用以压缩:zip xxx.zip file (把file这个源文件压缩成xxx.zip是目标文件)

2,unzip xxx.zip 是解压文件

3,gzip:也是一种压缩方式

4,tar:一个归档命令,就是把许多文件打包成一个文件

-cvf 名字.tar liunxfile :把Linuxfile这个文件夹中的文件打包归档成一个输出 .tar格式的文件,可以用来备份,但是他没有压缩哦

-cvf out.tar 把一个归档的tar文件释放到当前文件下

-cvzf: 在cvf命令下多了个z命令,就是归档并压缩一个文件。这里调用了一次gzip命令

格式:tar -cvzf xxx.tar.gz/要保存的目录下

其实用的最多的还是归档并压缩命令

六,查找命令

在我们的操作系统中寻找文件

1,lacate 关键字 快速查找

它需要预先建立数据库,比如你新建立了一个文件,然后用locate去查找这个命令,是找不到的。这个时候你可以用“updatedb"命令先更新数据库,然后在查找。

2,find 支持很多查找条件,所以叫高级查找

格式:find 查找位置 查找参数

find .-name linuxcast "."表示在当前文件夹

xxx表示关键字这句话表示在当前文件夹下所有包含“Linuxcast”关键字的文件

find /-name *.conf 在/根分区下查找所有.conf结尾的文件

find /-perm 777查找硬盘中所有权限是777的文件

find /-type d 查找目录类型文件。d是目录,也可以跟l ,表示查找所有的连接

find .-name "a *"-exec ls -l {};

这句话表示查找所有以“a开头的文件,然后传送给“ls -s"这个命令去执行;其中{} ;是固定格式。-exec也是固定格式,执行的意思;

find的后缀参数还有很多,可以直接在网络查找或者help文件

*Vi文本编辑器*

vi 命令行下面的文本编辑工具

vim是vi的增强版本

命令vim可以启动vim编辑器

一般可以通过vim+目标文件路径的形式使用vim

如果目标文件存在,则vim打开该文件

若目标文件不存在,则新建该文件

vi拥有三种模式:命令模式、插入模式和ex模式

任何模式都可以通过esc键回到命令模式

在命令模式中按”i“键可以进入到插入模式,在插入模式中按esc可以返回命令模式

在命令模式中按”:“可以进入ex模式,在ex模式中可以保存、修改和退出

命令模式常用的命令如下:

i 在光标前插入文本

o 在当前行的下面插入新行

dd 删除正行

u 撤销上一个操作

yy 复制当前行

n+yy 先按5,接着按yy,则是将5行内容复制

p 粘贴

r 替换当前关键字

/ 查找关键字

EX模式

:w 保存当前修改

:q 退出

:q! 强制退出

:x 保存并退出

:setr number 显示行号

:! 执行一个系统命令并显示结果

:sh 切换到命令行,使用ctrl+d切换回vim

*磁盘基本概念*

/dev/sda,/dev/sda1, /dev/sda2: 第一块硬盘的第一、第二分区(sd表示SATA接口第一个表示硬盘,后面两个表示分区)

分区不是硬盘的物理功能,而是软件功能。

主流分区:

MBR:Master Boot Record,主引导记录,传统分区机制,应用于绝大多数使用BIOS的PC设备,苹果电脑就不使用BIOS。

* 支持32bit和64bit系统

* MBR支持分区数量有限

* MBR只支持不超过2T的硬盘,超过2T的硬盘将只能使用2T空间(有第三方解决方法)

* MBR结构,占了硬盘头512个字节, 前446字节是引导代码,后16字节 x 4 = 4个分区表,最后二个字节一定是55, AA。

最多4个主分区,可以包含3个主分区 + 一个扩展分区,然后在扩展分区上面创建逻辑分区(IDE最多63个逻辑分区,SCSI最多创建15个分区)。

GPT:GUID Paration Table是一个较新的分区机制,解决了MBR很多缺点。

* 支持超过2T的硬盘

* 向后兼容MBR

* 必须在支持 UEFI 的硬件上才能使用,UEFI 是由Intel提出的取代 BIOS 的新一代硬件引导系统。

* 必须使用64bit系统

* Mac、Linux系统都能支持GPT分区格式

* Windows7 64bit、windows Server 2008 64bit支持GPT

fdisk :分区工具 来自IBM的老牌分区工具,支持绝大多数操作系统。fdisk是基于MBR的分区,所以如果需要使用GPT,则无法使用fdisk进行分区。

fdisk 命令只有具有超级用户的权限才能够运行

使用fdsik -l可以列出所有安装的磁盘及其分区信息

容量大小 = 磁头大小 * 磁头数量 *扇区数量 *柱面数量

使用fdisk /dev/sda(目标硬盘) 可以对目录磁盘进行分区操作

进入fdisk交互窗口【m 查看帮助说明】:

a toggle a bootable flag 切换可以开机

b edit bsd disklabel BSD磁盘标签编辑

c toggle the dos compatibility flag 切换到拒绝兼容标志

d delete a partition 删除分区

l list known partition types 列出已知的分区类型

m print this menu 打印此菜单

n add a new partition 添加新的分区

{

e extended (扩展分区)

p primary partition(1-4) 主分区

创建步骤如下:

1.选着分区类型

2.选着分区号

3.选着起始分区柱面

4.选着末分区柱面(柱面难算可使用 +大小和单位大写,eg: +2G)

创建主分区和拓展分区后会出现 l logical(5 or over) 创建逻辑分区

}

o create a new empty DOS partition table 创建一个新的空分区表

p print the partition table 打印分区表

q quit without saving changes 退出不保存更改

s create a new empty Sun disklabel

t change a partition\'s system id 修改分区ID

u change display/entry units

v verify the partition table

w write table to disk and exit 写入磁盘并退出

x extra functionality (experts only)

l logical (5 or over)

p primary partition (1-4)

Partition number (1-4): 2

First cylinder (263-2610, default 263):

Using default value 263

Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610):

为方便系统识别需要修改ID(system id)linux系统默认为83

可以选择L查看ID对应类型,输入类型后回车

目前操作还未写入硬盘,需要执行 write table to disk and exit进行保存退出

若内核未重新读取分区表,可使用partprobe更新内核分区表

*文件系统*

操作系统通过文件系统管理文件及数据,磁盘或分区需要创建文件系统之后才能够让操作系统使用,创建文件系统的过程又称之为格式化。

没有文件系统的设备又称之为裸(RAW)设备

常见的文件系统有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等等

cent os 6默认的是ext4

cent os 5默认的是ext3

文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等

Linux支持的文件系统:ext2、ext3、ext4、fat、vfat、nfs、iso9660、proc、gfs、jfs

mke2fs 用来创建文件系统

mke2fs -t ext4 /dev/sda3 创建一个文件系统

-b 指定文件系统块大小

-c 建立文件系统时检查坏损块

-L 指定卷标

-j 建立日志文件系统

mkfs也可以用来创建文件系统,相对于mke2fs比较简单,但是无法进行精细化的控制

dumpe2fs 可以用来查看分区的文件系统信息,一般用来进行计算机性能调整

dumpe2fs /dev/sda1

带日志的文件系统拥有较强的稳定性,在出现错误时可以进行恢复

带日志的文件系统哦会使用一个叫做”两阶段提交“的方式进行磁盘操作

文件系统将准备执行的食物的具体内容写入日志

文件系统进行操作

操作成功后,将事物的具体内容从日志中删除

这样做会丧失一些性能

e2label 该命令可以用来问文件系统家标签

e2label /dev/sdb1 显示sda2的系统标签

e2label /dev/sdb1 LINUX 将sda2的标签设置为LINUX

fsck 检查并修复损坏的文件系统

fsck /dev/sda2

使用参数-y 参数不提示而直接进行修复

若文件系统损坏比较严重,请使用-t参数指定文件系统类型

对于未识别的文件,则会放在lost+found目录中

系统每次启动都会对磁盘进行fsck操作

*挂载操作*

磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用

Windows或Mac系统会自动挂载,但是Linux需要手工挂载

通过mount命令将格式化好的磁盘或分区挂载到一个目录上

mount /dev/sda3 [要挂载的分区] /mnt[需要挂载的地方]

使用不带任何参数的mount来显示已经挂载好的文件系统

-t 指定文件系统的类型

-o 指定挂载项

ro,rw 以只读或读写形式挂载,默认是rw

sync 代表不适用缓存,而是对所有操作直接写入磁盘

async 代表使用缓存,默认是async

noatime 代表每次访问文件时不需要更新文件的访问时间

remount 重新加载文件

umount用来卸载已经挂载的文件

umount 文件系统/挂载点

umount /dev/sda3

如果出现device is busy,则表示该文件系统正在被使用,无法卸载,可以使用下面的命令查看是谁在使用:

fuser -m /mut

也可以使用命令lsof查看正在被使用的文件

lsof /mnt

配置文件/etc/fstab 用来定义需要自动挂载的文件系统,fstab中每一行代表一个挂载配置

配置格式

/dev/sda3[需要挂载的设备] /mnt[挂载点] ext4[文件系统] defaults[挂载选项] 0 0 [dump、fsck相关选项]

要挂载的设备LABEL=LINUXCAST取代/dev/sda3

mount -a 命令会挂fstab中定义的自动挂载项