Linux常用命令
文件属性与权限:
chgrp(改变文件所属用户组)
chgrp user filename 改变文件filename的用户组为user(用户组名user在etc/group中已存在)
chgrp –R user filename 连同子目录下的所有文件、目录都更新为user用户组,常用在更改某一目录内所有文件的情况(同上)
chown(改变文件所有者)
chown 用号名 文件或目录 改变文件所有者
chown –R 用户名 文件或目录 连同子目录下的所有文件都更改所有者
chown 用户名:用户组 文件或目录 改变文件所有者和用户组
chown –R 用户名:用户组 文件或目录 连同子目录下的所有文件都更改所有者和用户组
chmod(改变权限)
chmod xyz 文件或目录 r:4 、w:2 、x:1,xyz为权限数值相加
chmod -R xyz 文件或目录 连同子目录下的所有文件都会改变权限
chmod u(user)/g(group)/o(other)/a(all) +/-/= r/w/x 文件或目录
umask(文件默认权限)
umask 显示目前用户在新建文件或目录时候的权限默认值,后三位数为该默认值需要减掉的权限
umask –S 显示默认值,u=…,g=…,o=…。
新建文件时,默认权限-rw-rw-rw- 666
新建目录时,默认权限drwxrwxrwx 777
chattr(设置文件的隐藏属性)
chattr [+-=] [ASacdistu] 文件或目录名称
+ 增加某一特殊参数,其他原本存在参数不动
- 删除某一特殊参数,其他原本存在参数不动
= 仅有后面的参数
A 当设置了A这个属性时,若你有访问此文件或目录时,他的访问时间不会修改,可避免I/O较慢的机器过度访问磁盘
S 一般文件是异步写入磁盘的,如果加上S这个属性时,任何文件的修改都会同步写入磁盘中
a 当设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性(常用)
c 这个属性设置之后,将会自动将此文件压缩,在读取的时候将会自动解压缩,但是在存储的时候,将会先进行压缩后再存储
d 当dump程序被执行的时候,设置d属性将可使该文件或目录不会被dump备份
i 它可让一个文件不能被删除、改名,设置连接也无法写入或添加数据。对于系统安全性有相当大帮助,只有root能设置此属性
s 当文件设置了s属性时,如果这个文件被删除,它将会被完全从这个硬盘空间中删除
u 与s相反,当使用u来配置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中,可以使用来找回该文件
lsattr (显示文件隐藏属性)
lsattr –a 文件或目录 将隐藏文件的属性也显示出来
lsattr –d 文件或目录 如果连接的是目录,仅列出目录本身属性而非目录内的文件名
lsattr –R 文件或目录 连同子目录的数据也一并列出来
文件与目录:
. 此层目录
. . 上一层目录
- 前一个工作目录
~ 目前用户身份所在的主文件夹
~account account这个用户的主文件夹
cd(切换目录)
cd 回到自己的主文件夹
cd ~ 回到自己的主文件夹
cd ~account去到account这个用户的主文件夹
cd - 返回到刚才的那个目录并显示
cd .. 去到目前的上层目录
cd ../ test 相对路径
cd /test1/ test 2/ test 3 绝对路径
pwd(显示当前目录)
pwd 显示出当前的工作目录
pwd –P(大写) 显示当前实际的工作目录,而非连接文件本身的目录名
mkdir(新建新目录)
mkdir test 以默认权限建立单层目录
mkdir –p test1/test2/test3 直接自行创建多层目录
mkdir –m 711 test 新建权限为711的的目录
rmdir(删除空目录)
rmdir test 删除一层空目录
rmdir –p test1/test2/test3 删除多层空目录
ls(查看文件与目录)
ls –a 文件或目录查看全部的文件,连同隐藏文件(开头为 . 的文件)一起列出来(常用)
ls –A 文件或目录 查看全部的文件,连同隐藏文件(但不包括开头为 . 和 .. 这两个目录)
ls –d 文件或目录仅列出目录本身,而不是列出目录内的文件数据(常用)
ls –f 文件或目录 直接列出结果,而不进行排序(ls默认会以文件名排序)
ls –F 文件或目录 根据文件、目录等信息给予附加数据结构。如*:可执行文件;/:目录,=:socket目录,|:FIFO文件
ls –h 文件或目录 将文件容量以人类较易读的方式列出来
ls –i 文件或目录 列出inode号码
ls –l 文件或目录列出长数据串,包括文件的属性与权限(常用)
ls –n 文件或目录 列出UID与GID,而非用户与用户组的名称
ls –r 文件或目录 将排序结果反向输出
ls –R 文件或目录 连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
ls –S 文件或目录 以文件容量大小排序,而不是文件名排序
ls –t 文件或目录 依时间排序,而不是文件名排序
ls –-color=never 文件或目录 不要依据文件特性给予颜色显示
ls –-color=always 文件或目录 显示颜色
ls –-color=auto 文件或目录 让系统自行依据设置来判断是否给予颜色
ls –-full-time 文件或目录 以完整时间模式(包含年月日时分)输出
ls –-time={atime,ctime} 文件或目录 输出访问时间(atime)或改变权限属性时间(ctime),而非内容更改时间
atime:当文件的内容被取用时,如用cat读取文件,就会更新这个时间。
ctime:当该文件的状态改变时,如权限与属性被更改,就会更新这个时间
mtime:当该文件的内容数据更改时,如文件的内容改变时,就会更新这个时间
touch(修改文件时间或创建新文件)
touch 文件 若文件存在,更新文件的ctime、atime和mtime为目前时间;若文件不存在,则创建新的文件
touch –a 文件 仅修改访问时间
touch –c 文件 仅修改文件的时间,若该文件不存在则不创建新文件
touch –d 文件 后面可以接欲修改的日期而不用目前的日期,也可以使用—data=”日期或时间”
touch –m 文件 仅修改mtime
touch –t 文件 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMMDDhhmm]
cp(复制文件或目录)
cp –a 源文件目标文件相当于-pdr的意思(常用)
cp –d 源文件 目标文件 若源文件为连接文件属性,则复制连接文件属性而非文件本身
cp –f 源文件 目标文件 为强制的意思,若目标文件已经存在且无法开启,则删除后再尝试一次
cp –i 源文件目标文件若目标文件已经存在时,在覆盖时会先询问操作的进行(常用)
cp –l 源文件 目标文件 进行硬连接的连接文件创建,而非复制文件本身
cp –p 源文件目标文件连同文件的属性一起复制过去,而非使用默认属性
cp –r 源文件目标文件递归持续复制,用于目录的复制行为(常用)
cp –s 源文件 目标文件 复制成为符号链接文件,即快捷方式文件
cp –u 源文件 目标文件 若目标文件比源文件旧才更新目标文件
rm(移除文件或目录)
rm –f 文件或目录 忽略不存在的文件,不会出现警告信息
rm –i 文件或目录 互动模式,在删除前会询问用户是否操作
rm –r 文件或目录 递归删除。最常用在目录的删除,这是危险操作
mv(移动文件与目录,或更名)
mv –f 源文件 目标文件 如果目标文件已存在,不会询问而直接覆盖
mv –i 源文件 目标文件 如果目标文件已存在,就会询问是否覆盖
mv –u 源文件 目标文件 若目标文件已存在,且源文件比较新,才会更新
basename/dirname(取得路径的文件名与目录名)
basename 路径 取得最后的文件名
dirname 路径 取得目录名
file(查看文件类型)
file 文件名 显示文件类型
查看文件内容:
cat(由第一行开始显示文件内容)
cat –A 文件 相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已
cat –b 文件 列出行号,仅针对非空白行做行号显示,空白行不标行号
cat –E 文件 将结尾的断行字符$显示出来
cat –n 文件打印出行号,连同空白行也会有行号,与-b的参数不同(常用)
cat –T 文件 将Tab按键以^I显示出来
cat –v 文件 列出一些看不出来的特殊字符
tac(从最后一行开始显示)
tac 文件
nl(添加行号打印)
cat –n / vim命令行时:set nu
nl –b a 文件 表示不论是否为空行,也同样列出行号(类似cat -n)
nl –b t 文件 如果有空行,空的那一行不列出行号(默认)
nl –n ln 文件 行号在屏幕的最左方显示
nl –n rn 文件 行号在自己字段的最右方显示,且不加’0’
nl –n rz 文件 行号在自己字段的最右方显示,且加’0’
nl –w num文件 行号字段占用的位数
more(一页一页的显示文件内容)
more 文件
在more运行的过程中的命令:
空格键:向下翻一页
Enter:向下滚动一行
/字符串:在这个显示的内容中,向下查询字符串
:f;立刻显示出文件名以及目前显示的行数
q:立刻离开more,不再显示该文件内容
b或ctrl –b:往回翻页,这操作只对文件管用
less(一页一页的显示文件内容,可向前翻页)
less 文件
在less运行的过程中的命令:
空格键或PageDown:向下翻一页
PageUp:向上翻一页
/字符串:在这个显示的内容中,向下查询字符串
?字符串:在这个显示的内容中,向上查询字符串
n;重复前一个查询
N:反向重复前一个查询
q:立刻离开less,不再显示该文件内容
head(取出前几行)
head 文件 默认取出文件的前10行
head –n num 文件 显示文件的前num行
head –n –num 文件 不显示文件的后num行
tail(取出后几行)
tail 文件 默认取出文件的后10行
tail –n num 文件 显示文件的后num行
tail –f 文件 持续检测后面所接的文件名,要等到按下ctrl-c才会结束tail的检测
文件名的查询:
which(寻找执行文件)
which –a 命令 将所有PATH目录中可以找到的命令均列出,而不只是第一个被找到的命令名称
whereis(寻找特定的文件)
whereis –b 文件或目录名 只找二进制格式的文件
whereis –m 文件或目录名 只找在说明文件manual路径下的文件
whereis –s 文件或目录名 只找source源文件
whereis –u 文件或目录名 查找不在上述三个选项当中的其他特殊文件
locate(寻找特定的文件)
locate –i 文件部分名称 忽略大小写的差异
locate –r 文件部分名称 后面可接正则表达式
find(寻找特定的文件)
find [PATH] [option] [action]
1.与时间有关的参数:atime、ctime、mtime
find [PATH] -mtime n 列出在n天之前的一天之内被更改过的文件
find [PATH] -mtime +n列出在n天之前(不含n天本身)被更改过的文件
find [PATH] -mtime -n列出在n天之内(含n天本身)被更改过的文件
find [PATH] –new file file为一个存在的文件,列出比file还有新的文件名
2.与用户或用户组名有关的参数
find [PATH] –uid n n为用户的帐号ID,这个UID记录在/etc/passwd里面与帐号名称对应的数字
find [PATH] –gid n n为用户组名的ID,这个GID记录在/etc/group中
find [PATH] –user name name为用户的帐号名称
find [PATH] –group name name为用户组名
find [PATH] –nouser寻找文件的所有者不存在/etc/passwd的人
find [PATH] –nogroup寻找文件的所有用户组不存在/etc/group中的文件
3.与文件权限及名称有关的参数
vim程序编辑器:
vi 文件名 若文件不存在,创建新文件;若文件已存在,打开旧文件。
一般模式:以vi打开一个文件就直接进入一般模式(默认模式)。
移动光标:
h或←:光标向左移动一个字符
j或↓:光标向下移动一个字符
k或↑:光标向上移动一个字符
l或→:光标向右移动一个字符
n或nj或n↓:光标向下移动n行
G:移动到文件的最后一行
nG:移动到文件的第n行
gg:移动到文件的第一行
0:移动到这一行的最前面字符处
$:移动到这一行的最后面字符处
+:光标移动到非空格符的下一行
-:光标移动到非空格符的上一行
n+空格:光标向右移动到到这一行的n个字符
ctrl+f:屏幕向下移动一页
ctrl+b:屏幕向上移动一页
ctrl+d:屏幕向下移动半页
ctrl+u:屏幕向上移动半页
H:光标移动到这个屏幕的最上方那一行的第一个字符
M:光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
查找与替换:
/word:向下寻找一个名称为word的字符串
?word:向上寻找一个名称为word的字符串
n:重复前一个查找的操作
N:与n刚好相反,为反向进行前一个查找操作
:n1,n2s/word1/word2/g:在第n1行与n2行之间寻找word1这个字符串,并将该字符串替换为word2
:1,$s/word1/word2/g:从第一行到最后一行查找word1这个字符串,并将该字符串替换为word2
:1,$s/word1/word2/gc:从第一行到最后一行查找word1这个字符串,并将该字符串替换为word2,且在替换前显示提示字符给用户确认是否需要替换
删除、复制与粘贴:
x,X:x为向后删除一个字符,X为向前删除一个字符
nx:向后联系删除n个字符
dd;删除光标所在的一整行
ndd:删除光标所在的向下n行
d1G:删除光标所在到第一行的所有数据
dG:删除从光标所在到最后一行的所有数据
d0:删除光标所在处到该行最前面的一个字符
d$:删除光标所在处到该行最后面的一个字符
yy:复制光标所在那一行
nyy:复制光标所在的向下n行
y1G:复制光标所在行到第一行的所有数据
yG:复制光标所在行到最后一行的所有数据
y0:复制光标所在处到该行行首的所有数据
y$:复制光标所在处到该行行尾的所有数据
p,P:p为将已复制的数据在光标下一行粘贴,P将已复制的数据在光标上一行粘贴
J:讲光标所在行与下一行的数据结合成同一行
nc:重复删除n个数据
u:复原前一个操作
ctrl+r:重做上一个操作
. :重复前一个操作
编辑模式:一般模式时,按下i、o、a、r进入编辑模式。在界面左下方会出现INSERT或REPLACE的字样时,才可编辑。按下【Esc】退出编辑模式回到一般模式。
i,I:i为从目前光标所在处插入,I为目前所在行的第一个非空格符处开始插入
a,A:a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
o,O:o为目前光标所在的下一行处插入新的一行,O为在目前光标所在处的上一行插入新的一行
r,R:r只会替换光标所在的那一个字符一次,R会一直替换光标所在的文字,直到按下【Esc】键为止
命令模式:一般模式时,输入:、/、?时,进入编辑模式。按下【Esc】退出命令模式回到一般模式。
:w:将编辑的数据写入硬盘中
:w!:若文件为只读,强制写入该文件,但还与文件的权限有关
:q:离开vi
:q!:若曾修改过文件,又不想存储,使用!为强制离开不保存文件
:wq:强制保存后离开
ZZ:若文件没有改动,则不保存离开,若文件改动过,则保存后离开
:w[filename]:将编辑的数据保存在另一个文件
:r[filename]:在编辑的数据中,读入另一个文件的数据
:n1,n2 w [filename]:将n1,n2的内容保存成filename这个文件
:! command 暂时离开vi到命令行模式下执行command的显示结果
:set nu 显示行号,设置之后,会在每一行的前缀显示该行的行号
:set nonu 与set nu 相反,为取消行号
vim块选择
v:字符选择,会将光标经过的地方反白选择
V:行选择,会将光标经过的行反白选择
ctrl+v:块选择,可以用长方形的方式选择数据
y:将反白的地方复制
d:将反白的地方删除
vim多窗口功能
:sp[filename] 打开一个新窗口,如果有加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容
Ctrl+w+j/↓:先按下【ctrl】不放,再按下w后放开所有的按键,然后再按下↓,则光标移动到下方窗口
Ctrl+w+k/↑:先按下【ctrl】不放,再按下w后放开所有的按键,然后再按下↑,则光标移动到上方窗口
Ctrl+w+q:结束下方窗口,其实就是移动到下方窗口,然后:q离开
压缩与解压文件:
gzip:扩展名自动创建为.gz,可以解开compress、zip和gzip等软件压缩的文件
gzip –c 文件名 将压缩的数据输出到屏幕上,可通过数据流重定向来处理
gzip –d 文件名解压缩的参数
gzip –t 文件名 可以用来检验一个压缩文件的一致性,看看文件有无错误
gzip –v 文件名 可以显示处原文件/压缩文件的压缩比等信息
gzip –# 文件名 压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好默认是-6
zcat 文件名.gz 解压缩文件
bzip2:扩展名自动创建为.bz2
bzip2 –c 文件名 将压缩过程中产生的数据输出到屏幕上
bzip2 –d 文件名解压缩的参数
bzip2 –k 文件名 保留原文件,而不会删除原始的文件
bzip2 –z 文件名 压缩的参数
bzip2 –v 文件名 可以显示处原文件/压缩文件的压缩比等信息
gzip –# 文件名 压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好默认是-6
bcat 文件名.bz2 解压缩文件
打包:
tar(打包、压缩、查询、解压)
打包与压缩 tar [–j][-z][cv][ –f 文件名]
查看文件名 tar [–j][-z][tv] [–f 文件名]
解压缩 tar [–j][-z][xv] [–f 文件名][-C 目录]
-c:新建打包文件,可搭配-v来查看过程中被打包的文件名
-t:查看打包文件的内容含有哪些文件名
-x:解打包或解压缩的功能,可以搭配-C在特定目录解开
-j:通过bzip2的支持进行压缩或解压缩,此时文件名最好是*.tar.bz2
-z:通过gzip的支持进行压缩或解压缩,此时文件名最好是*.tar.gz
-v:在压缩或解压缩的过程中,将正在处理的文件名显示出来
-f 文件名:-f后面接要被处理的文件名
-C 目录:这个参数用在解压缩时,若要在特定目录解压缩
-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P:保留绝对路径,即允许备份数据中含有根目录存在之意
--exclude=FILE:在压缩的过程中,不打包FILE
压缩:tar –jcv –f 文件名.tar.bz2
查询:tar –jtv –f 文件名.tar.bz2
解压缩:tar –jxv –f 文件名.tar.bz2 –C欲解压缩的目录