linux命令复习(一)

linux 系统的命令:
ls列出当前目录下的所有文件,文件夹。
-a 显示所有文件
-l 显示详细信息
-R 显示递归子目录结构
-ld 显示目录和链接信息
file 文件查看当前文件的类型

uname显示当前系统的名称
-a 所有信息
-r 版本
tag键就可以简化命令的输入:
1)自动补全命令
2)自动补全文件名
查看输入命令的历史记录:
使用上下按键查看之前的命令
使用history命令查看历史记录

!!重复前一个命令
!字符  执行重复前一个 已字符开头的命令
!-n   重复n个命令之前的命令

ctrol+r 搜索之前的命令
按esc之后按.键 重新调用前一个命令中的参数

命令行通配符
*匹配零个或多个
?匹配任意一个字符
[0-9]匹配任意一个数字范围
[abc]匹配列表里任何字符
[^abc]匹配列表以外字符

su - 切换到root用户
sudo 普通用户使用管理员用户身份运行命令
id 显示当前用户信息
passwd 修改当前用户密码


linux文件系统的结构
linux 文件系统为一个倒转的单根树状结构
文件系统的根为“/”
文件系统严格区分大小写
路径使用“/”分割,(windows中使用“\”)

当前工作目录
每一个shell或系统进程都有一个当前工作目录
使用pwd命令显示当前的工作目录

文件名称
文件的名称大小写敏感
名称最多可以为255个字符
除了正斜线外,都是有效字符
通过touch命令可以创建一个空白文件或者更新已有文件的时间
以“.”开头的文件为隐藏文件

绝对路径与相对路径
绝对路径 :以“/”开头,地柜每级目录直到目标的路径。不受当前所在
工作目录限制
相对路径:以当前目录为起点,达到目标的路径。受当前所在目录限制。

cd命令可以用来切换目录
上一级 ".."
当前目录“.”
用户家目录“~”
上一个工作目录“-”

复制文件、目录
使用cp命令复制文件或目录
cp 源文件(文件夹)目标文件(文件夹)
-r 递归复制整个目录
-v 显示详细信息

归档,压缩
命令zip用以压缩文件
zip linux.zip linux_cmd
命令unzip用以解压缩文件
unzip linux.zip
命令gzip用以压缩文件
gzip linux.net
命令tar用以归档文件(打包命令不是压缩命令。把一些文件打包成一个文件)
tar -cvf out.tar linuxcast  
tar -xvf linux.tar
tar -cvzf backup.tar.gz /etc
-z参数将归档后的文件进行gzip压缩减少大小

查找
命令locate用以快速查找文件、文件夹
locate keword
此命令需要预先建立数据库,数据库默认每天更新一次,可用update命令手工建立,更新数据库

命令find用以高级查找文件,文件夹
find 查找位置 查找参数
如:
find . -name *linuxcast
find / -name *.conf
find / -perm 111
find / -type d
find / -name “a*” -exec ls -l{} \;
-name
-perm
-user
-group

vi、vim文本编辑器
vi是一个命令行下的文本编辑工具、支持绝大多数操作系统,并且功能已经十分强大。
linux中知名的文本编辑器还有emacs,他得功能比vim还要强大。
vim
绝大多数linux系统上均装有vim,vim比vi得功能更为强大,所以建议大家使用vim而非
vi,两者使用方法相同。

命令vim可以启动vim编辑器
一般我们通过vim + 目标文件路径的形式使用vim
如果目标文件存在,则在vim文件打开文件
如果目标文件不存在,则vim新建并打开文件

vim拥有三种模式:
命令模式(常规模式)
vim启动后,默认进入命令模式,任何模式都可以通过esc键回到命令模式(可以多按几次)。
命令模式下可以通过键入不同的命令完成选择、复制、粘贴、撤销等等操作。
插入模式
在命令模式中按“i”键,即可进入插入模式,在插入模式可以输入编辑文本的内容,使用esc键可以返回命令模式。
ex模式
在命令模式中按“:”键可以进入ex模式,光标会移动到底部,在这里可以保存修改或退出vim。

