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:UsersadminAppDataLocalTempksohtml1812wps1.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中定义的自动挂载项