Linux常用基本操作

常用命令如下:

cd,ls,pwd,tree,mkdir,touch,cp,rmdir,rm,mv,tar,zip,unzip,find,chmod,chgrp,chown,umask,cat,head,tail,more,less,dd,if,ln,cmp,chatt,

 

 

 

路径

/  开头的是绝对路径

./  开头的是相对路径

home/  当前目录下的home文件夹

/home/  当前目录下的home文件夹

./home/  根目录下的home文件夹

 


 

 

cd

切换

cd  进入用户主目录

cd ~  进入用户主目录

cd -   返回进入此目录之前所在的目录

cd ..   返回上级目录

cd ../..  返回上2级目录

 


 

 

ls

显示目录列表

参数:

-a:显示除隐藏文件“.”和“..”;一般情况下. 和..对我们来说没有任何用途。所以这个参数基本上不使用。

-A:显示除隐藏文件“.”和“..”以外的所有文件列表;当要显示隐藏文件时候使用这个选项。 -C:多列显示输出结果。这是默认选项;

-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;

-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道 FIFO,“=”表示 sockets 套接字。当文件为普通文件时,不输出任何标识符;

-b:将文件中的不可输出的字符以反斜线“\”加字符编码的方式输出;(比较少用) -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的 ctime 字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;

-d:仅显示目录名,而不显示目录下的内容列表,只显示 . 没有什么用途; -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;

-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;

--file-type:与“-F”选项的功能相同,但是不显示“*”;

-k:与“-l”连用时,以 KB(千字节)为单位显示文件大小;

-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括:文件类型、权限模式、硬连接数、所有者、所属组、文件大小(字节为单位)、最后修改时间和文件名; -m:用“,”号区隔每个文件和目录的名称;

-n:以用户识别码和群组识别码替代其名称;

-r:以文件名反序排列并输出目录内容列表;

-s:显示文件和目录的大小,以区块(1 块是 1KB)为单位;

-h:与-l 或-s 联合使用才有效果,显示文件和目录的大小,会在文件大小数据后面添加 M 或 Kb 单位,这个比较直观,使用频率高; -t:用文件和目录的更改时间排序;(最新的排列在前面)

-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

-R:递归处理,将指定目录下的所有文件及子目录一并处理;

--full-time:列出完整的日期与时间;

--color[=WHEN]:使用不同的颜色高亮显示不同类型的。

 


 

 

pwd

显示当前绝对路径

 

-P:显示真实路径,而不是链接路径 

 


 

 

mkdir

创建目录(文件夹),可以递归创建

-m  设置目录权限

mkdir aaa  在当前目录下建一个文件名为aaa的目录

mkdir aaa/bbb/ccc/ -p  递归创建目录

mkdir -m 750 aaa   权限rwxrx----

 

读写执行对应权限如下

rwx 7 
rw- 6 
r-x 5 
r-- 4 
-wx 3 
-w- 2 
--x 1

 


 

 

touch

1、更新已有文件的时间; 2、创建新文件

-a:或--time=atime 或--time=access 或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题;
-m:或--time=mtime 或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;

 


 

 

cp

复制

-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;一般不用
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-b:覆盖已存在的文件目标前将目标文件备份

 

cp ../mary/homework/assign .

表示复制这个assign文件 到当前目录下

cp file /usr/men/tmp/file1

复制当前目录的file文件 到 usr/men/tmp/这个目录下 并起个新名叫 file1

cp -r /usr/men /usr/zh

复制men的全部文件及目录放到zh下

cp -i /usr/men m*.c /usr/zh

将men下所有m开头的c文件 都放入zh文件下

 


 

 

rmdir

删除空目录

 


 

 

rm

删除

-d:直接把欲删除的目录的硬连接数据删除成 0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r 或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。

 


 

 

mv

重命名、移动

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;(如果担心误删,可以先进行备份)
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

mv ex3 new1  将ex3 改名为new1

