总结有哦福利哦
ls
文件属性:
-:普通文件
d:目录文件
b:块设备
c:字符设备文件
l:符号连接文件
p:命令管道
s:套接字文件
文件权限:
9位数字,每3位一组
文件硬链接次数
文件所属主(owner)
文件的属组(group)
文件大小(size),单位默认是字节
ls常用选项:
-l:显示文件属性,ls -l=ll
-h:做相应的单位转换显示
-a:显示所有文件
-A:显示.和..以为的所有文件
-d:显示目录自身属性
-i:显示文件的缩影接点号码(index node ,inode)
-r:逆序显示文件列表
-R:递归显示文件
cd
cd:change directory
cd:回到用户的家目录
cd ~username:进入指定用户的家目录
cd - :在当前目录和前一次所在的目录来回切换
cd ..:切换至其父目录
命令帮助
内部命令帮助:help COMMAND
外部命令帮助:man COMMAND
命令手册:manual
whatis COMMAND:显示此命令在man帮助的哪个章节内。
============================================================
man的操作命令:
空格:向后翻一屏
b:向前翻一屏
ENTER:向后翻一行
k:向前翻一行
============================================================
关键字查找
/KEYWORD:向后查找关键字
?KEYWORK:向前查找关键字
n:下一个关键字位置
N:前一个关键字
q:退出man帮助
cp
cp:文件复制,规则:只有最后一个为目标。复制一个文件到一个文件 或者 多个文件
到一个目录!
cp /etc/passwd /tmp/ 复制到目录下并保存原文件名
cp /etc/passwd /tmp/test 看test是文件还是目录,目录:负责到目录内,
文件则替换!
==============================================================
-r:递归复制目录
-i:交互式显示复制
-f:强制复制,覆盖
-p:保留源文件的属性,时间戳
-a:保留源文件的所有属性
-P:复制链接文件时保存为链接(默认是复制链接所指向的文件)
-d:复制时保持链接
-a:归档复制,常用与备份
more
more:more的作用同cat是相同的,只不过这时我们可以通过手动来翻屏,更加方便
,more:只支持向后翻,翻到最后
就直接退出了
less:显示文件信息,默认不退出显示,q即可退出
空格:向后翻一屏
b:向前翻一屏
ENTER:向后翻一行
k:向前翻一行
关键字查找
/KEYWORD:查找关键字
sort 、uniq、wc
sort:文本排序,仅仅是对显示文件的排序,而不影响源文件的顺序,是根据ASSII码
的字符升序来排列的。
-n:安装数值大小从小到大排列
-r:降序排列
-t:指定字段分隔符
-k:从哪个字符开始,就是指定关键字排列
-u:相同的行只显示一次
-f:忽略字符大小写
================================================================
uniq:报告或者忽悠重复行
-d:只显示重复行
-c:显示某一行的重复次数
================================================================
wc:文本统计,可以统计文件中一共有多少行数,多少个单词数,多少个字节数 -l:只显示行数 -w:只显示单词数 -c:只显示字节数 -L:显示最长的一行包含多少个字符
权限
权限: r 、w 、x
文件:
r:可读,可利用类似 cat等命令查看文件内容
w:可写,可以编辑或删除此文件
x:可执行,可以再命令提示符下当做命令提交给内核运行。
目录:
r:可以对此目录执行LS以列出内部的所有文件
w:可以在此目录中创建文件
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的的详细信息。
useradd
useradd NAME:增加用户
-u UID:指定用户所属主ID
-g GID:指定基本组ID或者组名(此组必须首先存在才能用)
-G GID:定额外组(附加组),可以指定多个,彼此之间用逗号隔开即可(此附加
组必须首先存在才能用)
-c "COMMENT"指定注释信息
-d /path/to/somedirectory指定用户的家目录,不用的时候默认在home下面
建立一个和用户同名的目录。
-s 指定shell,路径最后是etc/shells文件内规定的shell路径。
-M 不给用户创建家目录
-r 创建一个系统用户,共系统调用,并不建立家目录
userdel USERNAME:删除用户
(不加参数时,默认不删除用户的家目录)
-r :删除用户的同时也删除家目录
用户账户属性管理
usermod:修改账户的属性
usermod [option] USERNAME
-u:修改UID
-g:修改GID
-G:修改附加组
-a -G:增加附加组,不覆盖之前的附加组
-c:修改用户的注释信息
-d:为用户知道新的家目录
-d -m :指定信家目录并移动此前家目录的文件至新的家目录内
-s:修改用户的默认shell
-l:修改用户名
-L:锁定用户账户
-U:解锁账户
组管理
groupadd:新建组
groupadd [option] GROUPNAME
-g :GID指定GID
-r :添加为系统组
groupmod:组属性
groupmod [option] GROUPNAME
-g GID:修改gid
-n NAME:修改组名
gpasswd:修改组密码
gpasswd GROUPNAME
chown
chown:改变文件属主、属组,只有管理员是也此命令
chown USERNAME file....(只改变目录本身)
-R 递归修改(修改目录及其内部文件的属主)
--reference=/path/to/somefile file... 把file的属主设定为与
somefile的属主一样(不需要指定属主)
chown USERNAME:GRPNAME fiel... 同时改变属主和属组
chown USERNAME,GRPNAME fiel... 同时改变属主和属组
chown :GROUPNAME fiel.... 修改属组
chmod
chmod:修改文件的用户权限
chmod MODE file...
-R:递归修改
--reference=/path/to/somefile file...
chmod 755 file...
修改某类用户的某些权限
u:属主
g:属组
o:其他
a:所有
chmod 用户类别=MODE fiel..
chmod u=wr,g=w /fiel..
chmod uo=wr /file..
修改某类的用户某位或某些位权限
chmod 用户类别[-/+]MODE fiel.
输入、输出重定向
输出重定向:> 覆盖输出(会覆盖原文件内的内容)
: >> 追加输出(不覆盖原文件的内容)
set -C :禁止对已经存在文件使用覆盖重定向
set +c :关闭上述功能
2>:重定向错误输出,不能输出正确信息
2>>:追加方式实现错误输出
&>:重定向标准输出或错误输出至同一个文件。 时覆盖方式
输入重定向:<
<<:此处生成文档
cat << END :输入信息,直至输入END时结束。(EOF或者END代表文档输入结束)
cat >> /tmp/myfile.txt << END
sed
sed:流编辑器,把文本中的某一行读取到内存中进行处理,此内存空间称为模式空间。
默认不编辑原文件,只对模式空间内的数据进行处理,处理结束后,将没模式空间打印至
屏幕
sed 'AddressCommand' file...
-n :静默模式,不在显示模式空间中的内容
-i :直接修改原文件
-e :(-e SCRIPT -e SCRIPT) 可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT: sed -f /path/to/sed_script file
:执行脚本文件
-r :使用扩展的正则表达式
d:删除符合条件的行
fg:/etc/inittab 删除1-2行
sed '/root/d' /etc/fastab 删除包含root的行
p:显示符合条件的行。
fg:sed '/^\//d' /etc/fastb 删除以/开头的行
sed '/^\//p' /etc/fastb 显示以/开通的行
a \string:在指定的行后追加新的行,内容为string
i \string:在指定的行前面添加新行,内容为string
r FILE :将指定的文件的内容添加至符合条件的行处
w FILE :将地址指定范围内的内容另存至指定的文件中
s/pattern/string/ :查找并替换(默认只替换每行中第一次被pattern匹配
到的字符串) 把pattern匹配的字符换为string
修饰符:g 全局替换 s/pattern/string/g
i 忽略字符大小写 s/pattern/string/i
s///=s###=s@@@ 在找/时就不用转意了。
&:后向引用,引用模式匹配的整个串
===========================================================================================
fg:sed练习:
1、删除/etc/grub.conf文件中行首的空白符;
sed -r 's/^[[:space:]]+//g' /etc/grub.conf
2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5;
sed 's/id:3:initdefault/id:5:initdefault/g' /etc/inittab
sed 's@\(id:\)[0-9]\(:initedefault)@\15\2@g' /etc/inittab
3、删除/etc/inittab文件中的空白行;
sed '/^$/d' /etc/inittab
4、删除/etc/inittab文件中开头的#号;
sed 's/^#//g' /etc/inittab
5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;
sed 's/^#[[:space:]]\{1,\}//g' /etc/inittab 或者
sed -r 's/^#[[:space:]]+//g' /etc/inittab
6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#
sed -r 's/^[[:space:]]+#//' 1
7、取出一个文件路径的父目录名称;
echo "/etc/rc.d" | sed -r 's@^(/.*/)[^/]+/?@\1@g'
以/.*/开头,[^\]指非斜杠,\1引用左边第一个括号内的内容一次。
echo "/etc/rc.d" | sed -r 's@^/.*/([^/]+)/?@\1@g'
提取本文件
vim
vim:文本编辑器,全屏、模式化的编辑器
vim模式:
编辑模式(命令模式):默认
输入模式
末行模式
------------------------------------------------------------------------------------------
vim模式转换:
1、从编辑模式-->输入模式
i:在当前光标所在字符的前面,转为输入模式
a:在当前光标所在字符的后面,转为输入模式
o:在当前光标所在行的下方新建一行,并转为输入模式
I:在当前光标所在行的行首,转为输入模式
A:在当前光标所在行的行尾,转为输入模式
O:在当前光标所在行的上方新建一行,并转为输入模式
---------------------------------------------------------------------------------------
2、从输入模式-->编辑模式
键入esc键。
3、末行模式:必须从编辑模式进入末行模式
键入:即可。
4、末行模式-->编辑模式
敲esc键,一次或者多次。
-------------------------------------------------------------
vim退出文件:
1、末行模式下关闭文件
w:保存文件
q:退出
wq:保存并退出
q!:不保存并退出
w!:强制保存
wq=x 保存退出
2、编辑模式下退出
大写ZZ:保存退出
------------------------------------------------------------------------------------------
vim下移动光标(编辑模式):
1、逐字符移动:
h:向左
l:向右
j:向下
K:向上
#h:移动#(数字)个字符
2、以单词为单位移动
w:移动下一个单词的词首
e:移动到当前单词的词尾或者下一个单词的词尾
b:移动到当前单词的词首或者上一个单词的词首
#w:一次跳#个单词。
3、行内跳转
0:跳到行首(绝对行首)
^:跳到第一个非空白字符的行首
$:绝对行尾
4、行间跳转
#G:直接跳转至第#行上。
G:直接跳转至最后一行
末行模式下跳转:直接给出行号,回车即可。
-------------------------------------------------------------------------------------------
vim翻屏:
ctrl+f:向下翻一屏
ctrl+b:向上翻一屏
ctrl+d:向下翻半屏
ctrl+u:向上翻半屏
-------------------------------------------------------------------------------------------
vim删除字符:
x:删除光标所在处的单个字符
#x:删除光标所在处及向后的共#个字符
vim删除命令:d
d命令与跳转命令结合使用
d$:删除到行尾。
#d跳转符:删除跳转符指定的#个字符
dd:删除当前光标所在行
#dd:删除包括光标所在行之内的#行
末行模式下可以使用:
startADD,ednADDd
1,10d:删除第一行到第十行
.,100:删除当前行到100行。
.表示当前行
$:最后一行
+#:向下的#行
$-10:倒数第10行
vim删除的内容为保存在缓冲中,最后一次删除的内容可以粘贴。
-------------------------------------------------------------------------------------------
vim粘贴命令:p
p(小写):如果删除的或复制的为正行内容,则粘贴至光标所在含行的下方,如果
复制或删除的内容为非整行,则粘贴至光标所在字符的后面
P(大写):如果删除的或复制的为正行内容,则粘贴至光标所在含行的上方,如果
复制或删除的内容为非整行,则粘贴至光标所在字符的前面
vim复制命令:y
y的用法同d
yy:复制一行
vim先删除内容,再转换为输入模式:c
c的用法同d命令
cc:删除一行,并进入输入模式。
c$:删除到行尾,并进入输入模式
-------------------------------------------------------------------------------------------
vim下撤销编辑操作命令:u
u:撤销上一次操作,连续u命令可以撤销此前的n次操作
#u:直接撤销最近#次编辑操作
-------------------------------------------------------------------------------------------
vim超找替换
/PATTERN:从行首向下查找PATTERN匹配的选项
?PATTERN:从行尾向上查找PATTERN匹配的选项
vim查找并替换:s
在末行模式下使用s命令
用法与sed一样
ADDR1,ADDR2s@PATTERN@string@gi
g:全局 i:忽略大小写
.,$-1 :当前行到倒数第一行
1,$表示全文
vim下shell交互
:!COMMAND 回车查看,查看完以后再回车,进入vim编辑模式。
-------------------------------------------------------------------------------------------
vim高级话题
1、显示或取消显示行号
:set nu
:set nonu
2、设定忽略或区分大小写
:set ignorecase
:set ic 忽略
:set noic
3、设定自动缩进
:set autoindent
:set ai 缩进
:set noai
4、查找到的文本高亮显示或取消高亮显示
:set hlsearch 高亮显示
:set nohlserch 取消
5、语法高亮
:syntax on 开启
:syntax off 关闭
find
find:实时查找、精确、遍历指定目录中的所有文件完成查找,速度慢、支持众多
查找标准
格式:find 查找路径 查找标准 查找到以后的处理运作
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理运作:默认为显示到屏幕
-------------------------------------------------------------------------------------------
匹配标准
-name 'FILENAME':对文件名进行精确匹配
还支持文件名通配符:*:任意长度的任意字符
-iname 'FILENAME':文件名匹配不区分大小写
-regex PATTERN:基于正则表达式进行文件名匹配
-user USERNAME:基于文件所属主进行匹配查找
-group GROUPNAME:基于文件的属组进行查找
-uid UID:基于文件的uid,用户被删了以后id号会保存下来
-gid GID:文件组
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-type :根据文件的类型来查找
f:普通文件
d:目录
p:管道
s:套接字
l:链接
-size:指定文件的大小
[+|-]#K:大于或者小于#k的文件
-------------------------------------------------------------------------------------------
时间戳查找
单位为天
-mtime :修改时间
-atime :访问时间
-ctime:改变时间
支持[+|-]#:
5:五天那一天访问
-5:五天之内
+5:至少五 天之外
单位为分钟
-amin:访问时间
-cmin:修改时间
-tmin:改变时间
文件的权限查找
-perm mode(755):精确查找
fg:find 路径 -pern 755
-perm /mode : 三位匹配一位就可以
-perm -mode:文件权限能完全包含此mode才可以显示
执行动作:
-print:默认的,显示
-ls:类似ls -l的形式显示匹配到的每个文件的详细信息
-ok COMMAND {} \;每个操作需要用户确认 执行命令,必须以\;结尾。
{}代表匹配到的文件。
-exec COMMAND {} \;不需要确认,执行命令,必须以\;结尾。{}代表
匹配到的文件。
SUID
suid:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者所属主
添加文件的SUID:chmod u+s FILE
chmod u-s FILE
如果FILE本来原来就有执行权限,则SUID显示为s,否则为大S。
SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属
的基本组
chmod g+s FILE
chmod g-s FILE
fg:一个团队,三个用户:hadoop、hbase、hive,一个开发目录
/tmp/project,要求这三个用户可以同时修改同一个文件。查看、编辑、等权限
三个用户同属一个基本组,并要求基本组具有查看、编辑权限。。
groupadd devdeop
chown -R :develop /tmp/projest
usermod -a -G develop hadoop
chmod g+s /tmp/project
然后就可以进行创建、修改、删除同一个文件了。
mount
mount:挂载文件系统
mount 设备 挂载点
设备
设备文件:/dev/**
卷标:LABLE=""
UUID:UUID=""
挂载点:挂载点就是个目录
1,此目录没有被其他进程使用;
2,目录的首先存在;
3,目录中原有的文件将会暂时隐藏;
----------------------------------------------------------------
mount相关参数
-a:表示挂载/etc/fstab文件中指定的所有的文件系统
-n:默认情况下,mount每挂载一个设备,都会把挂载的设备信息保存至
/etc/mtab文件;使用-n选项意味着挂载设备时,不把信息写入此文件;
-t FSTYPE:指定正在挂载设备上的文件系统的类型;不使用此选项时,
mount会调用blkid命令获取对应文件系统的类型;
-r:只读挂载,挂载光盘时常用此选项
-w:读写挂载
-o:指定而外的文件系统挂载选项,即指定文件系统启用的属性
async:表示异步写入
atime:表示更新时间戳
noatime:关闭更新时间
auto:表示这个磁盘设备能被使用-a选项自动挂载
remount:重新挂载当前系统
dev:允许其他磁盘设备
ro:挂载为只读
rw:读写挂载
ower:允许普通用户挂载
sync:同步启用
loop:挂载本地回环设备
tar
tar:能够实现归档的工具,只归档,不压缩。
-c:创建归档文件
-f file.tar:操作的归档文件,所以-f后面必须跟参数,后跟.tar
-x:展开归档文件,原归档文件不删除
--xattrs:表示在归档的同时,保留文件的扩展属性信息
-t:不展开归档,查看归档了哪些文件
-zcf:归档并调用gzip压缩
-zxf:调用gzip解压缩并展开归档,-z选项可以省略
-jcf:调用bzip2并归档
-jxf:调用bzip2并展开归档
-Jcf:调用xz
-JXF:调用xz
逻辑卷 LV
pvcreate:创建
pvmove:挪动数据
pvremove:擦除pv卷
pvdisplay:显示物理卷
pvscan:扫描系统上有几个pv
pvs:查看pv信息
------------------------------------------------------------------
卷组
vgcreate:创建
-s #:指定pe大小,默认为4m
vgreduce:删除vg
vgmove:移除
vgextend:把一个物理卷加入此卷组
vgs:查看系统上的组卷信息
------------------------------------------------------------------
逻辑卷:
lvcreate:创建
-L #:指定大小
-n NAME:指定名字
lvreduce:模拟损坏
lvremove:移除lv,后加路径
lvextend:扩展
lvdisplay:查看lv相关信息
lvs:查看lv信息
fg:lvcreate -L 50M -n testlv myvg
-----------------------------------------------------------------------
LVM扩展:先扩展物理卷边界,再扩展逻辑卷
lvextend -L [+]# /PATH/TO/LV :扩展物理边界
resize2fs:扩展逻辑边界
resize2fs /PATH/TO/LV 5G:扩展逻辑边界到5G
resize2fs -p /PATH/TO/LV:有多大扩展到多大
mount -a:挂载/etc/fstab文件内的所有设备
LVM缩减:先缩减逻辑边界resize2fs /PV 3G,再缩减物理卷边界、
1、不能在线缩减,得先卸载
2、确保缩减后的空间大小能储存原来所有文件
3、在缩减之前应该强行检查文件,以确保文件系统处于一致性状态
e2fsck -f:强行检查文件
df -lh:检查利用率
umount
e2fsck -f:强行检查文件
resize2fs /PATH/TO/lV 5G:缩减逻辑卷到5G
lvreduce -L [-]#G /PATH/TO/LV:缩减物理卷边界
route
route:查看本机的路由信息
-n:以数字的方式显示主机信息
route add:添加路由
-host:主机路由
-net:网络路由
格式:route add -net|host DEST gw NEXTHOP
route add default gw NEXTHOP
route del:删除路由
-host
-net
route del -net 10.0.0.0/8
route del -net 0.0.0.0
route del default
以上所做的改动重启网络服务或重启主机,都失效。
ip
ip:功能比较强大的网络命令
ip link:配置网络接口属性
show:显示所有网络接口信息
ip -s link show:查看所有统计信息
ip link set ethx {up|down|arp {on|off}}:设定网络接口的工作属性
ip addr:协议地址
show:网络信息
ip addr add IP dev eth1 添加ip,在ifconfig下看不到的,利用
ip addr show
ip addr add 192.168.0.1/24 dev eth1
ip addr add IP dev eth1 label ethx:x 添加ip以后增加别名,
在ifconfig下可以查看到
ip addr add IP dev eth1
ip addr show dev ethx to 前缀:查看ethx 上的以前缀开头的信息
ip addr flush eth1 to 10/8 :删除eth1上所有的以10开头的ip地址。
ip route:路由
ip route change|replace :修改路由信息
ip route add to 目的网段 dev ethx via IP(下一跳IP)
rpm
rpm:安装rpm包的工具
rpm安装命令
-i rpm:安装软件
-h:以#显示安装进度
-v:显示安装信息
-vv:显示更详细的安装信息
-ivh:组合使用,常用命令安装软件
--nodeps:忽略依赖关系
--replacepkgs:重新安装、替换原来安装。
-ivh --oldpackage:降级安装
-ivh --force:强制安装,可以实现重装或降级
--test:测试有没有依赖关系
-------------------------------------------------------------------------------------------
rpm查询命令
-q rpm:查询指定包是否安装
-qa:经安装的所有包
-qi:查询指定包的说明信息
-ql:查询指定包安装后生成的目录列表
-qc:查询指定包的配置文件
-qd:查询指定包的帮助文件
-q --scripts:查询指定包内包含的脚本
-qf:查询指定的文件是有哪个rpm包安装
-------------------------------------------------------------------------------------------
rpm软件升级命令
-Uvh:如果装有老版本的,则升级;否则,则安装
-Fvh:如果装有老版本的,则升级;否则,则退出
-Uvh --oldpackage:降级
-------------------------------------------------------------------------------------------
rpm卸载命令
-e:卸载
-e --nodeps:忽略依赖关系卸载
-----------------------------------------------------------------------------------------
rpm校验命令:
-V:无输出信息就是正常
rpm数据库重建
rpm --rebuilddb:重建数据库,一定会重新建立。
rpm --initdb:初始化数据库,没有才建立,有就不用建立。
yum
yum:安装软件命令,可以自动解决软件包直接的依赖关系。
list:显示yum仓库内的软件
list available:仓库中有但尚未安装的包
list installed:显示已经安装的
list updates :可以的升级
------------------------------------------------------------------------------------------
yum clean:清楚缓存
yum clean {packages | headers | metadata | dbcache | all}
yum repolist:显示repo列表及简要信息
yum repolist {all|enabled|disabled}
---------------------------------------------------------------
yum安装软件命令
install:安装软件包
-y install:自动安装
install --nogpgcheck:不做校验
------------------------------------------------------------------------------------------
yum升级软件命令
yum update :升级
yum update_to:升级到指定版本、
-----------------------------------------------------------------------------------------
yum卸载软件命令
yum remove|erase PACKAGE_NAME
yum info PACEAGE_NAME:查看软件包信息
------------------------------------------------------------------------------------------
yum 开发组安装命令
groupinstall 组名:安装组中包含的包
groupinfo 组名:显示组包含包信息(如果组名中间有空格,使用”“
grouplist 列出组
groupupdate
-------------------------------------------------------------------------------------------
yum 安装本地RPM包命令
yum localinstall rpmfile1 :安装本地包并从yum库内解决依赖关系
yum --nogpgcheck localinstall rpmfile1:不校验安装
总结; 问题+解答+视频资料+PPT文档需要的可以后台私信‘资料’领取