命令模式常用的命令如下:
i 在光标前插入文本
o 在当前行的下面一行插入新行
dd 删除整行
yy 将当前行的内容放入缓冲区(复制当前行)
n+yy 将n行的内容放入缓冲区(复制n行)
p 将缓冲区中得文本放入光标后(粘贴)
u 撤销上一个操作
r 替换当前字符
ex模式下常用的命令如下:
:w 保存当前修改
:q 退出
:q! 强制退出,不保存当前修改
:x 保存并退出,相当于:wq
:set number显示行号
:!系统命令 执行一个系统命令并显示结果
:sh 切换到命令行,使用ctrl+d切换会vim

磁盘基本概念
cylinder(柱面)
sector(扇区)
head(磁头)

磁盘在LINUX中得表示
Linux所有设备都被抽象为一个文件,保存在/dev目录下。
设备名称一般为hd[a-z]或sd[a-z]([a-z]为分区号),如hda,hdb,sda,sdb
IDE设备的名称未hd[a-z],SATA、SCSI、SAS、USB等设备的名称为sd[a-z]

分区概念
将一个磁盘逻辑的分为几个区,每个区当做独立磁盘,以方便使用管理。
不同分区用:设备名称+分区号 方式表示,sda1 、sda2。
主流的分区机制分为MBR和GPT两种。
MBR
MBR(Master Boot Record)是传统的分区机制,应用于绝大多数使用BIOS的PC
设备。
MBR支持32bit和64bit系统
MBR支持分区数量有限
MBR只支持不超过2T的硬盘,超过2T的硬盘将之恩给你使用2T空间(有第三方解决方法)
MBR结构
前416引导代码部分,接下来4个16字节是分区表,剩下的两个字节启动标识
(55hAAh)
MBR分区
主分区
最多只能创建4个主分区
扩展分区
一个扩展分区会占用一个主分区位置
逻辑分区
linux最多支持63个IDE分区和15个SCSI分区


GPT(GUID Partition Table)是一个较新的分区机制,解决了MBR得很多缺点。
*支持超过2T的硬盘
*向后兼容MBR
*必选使用64bit系统
*Mac、Linux系统都能支持GPT分区格式
Windows7 64bit、windowsServer2008 64bit支持GPT

FDISK分区工具
fdisk是来自IBM的老牌分区工具,支持绝大多数操作系统,几乎所有的Linux
的发行版本都装fdisk,包括在Linux的rescue模式下的依然能够使用。

fdisk是一个基于MBR的分区工具,所以如果需要使用GPT,则无法使用fdisk进行
分区。

fdisk命令只有具有超级用户权限才能够运行
使用fdisk -I可以列出所有安装的磁盘进行其分区信息
使用fdisk/dev/sda可以对目标磁盘进行分区操作
分区之后需要使用partprobe命令让内核更新分区信息,否则需要重启才能识别
新的分区
/proc/partitions文件也可用来查看分区信息。

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

*没有文件系统的设备又称之为裸设备。
*常见的文件系统有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等
*文件系统之间的区别:日志、支持的分区大小、支持的单个文件大小、性能等。
windows下的主流文件系统是:NTFS
Linux下的主流文件系统是:Ext3、Ext4。

MKE2FS
命令mke2fs用来创建文件系统
mke2fs -t ext4/dev/sda3

常用的参数:
-b blocksize 指定文件系统块大小。
-c 建立文件系统时检查坏损块
-L label 指定卷标
-j 建立文件系统日志

命令mkfs也可用于创建文件系统,相较于mke2fs简单,但是支持的参数较少,不能进行
精细化的控制。
*mkfs.ext3 /dev/sda3

命令dumpe2fs可以用来查看分区的文件系统信息
dumpe2fs /dev/sda2

