首页 > Linux操作系统 > Linux操作系统 > linux命令大全(续)
28、chown
chown:改变文件属主、属组,只有管理员是也此命令
chown USERNAME file....(只改变目录本身)
-R 递归修改(修改目录及其内部文件的属主)
--reference=/path/to/somefile file... 把file的属主设定为与
somefile的属主一样(不需要指定属主)
chown USERNAME:GRPNAME fiel... 同时改变属主和属组
chown USERNAME,GRPNAME fiel... 同时改变属主和属组
chown :GROUPNAME fiel.... 修改属组
===========================================================================================
29、chgrp
chgrp:修改文件属组
chgrp GROUPNAME file....(只改变目录本身)
-R 递归修改(修改 目录及其内部文件的属组)
--reference=/path/to/somefile file... 把file的属主设定为与
somefile的属组一样(不需要指定属组)
===========================================================================================
30、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..
31、echo
echo:输出信息
echo "abc"
echo "字符串" | passwd --stdin USERNAME:利用管道修改用户密码
32、输入、输出重定向
输出重定向:> 覆盖输出(会覆盖原文件内的内容)
: >> 追加输出(不覆盖原文件的内容)
set -C :禁止对已经存在文件使用覆盖重定向
set +c :关闭上述功能
2>:重定向错误输出,不能输出正确信息
2>>:追加方式实现错误输出
&>:重定向标准输出或错误输出至同一个文件。 时覆盖方式
输入重定向:<
<<:此处生成文档
cat << END :输入信息,直至输入END时结束。(EOF或者END代表文档输入结束)
cat >> /tmp/myfile.txt << END
===========================================================================================
33、grep
grep:根据模式,搜索文本,并将符合模式的文本行显示出来
-i 忽略大小写
--colour(color)颜色显示
-v 反向查找,显示没有被模式匹配的行
-O 只显示被模式匹配的字符串
===========================================================================================
34、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'
提取本文件
===========================================================================================
35、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 关闭
36、let
let:相当于一个小的计算器
let SUM+=$I ;sum等于sum+I
let I+=1:让I等于I加1
let I++:让I等于I加1
let I-=相当于let I--:I等于I减1
37、locate
locate:查找文件,非实时的、模糊匹配,全系统文件数据库的查找命令
updatedb:手动生成文件数据库,新安装的系统没有数据库的,速度快
38、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 {} \;不需要确认,执行命令,必须以\;结尾。{}代表
匹配到的文件。
=========================================================================================
39、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
然后就可以进行创建、修改、删除同一个文件了。
===========================================================================================
40、sticky
sticky:规定在一个公共目录,每个人都可以创建文件、删除自己的文件,但不
能删除别人的文件。
chmod o+t DIR:对目录增加sticky权限
chmod o-t DIR:去掉目录的sticky权限
chmod 1755 /backup/test 表示文件具有sticky权限
41、facl
facl:利用文件扩展保持额外的访问权限
setfacl:设置某文件的控制权限
-m:增加facl
u:设定用户的时候,后面加上u:UID:perm
fg:setfact -m u:UID:rw file
g:设置组
-x:取消facl
getfacl:查看文件的facl权限
42、whoami
whoami:显示当前用户是谁,su半切换的时候显示的是切换之前的那个用户
43、who
who:查看当前登录系统的用户以及他所登录的终端
-r:显示当前运行级别
-H:第一回列表显示各列名称
w:显示比who更详细的信息
44、last
last:显示当前系统上的登录日志(/var/log/wtmp文件),包括系统用户和
重启信息
last -n 数字:只显示最近几次的登录信息
45、lastb
lastb:显示用户错误的登录常识
lastb -n 数字:只显示最近几次错误的登录信息。
46、lastlog
lastlog:显示每个用户最近一次成功登录的信息
lastlog -u USERNAME:显示指定用户最近一次的登录信息
47、basename
basename:显示一个目录的基名 basename /etc/abc/me 直接显示me $0:命令名称或者脚本本身的路径。 basename $0:直接调用脚本本身路径 ==========================================================================================
48、mail
mail:邮件查看,可以查看邮件,查看以后就会放到用户的家目录内mbox文件夹内。
-s主题
mail -s "How are you " root
cat /etc/fast | mail -s "How are you " root
49、hostname
hostname:显示当前主机的名称
hostname 主机名:更改主机名
fg:如当前主机的名字为空,或者(none)或者为(localhost),就将其
改为www
[ -z` hostname` -o `hostname` == "(null)" -o `hostname`
== "localhost" ] && host www.
-z:表示是否为空
50、RANDOM
RANDOM:0-32768直接的随机数
echo $RANDOM:生成随机数
51、ln
ln:创建链接文件
ln SRC DEST:创建硬链接
-s:创建软连接
-i:显示文件的inode号
-v:显示执行结果
硬件连接:
1、只能对文件创建,不能应用于目录,文件的硬链接次数为2
2、不能夸文件系统
3、创建硬链接会增加文件被连接的次数
符号连接:
1、可应用于目录
2、可以跨文件系统
3、不会增加被连接文件的连接次数
4、其大小为指定的路径所包含的字符个数
===========================================================================================
52、du
du:显示目录下的所有文件的大小
-s:显示目录大小
-sh:单位换算后显示
================================================================
53、df
df:显示整个磁盘分区的使用情况
-h:显示空间大小
===========================================================================================
54、fdisk
fdisk:磁盘分区
fdisk /dev/sda
p:显示当前磁盘上的分区
n:创建一个新的分区
e:扩展分区
p:主分区
d:删除一个分区
w:保存退出
q:不保存退出
t:修改分区类型
l:显示所有支出的分区类型
===========================================================================================
55、partprobe:
更新分区表,常用于5.x的RedHat|Centos系列
6.x上常使用partx指令
56、mkfs
mmkfs:创建文件系统
mkfs -t FSTYPE 指定分区
-t可以实现多种系统的格式化 如mkfs -t ext2 /dev/sda5
57、mke2fs
mke2fs:专门管理ext系列的文件的命令,不跟任何参数,指的是创建ext2
-j:指的是创建ext3类型文件系统
-b BLOCK_SIZE:指定块大小,默认为4096;可用取值为1024,2048或
4096
-L LABEL: 指定分区卷标;例如 mke2fs -L MYYY /etc/sda5
-m #:明确指定预留给超级管理员用的快熟百分比 mke2fs -m 3
/dev/sda5
-i #:指定为多少个字节的空间创建一个inode , 默认为8192;这里给出的
数值应该为块大小的2^n被 mke2fs -i 4096 表示4096个字节创建一个inode
-F:强行创建文件系统;
-E:用于指定额外的文件系统属性;
-N#:指定inode个数;
58、blkid
blikd:查询或查看块设备的属性,其中有包含文件系统的信息
59、e2lable
e2lable:专门用于查看或定义卷标
查看卷标 e2label /dev/sda5
设定卷标 e2label 设备文件 卷标 :即实现设定卷标 e2label
/dev/sad6 YYY
(这里的设备文件即/dev/sda5)
60、tune2fs
tune2fs:调整文件系统的相关属性
-j:不损坏原有数据,将ext2升级为ext3,但是不能降级
-L LABLE:设定或修改卷标
-m #:调整预留百分比
-r #:预留块数
-o:设置默认挂载选项,其中有一个是acl,acl是一个功能,但需要挂载才能
使用,否则是不能用的
-c #:指定挂在次数达到#次之后进行自检,指定0或-1表示关闭此功能,不自
检;
-i #:可以指定每挂载使用多少天后进行自检:0或-1表示关闭此功能;
-l:显示超级块内容
===========================================================================================
61、dumpe2fs
dumpe2fs:以显示文件系统中超级块信息或文件的属性信息,
同上面的tun2fs -l 选项类似,都是很重要的命令,
其中也显示超级块的信息,FREE是空闲的意思
-h:表示只显示超级块中的信息
62、fsck
fsck:检查并修复Linux文件系统
-t TYPE:指定文件系统类型
-a:自动修复
63、e2fsck
e2fsck:专门用来检查修复ext2或ext3的命令
-a或-p:自动修复;
-f :强行修复;
64、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:挂载本地回环设备
==========================================================================================
65、umount
umount:卸载
umount 设备
umount 挂载点
上面两个都可以,卸载时只要指定一个就可以了
66、free
free:查看系统上的物理内存和交换内存的使用情况,默认字节
-m:以M为单位显示
buffers是缓冲 cached是缓存:的目的是重复使用,避免过慢的设备遭
67、mkswap
mkswap:创建交换分区
swapon /dev/sd*:启用交换分区
-a:表示启用/etc/fstab内的所有交换设备
swapoff /edv/** :关闭交换分区
===========================================================================================
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69920922/viewspace-2724050/ ,如需转载,请注明出处,否则将追究法律责任。