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用以压缩文件
ziplinux.ziplinux_cmd
命令unzip用以解压缩文件
unziplinux.zip
命令gzip用以压缩文件
gziplinux.net
命令tar用以归档文件(打包命令不是压缩命令。把一些文件打包成一个文件)
tar-cvfout.tarlinuxcast
tar-xvflinux.tar
tar-cvzfbackup.tar.gz/etc
-z参数将归档后的文件进行gzip压缩减少大小
查找
命令locate用以快速查找文件、文件夹
locatekeword
此命令需要预先建立数据库,数据库默认每天更新一次,可用update命令手工建立,更新数据库
命令find用以高级查找文件,文件夹
find查找位置查找参数
如:
find.-name*linuxcast
find/-name*.conf
find/-perm111
find/-typed
find/-name“a*”-execls-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
:setnumber显示行号
:!系统命令执行一个系统命令并显示结果
: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(MasterBootRecord)是传统的分区机制,应用于绝大多数使用BIOS的PC
设备。
MBR支持32bit和64bit系统
MBR支持分区数量有限
MBR只支持不超过2T的硬盘,超过2T的硬盘将之恩给你使用2T空间(有第三方解决方法)
MBR结构
前416引导代码部分,接下来4个16字节是分区表,剩下的两个字节启动标识
(55hAAh)
MBR分区
主分区
最多只能创建4个主分区
扩展分区
一个扩展分区会占用一个主分区位置
逻辑分区
linux最多支持63个IDE分区和15个SCSI分区
GPT(GUIDPartitionTable)是一个较新的分区机制,解决了MBR得很多缺点。
*支持超过2T的硬盘
*向后兼容MBR
*必选使用64bit系统
*Mac、Linux系统都能支持GPT分区格式
Windows764bit、windowsServer200864bit支持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-text4/dev/sda3
常用的参数:
-bblocksize指定文件系统块大小。
-c建立文件系统时检查坏损块
-Llabel指定卷标
-j建立文件系统日志
命令mkfs也可用于创建文件系统,相较于mke2fs简单,但是支持的参数较少,不能进行
精细化的控制。
*mkfs.ext3/dev/sda3
命令dumpe2fs可以用来查看分区的文件系统信息
dumpe2fs/dev/sda2
JOURNAL日志
带日志的文件系统(ext3、ext4)拥有较强的稳定性,在出现错误时可以进行恢复。
使用带日志的文件系统,文件系统会使用一个叫做“两阶段提交”的方式进行磁盘操作,
当进行磁盘操作时,文件系统进行一下操作:
(1)文件系统将准备进行的事务的具体内容写入日志
(2)文件系统进行操作
(3)操作成功后,将事物的具体内容从日志中删除
这样做的好处是,当事物执行的时候如果出现意外(如断电或磁盘故障)
可以通过查询日志进行恢复操作。缺点是回丧失一定的性能(额外的日志读写操作)。
命令e2label可以用来为文件系统添加标签
e2label/dev/sda2显示sda2的系统标签
e2label/dev/sda2LINUXCASAT将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
如果出现deviceisbusy报错,则表示该文件系统正在被使用,无法卸载,
可以使用以下命令查看使用文件系统的进程:
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用以创建一个新用户
useraddnash_su
这个命令会执行以下操作:
1,在/etc/passwd中添加用户信息
2,如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中
3,为用户建议一个新的家目录/home/nash_su
4,将/etc/skel中得文件复制到用户的家目录中。
5,建立一个与用户用户名相同的组,新建用户默认属于这个同名组
命令useradd支持以下参数:
-d家目录
-s登录shell
-uuserid
-g主组
-G附属组
也可以通过直接修改/etc/passwd的方式实现,但是不建议
修改用户信息
命令usermod用来修改用户信息
usermod参数username
命令usermod支持以下参数:
-l新用户名
-u新userid
-d用户家目录位置
-g用户所属主组
-G用户所属附属组
-L锁定用户使其不能登录
-U解除锁定
删除用户
命令userdel用以删除指定用户
userdelnash_su(保留用户的家目录)
userdel-rnash_su(同时删除用户的家目录)
组
几乎所有操作系统都有组的概念,通过组,我们可以更加方便的归类、管理用户。
一般来讲,我们使用部门、职能或地理区域的分类方式来创建使用组。
每个组都有一个组ID
组信息保存在/etc/group中
每个用户拥有一个主组,同时还可以拥有最多31个附属组
创建、修改、删除组
命令groupadd用以创建组:
groupaddlinuxcast
命令groupmod用以修改组信息:
groupmod-nnewnameoldname修改组名
groupmod-gnewGidoldGid修改组ID
命令groupdel用以删除组:
groupdellinuxcast
权限
权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。
系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制
来限制哪些用户、哪些组可以对特定文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户
的权限大,该进程拥有的权限就大。
文件权限
Linux中,每个文件拥有三种权限以下三种权限
权限对文件的影响对目录的影响
r(读取)可读取文件的内容可列出目录内容
w(写入)可修改文件内容可在目录中创建删除文件
x(执行)可以作为命令执行可访问目录内容
目录必须拥有x权限,否则无法查看内容
UGO
Linux权限基于UGO模型进行控制:
U代表User,G代表Group,O代表Other
每一个文件的权限基于UGO进行设置
权限三个一组(rwx),对应UGO分别设置
每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组
的使用O权限
命令ls-l可以查看当前目录下文件的详细信息:
-rw-r--r--@1mjcstaff1516611519:33linux_cmd.txt
-rw-r--r--UGO
1链接数量
mjcU:所属用户
staffG:所属组
15166大小
11519:33时间
linux_cmd.txt文件名
修改文件所属用户、组
命令chown用以改变文件的所属用户。
chownnash_sulinuxcast.net
-R参数递归的修改目录下的所有文件的所属用户
命令chgrp用以改变文件的所属组
chgrpnash_sulinuxcast.net
-R参数递归的修改目录下的所有文件的所属组。
修改权限:
命令chmod用以修改文件的权限
chmod模式文件
模式为如下格式:
u,g,o分别代表用户、组和其他。
a可以代指ugo
+-代表假如或删除对应的权限。
rwx代表三种权限。
命令chmod也支持以数字方式修改权限,三个权限分别有三个数字表示
-r=4
-w=2
-x=1
使用数字表示权限时,魅族权限分别为对应数字之:
rw=4+2=6
rwx=4+2+1=7
r-x=4+1=5
rz命令复制文件
相关推荐
= -1)//对指定路径进行判断。while //遍历文件夹下的文件。if (strFileName =="." && strFileName == ".." != 0)//排除当前目录和上一级目录。