JOURNAL日志
带日志的文件系统(ext3、ext4)拥有较强的稳定性,在出现错误时可以进行恢复。
使用带日志的文件系统,文件系统会使用一个叫做“两阶段提交”的方式进行磁盘操作,
当进行磁盘操作时,文件系统进行一下操作:
(1)文件系统将准备进行的事务的具体内容写入日志
(2)文件系统进行操作
(3)操作成功后,将事物的具体内容从日志中删除
这样做的好处是,当事物执行的时候如果出现意外(如断电或磁盘故障)
可以通过查询日志进行恢复操作。缺点是回丧失一定的性能(额外的日志读写操作)。

命令e2label可以用来为文件系统添加标签
e2label /dev/sda2 显示sda2的系统标签
e2label /dev/sda2 LINUXCASAT将sda2的系统标签设置为LINUXCAST

命令fsck用来检查并修复损坏的文件系统
fsck /dev/sda2
*使用-y参数不提示而直接进行修复。
*默认fsck会自动判断文件系统类型,如果文件系统损坏较为严重,请使用
—t参数指定文件系统类型
*对于识别未文件的损坏数据(文件系统无记录),fsck会将该文件放入
lost+found目录
系统启动时会将磁盘进行fsck操作。

挂在操作
磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用。
windows或Mac系统会自动挂载,一旦创建号文件系统后回自动挂在到系统上,
windows上称之为C盘,D盘等。
linux需要手工进行挂载操作或配置系统进行自动挂载。

mount命令
在linux系统中,我们通过mount命令将格式化好的磁盘或分区挂载到一个
目录上。
mount /dev/sda3a(要挂载的分区) /mnt(挂载点)
常用参数:
不带参数的mount命令会显示所有已挂载的文件系统
-t 指定文件系统的类型
-o 指定挂载选项
ro,rw以只读或读写形式挂载,默认是rw
sync 代表不使用缓存,而是对所有操作直接写入磁盘。
async 代表使用缓存,默认是async
noatime 代表每次访问文件时不更新文件的访问时间
atime 代表每次访问文件时更新文件的访问时间
remount 重新挂载文件系统。

命令umount用来卸载已挂载的文件系统,相当于windows中的弹出
umount 文件系统/挂载点
umount/dev/sda3 == umount/mnt
如果出现device is busy 报错,则表示该文件系统正在被使用,无法卸载,
可以使用以下命令查看使用文件系统的进程:
fuser -m /mnt
也可使用命令lsof查看正在被使用的文件:
lsof /mnt

自动挂载
配置文件/etc/fstab用来定义需要自动挂载的文件系统
fstab中每一行挂载配置,格式如下:
*要挂载的设备也可以使用LABEL进行识别,使用LABEL=LINUXCAST取代/dev/sda3
*mount -a命令会挂载所有fstab中定义的自动挂载项。

获取帮助
linux提供了极为详细的帮助工具及文档,几乎所有命令都可以使用-h
或--help参数获取使用方法、参数信息等。

man命令式Linux中最为常用的帮助命令,将要获取帮助的命令作为参数
运行man命令就可以获取相应的文档帮助。
man -k 关键字用来查询包含该关键字的文档。

info 与man类似,但是提供的信息更为详细深入,以类似网页的形式显示。
man 与info都可以通过“/+关键字”方式进行搜索。

用户、组
当我们使用Linux时,需要以一个用户的身份登入,一个进程也需要以一个用户的身份
运行,用户限制使用者或进程可以使用、不可以使用哪些资源。
组用来方便组织管理用户
*每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名
*每个用户属于一个主组,属于一个活多个附属组
*每个组拥有一个GroupID
*每个进程以一个用于身份运行,并受该用户可访问的资源限制
*每个可登录用户拥有一个指定的shell

用户ID为32位,从0开始,但是为了和老式系统兼容,用户ID限制在60000以下。
用户分为以下三种:
-root用户(ID为0的用户为root用户)
-系统用户(1-499)
-普通用户(500以上)
系统中的文件都有一个所属用户及所属组
使用id命令可以显示当前用户的信息
使用passwd命令可以修改当前用户密码