mv /usr/men/* .  将men下的所有文件移动到当前目录下

mv 2.txt /home/2-2.txt  将当前目录下的2.txt 移动到home下并改名为2-2.txt

 


 

 

tar

打包,压缩之前先打包。

-A 或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c 或--create:建立新的备份文件;
-C 解压文件到其他目录,当解压文件指定目标目录时候要使用这个参数指定; -d:记录文件的差别;
-x 或--extract 或--get:从备份文件中还原文件;
-t 或--list:列出备份文件的内容;
-z 或--gzip 或--ungzip:通过 gzip 指令处理备份文件;
-Z 或--compress 或--uncompress:通过 compress 指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v 或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持 bzip2 解压文件;
-v:显示操作过程; -xvf
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p 或--same-permissions:用原来的文件权限还原文件;
-P 或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N<日期格式>或--newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。

 

打包的使用:

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思

 

压缩的使用:

tar –xvf file.tar  解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2   解压 tar.bz2
tar –xZvf file.tar.Z   解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip

 

总结:

*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压

 


 

 

zip

创建zip格式的压缩包

-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;如:
删除压缩文件 test1.zip 中 test.MYI 文件
[root@mysql test]# zip -d test1.zip test.MYI
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件
内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用 MS-DOS 兼容格式的文件名称;
-l:压缩文件时,把 LF 字符置换成 LF+CR 字符;
-ll:压缩文件时,把 LF+cp 字符置换成 LF 字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
如下:
向压缩文件中 test1.zip 中添加 test. MYI 文件
[root@mysql test]# zip -m test1.zip test. MYI
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-x<范本样式>:压缩时排除符合条件的文件;
例如:向压缩文件中 test1.zip 中添加 test. MYI 文件
[root@mysql test]# zip -m test1.zip test. MYI
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在 UNIX 之类的系统下有效;
-z:替压缩文件加上注释;在 WINdows 下解压时可以看到所添加的注释,如下:
[root@localhost temp]# zip bin.zip -z
enter new zip file comment (end with .):
sdkjvsdsd 
skdvjnsd
sdjvn
.
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于 1~9 的数值。如:zip -r log.zip -9 bin 压缩率 9 -P<密码>:使用 zip 的密码选项;如下:
[root@localhost temp]# zip -P 123456 k.zip k 把 k 压缩成 k.zip 密码是 123456

 

将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/Blinux/html
上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在 Bliux
这个目录下,执行以下操作可以达到以上同样的效果:
zip -q -r html.zip html/
比如现在我的 html 目录下,我操作的 zip 压缩命令是:
zip -q -r html.zip *

 


 

 

unzip

用于解压zip的压缩包

-c:将解压缩文件的内容显示到屏幕上,并对字符做适当的转换;(一般不使用) 
-f:更新现有的文件; -l:显示压缩文件内所包含的文件; -p:与-c 参数类似,会将解压缩的内容显示到屏幕上,但不会执行任何的转换;(一般不使用)
-t:检查压缩文件是否正确; -u:与-f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中; -v:查看文件但是不解压 ; -z:仅显示压缩文件的备注文字,并不进行解压; -a:对文本文件进行必要的字符转换; -b:不要对文本文件进行字符转换; -C:压缩文件中的文件名称区分大小写; -j:不处理压缩文件中原有的目录路径; -L:将压缩文件中的全部文件名改为小写; -M:将输出结果送到 more 程序处理; -n:解压缩时不要覆盖原有的文件; -o:不必先询问用户,unzip 执行后覆盖原有的文件; -P<密码>:使用 zip 的密码选项; [root@localhost temp]# zip -P 123456 k.zip k 把 k 压缩成 k.zip 密码是 123456 -q:执行时不显示任何信息; -s:将文件名中的空白字符转换为底线字符; -X:解压缩时同时回存文件原来的 UID/GID; -d<目录>:指定文件解压缩后所要存储的目录; -x<文件>:指定不要处理.zip 压缩文件中的哪些文件; -Z:unzip-Z 等于执行 zipinfo 指令。

 

将压缩文件 text.zip 在当前目录下解压缩。
unzip test.zip
将压缩文件 text.zip 在指定目录/tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令不覆盖原先的文件。
unzip -n test.zip -d /tmp
查看压缩文件目录,但不解压。
unzip -v test.zip
将压缩文件 test.zip 在指定目录/tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令覆盖原先的文件。
unzip -o test.zip -d tmp/
将压缩文件 text.zip 在指定目录/tmp 下解压缩,如果已有相同的文件存在,要求 unzip 命令不覆盖原先的文件。
[root@mysql test]# unzip -n test.zip -d /tmp
查看压缩文件目录,但不解压。
[root@mysql test]# unzip -v test.zip
使用 unzip "*.zip" 
ls *.zip | xargs -n1 unzip
解压当前目录下的所有 zip 文件

 


 

 

find

查找文件 

find 路径 [选项] 内容

 

按文件名搜索:

-name: 按照文件名搜索;
-iname: 按照文件名搜索,不区分文件名大小写;
-inum: 按照 inode 号搜索;
find /-name yum.conf

查找名字叫yum.conf的文件,只能全词匹配,区分大小写。

当然也可以使用通配符。

 

按照文件大小搜索:

-size[+-]大小:按照指定大小搜索文件
find .-size -25k
find .-size +25k
find .-size -25M

分别是搜索比25k小的文件,比25k大的文件,比25M小的文件

 

按照修改时间搜索:

-atime [+-]时间: 按照文件访问时间搜索
-mtime [+-]时间: 按照文件内容修改时间搜索
-ctime [+-]时间: 按照文件状态修改时间搜索   ls -lc可查


-5:代表@内修改的文件。
5:代表前5~6天那一天修改的文件。
+5:代表6天前修改的文件。

 

 

find.-mtime -5

表示在前五天内修改过的文件

 

按权限搜索:

-perm 权限模式:査找文件权限刚好等于"权限模式"的文件
-perm -权限模式:査找文件权限全部包含"权限模式"的文件
-perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件
find.-perm 444

表示找一个权限刚刚好为444的文件

find .-perm -200

表示找包含权限为200的文件,比如777肯定包含200,但是177必然不包含200

find .-perm +444

表示查找包含权限444的文件,这里的包含,有一种就算包含

 

按照所有者身份查找:

-uid 用户 ID:按照用户 ID 査找所有者是指定 ID 的文件
-gid 组 ID:按照用户组 ID 査找所属组是指定 ID 的文件
-user 用户名:按照用户名査找所有者是指定用户的文件
-group 组名:按照组名査找所属组是指定用户组的文件
-nouser:査找没有所有者的文件
find.-user root

寻找所有者名为root的文件(Linux的文件一般也都是root)

 

按照文件类型搜索:

-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件
find /etc -type d

寻找etc文件目录下 的 目录文件

 


 

 

chmod

变更文件或目录的权限

-c 或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f 或--quiet 或——silent:不显示错误信息;
-R 或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v 或——verbose:显示指令执行过程;
chmod u+x,g+w f01

为f01这个文件 增添 自己可以执行 +x ,组员可以写入 +w 的权限

chmod u=rwx,g=rw,o=r f01

给f01这个文件设置权限 为 rwxrw-r--

chmod 764 f01

作用同上

chmod a+x f01

给f01这个文件的所有用户都加执行权限

 


 

 

chgrp

改变用户所属组

-c 或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f 或--quiet 或——silent:不显示错误信息;
-h 或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-R 或——recursive:递归处理,将指令目录下的所有文件及子目录一并理;
-v 或——verbose:显示指令执行过程;
chgrp -R mengxin /usr/meng

将usr/meng/目录下的所有子文件子目录更改组为 mengxin

 


 

 

chown

改变文件的所属者

-c 或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f 或--quite 或——silent:不显示错误信息;
-h 或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
-R 或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v 或——version:显示指令执行过程;
--dereference:效果和“-h”参数相同;
chown -R mengxin /usr/meng

将 .usr/meng下的文件和子目录所有者改为mengxin

 


 

 

cat

将文件内容显示出来

-n 或-number:有 1 开始对所有输出的行数编号;
-b 或--number-nonblank:和-n 相似,只不过对于空白行不编号;
-s 或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
cat test.c

显示test.c中的内容

cat test.c test2.c > file

将test test2 文件合并后放入文件file中

 


 

 

head

显示文件开头的内容,默认显示10行

-n <数字>:指定显示头部内容的行数;
-c <字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
head -n 5 log2014.log

显示log2014.log 这个文件的前5行

head -c 20 log2014.log

显示log2014.log 这个文件的前20个字节

head -c -32 log2014.log

显示除了后32个字节以外的内容

 


 

 

tail

输入文件尾部的内容

-c <N>或--bytes=<N>:输出文件尾部的 N(N 为整数)个字节内容;
-f <name/descriptor>或;--follow <nameldescript>:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n <N>或 --line=<N>:输出文件的尾部 N(N 位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出 tail 命令;
-q 或--quiet 或--silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或--sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v 或——verbose:当有多个文件参数时,总是输出各个文件名;
tail file 
(显示文件 file 的最后 10 行)
tail +20 file 
(显示文件 file 的内容,从第 20 行至文件末尾)
tail -c 10 file 
(显示文件 file 的最后 10 个字符)

 


 

 

more

以全屏的方式按页显示内容

按 Space 键:显示文本的下一屏内容。
按 Enter 键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按 H 键:显示帮助屏,该屏上有相关的帮助信息。
按 B 键:显示上一屏内容。
按 Q 键:退出 rnore 命令。
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。
more -dc file 

显示文件file中的内容,显示前先清屏,在文件最下方显示百分比

more -c -10 file

显示文件file中的内容,每10行显示一次

 


 

 

less

浏览文件中的内容,和more不同的是,它可以向前向后翻页

-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似 more 命令的百分比
-N 显示每行的行号
-o <文件名> 将 less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出 less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页

 


 

 

cmp

比较两个文件是否有差异

-c 或--print-chars:除了标明差异处的十进制字码之外,一并显示该字符所对应字符;
-i<字符数目>或--ignore-initial=<字符数目>:指定一个数目;
-l 或--verbose:标示出所有不一样的地方;
-s 或--quiet 或--silent:不显示错误信息;

 


 

 

 

 

 

 

 

cd,ls,pwd,tree,mkdir,touch,cp,rmdir,rm,mv,tar,zip,unzip,find,chmod,chgrp,chown,umask,cat,head,tail,more,less,dd,if,ln,cmp,chatt,

posted @ 2020-05-19 20:58  祁峰_1024  阅读(230)  评论(0编辑  收藏  举报