相关文件
/etc/passwd 保存用户信息
/etc/shadow 保存用户密码(加密的)
/etc/group 保存组信息

查看登录的用户
命令whoami显示当前用户
命令who显示有哪些用户已经登录系统
命令w显示有哪些用户已经登录并且在干什么

创建一个用户
命令Useradd用以创建一个新用户
useradd nash_su
这个命令会执行以下操作:
1,在/etc/passwd中添加用户信息
2,如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中
3,为用户建议一个新的家目录/home/nash_su
4,将/etc/skel中得文件复制到用户的家目录中。
5,建立一个与用户用户名相同的组,新建用户默认属于这个同名组
命令useradd支持以下参数:
-d 家目录
-s 登录shell
-u userid
-g 主组
-G 附属组
也可以通过直接修改/etc/passwd的方式实现,但是不建议

修改用户信息
命令usermod用来修改用户信息
usermod 参数 username
命令usermod支持以下参数:
-l 新用户名
-u 新userid
-d 用户家目录位置
-g 用户所属主组
-G 用户所属附属组
-L 锁定用户使其不能登录
-U 解除锁定

删除用户
命令userdel用以删除指定用户
userdel nash_su(保留用户的家目录)
userdel -r nash_su(同时删除用户的家目录)


几乎所有操作系统都有组的概念,通过组,我们可以更加方便的归类、管理用户。
一般来讲,我们使用部门、职能或地理区域的分类方式来创建使用组。
每个组都有一个组ID
组信息保存在/etc/group中
每个用户拥有一个主组,同时还可以拥有最多31个附属组

创建、修改、删除组
命令groupadd用以创建组:
groupadd linuxcast
命令groupmod用以修改组信息:
groupmod -n newname oldname 修改组名
groupmod -g newGid oldGid 修改组ID
命令groupdel用以删除组:
groupdel linuxcast

权限
权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。
系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制
来限制哪些用户、哪些组可以对特定文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户
的权限大,该进程拥有的权限就大。

文件权限
Linux中,每个文件拥有三种权限以下三种权限
权限          对文件的影响         对目录的影响
r(读取)       可读取文件的内容     可列出目录内容
w(写入)       可修改文件内容       可在目录中创建删除文件
x(执行)       可以作为命令执行     可访问目录内容
目录必须拥有x权限,否则无法查看内容

UGO
Linux权限基于UGO模型进行控制:
U代表User,G代表Group,O代表Other
每一个文件的权限基于UGO进行设置
权限三个一组(rwx),对应UGO分别设置
每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组
的使用O权限
命令ls -l 可以查看当前目录下文件的详细信息:

-rw-r--r--@ 1 mjc  staff  15166  1 15 19:33 linux_cmd.txt

-rw-r--r--  UGO 

1         链接数量
mjc       U:所属用户
staff     G:所属组
15166     大小
1 15 19:33 时间
linux_cmd.txt 文件名

修改文件所属用户、组
命令chown用以改变文件的所属用户。
chown nash_su linuxcast.net
-R参数递归的修改目录下的所有文件的所属用户
命令chgrp用以改变文件的所属组
chgrp nash_su linuxcast.net
-R参数递归的修改目录下的所有文件的所属组。

修改权限:
命令chmod用以修改文件的权限
chmod 模式 文件
模式为如下格式:
u,g,o分别代表用户、组和其他。
a可以代指ugo
+ -代表假如或删除对应的权限。
r w x 代表三种权限。

命令chmod也支持以数字方式修改权限,三个权限分别有三个数字表示
-r = 4
-w = 2
-x = 1
使用数字表示权限时,魅族权限分别为对应数字之:
rw = 4+2 = 6
rwx =4+2+1 = 7
r-x = 4+1 = 5

rz命令 复制文件


猜你喜欢

转载自mjc410621.iteye.com/blog/2204185