目录
语法2:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
指令与选项
什么是Linux的指令?
指在Linux终端(命令行)中输入的内容就称之为指令。如下
[root@localhost ~]# ls
一个完整的指令的标准格式:Linux通用的格式
#指令主体(空格) [选项](空格) [操作对象]
一个指令可以包含多个选项
操作对象也可以是多个
例如:需要让老孟帮忙去楼下超市买一瓶今麦郎水,在这个指令中“买东西”是指令的主体,买的水是操作的对象,今麦郎是操作的选项。
基础指令(重点掌握)
程序员不能丢掉Linux命令,就像西方不能没有耶路撒冷,夏洛不能没有冬梅,袁华不能没有一剪梅一样重要!所以必须会!
1、ls指令
含义:ls (list)
用法1:#ls
含义:列出当前工作目录下的所有文件/文件夹的名称
[root@localhost yum.repos.d]# ls
backup CentOS-Base.repo epel.repo
用法2:#ls 路径
含义:列出指定路径下的所有文件/文件夹的名称
[root@localhost ~]# ls /etc/yum.repos.d/
backup CentOS-Base.repo epel.repo
发现没,上面两个指令,虽然写法不一样,但是结果是一样滴!
关于路径(重要):
路径可以分为两种:相对路径、绝对路径。
相对路径:相对首先得有一个参照物(一般就是当前的工作路径);
相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。
绝对路径:绝对路径不需要参照物,直接从根“/”开始寻找对应路径;
用法3:#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l 路径
#ls -la 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
以列表形式展示
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1269 6月 28 04:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 6月 28 20:15 msk
上述列表中的第一列字符表示文档的类型,其中“-”表示改行对应的文档类型为文件,“d”表示文档类型为文件夹。
显示所有
[root@localhost ~]# ls -a
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc msk .tcshrc
在Linux中隐藏文档一般都是以“.”开头
以列表形式显示所有
[root@localhost ~]# ls -la
总用量 28
dr-xr-x---. 3 root root 146 6月 28 20:15 .
dr-xr-xr-x. 17 root root 224 6月 28 04:50 ..
-rw-------. 1 root root 1269 6月 28 04:51 anaconda-ks.cfg
-rw-------. 1 root root 2131 6月 27 22:51 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwxr-xr-x. 2 root root 6 6月 28 20:15 msk
-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
用法4:#ls -lh 路径
含义:列出指定路径下的所有文件/文件夹的名称(不包含隐藏的),以列表的形式并且在显示文档大小的时候以可读性较高的形式显示
[root@localhost ~]# ls -lh
总用量 4.0K
-rw-------. 1 root root 1.3K 6月 28 04:51 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 6月 28 20:15 msk
2、pwd指令
用法:#pwd (print working directory,打印当前工作目录)
[root@localhost ~]# pwd
/root
3、cd指令
命令:#cd (change directory,改变目录)
作用:用于切换当前的工作目录的
语法:#cd 路径
#当前在/目录下,使用绝对路径切换到/usr/local/下
[root@localhost ~]# cd /usr/local/
[root@localhost local]# pwd
/usr/local
#当前在/usr/local/目录中,使用相对路径切换到/usr/bin/中
[root@localhost local]# cd ../bin/
[root@localhost bin]# pwd
/usr/bin
补充:
在Linux中有一个特殊的符号“~”,表示当前用户的家目录。
切换的方式:#cd ~
4、mkdir指令
指令:mkdir (make directory,创建目录)
语法1:#mkdir 路径
【路径,可以是文件夹名称也可以是包含名称的一个完整路径】
#在当前目录下创建目录love
[root@localhost ~]# mkdir love
[root@localhost ~]# ls
anaconda-ks.cfg love msk
注意:ls列出的结果颜色说明,其中蓝色的名称表示文件夹,黑色的表示文件,绿色的其权限为拥有所有权限。
在指定路径下创建目录xuexihenku,例如在love目录中
[root@localhost ~]# mkdir love/xuexihenku
[root@localhost ~]# cd love/
[root@localhost love]# ls
xuexihenku
语法2:#mkdir -p 路径
含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错,-p表示递归创建
[root@localhost ~]# mkdir love/xuexihenku/a/b/c
mkdir: 无法创建目录"love/xuexihenku/a/b/c": 没有那个文件或目录
[root@localhost ~]# mkdir -p love/xuexihenku/a/b/c
[root@localhost ~]# ls love/xuexihenku/
a
[root@localhost ~]# ls love/xuexihenku/a/
b
[root@localhost ~]# ls love/xuexihenku/a/b/
c
语法3:#mkdir 路径1 路径2 路径3 ….
含义:表示一次性创建多个目录
[root@localhost ~]# ls
anaconda-ks.cfg love msk x y z
5、touch指令
指令:touch
作用:创建文件
语法:#touch 文件路径 【路径可以是直接的文件名也可以是路径】
[root@localhost ~]# cd x
#在目录x中创建文件1.txt
[root@localhost x]# touch 1.txt
[root@localhost x]# ls
1.txt
[root@localhost x]# cd
#使用路径方式在x目录中创建文件2.txt
[root@localhost ~]# touch x/2.txt
[root@localhost ~]# cd x
[root@localhost x]# ls
1.txt 2.txt
#一次性创建多个文件
[root@localhost x]# touch 3.txt 4.txt
[root@localhost x]# ls
1.txt 2.txt 3.txt 4.txt
6、cp指令
指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置
语法:#cp 被复制的文档路径 文档被复制到的路径
#将x中的4.txt复制到y中
[root@localhost x]# cp 4.txt ../y/
[root@localhost x]# cd ../y/
[root@localhost y]# ls
4.txt
注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。
复制文件夹时,需要添加选项【-r】,表示递归复制,否则目录将被忽略
[root@localhost ~]# cp y z
cp: 略过目录"y"
[root@localhost ~]# cp -r y z #加上选项-r表示递归复制,不会忽略目录y
[root@localhost ~]# ls
anaconda-ks.cfg love msk x y z
[root@localhost ~]# cd z
[root@localhost z]# ls
y
7、mv指令
指令:mv (move,移动,剪切)
作用:移动文档到新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
#移动目录y中文件4.txt到目录z中,相当于剪切,在目录y中不会再有4.txt
[root@localhost y]# mv 4.txt ../z/
[root@localhost y]# ls
[root@localhost y]# cd ../z/
[root@localhost z]# ls
4.txt y
#移动文件夹z到目录y中
[root@localhost ~]# mv z y
[root@localhost ~]# ls
anaconda-ks.cfg love msk x y
[root@localhost ~]# ls y/
z
另外,文件重命名也是mv指令
[root@localhost ~]# ls
a.txt love msk
#通过mv指令,将a.txt重命名为b.txt,本质就是将a.txt移动到当前目录,并重新命名为b.txt
[root@localhost ~]# mv a.txt b.txt
[root@localhost ~]# ls
b.txt love msk
8、rm指令
指令:rm (remove,移除、删除)
作用:移除/删除文档
语法:#rm 选项 需要移除的文档路径
选项:
-f:force,强制删除,不提示是否删除
-r:表示递归
#不带选项删除,需要确认是否删除
[root@localhost x]# rm 4.txt
rm:是否删除普通空文件 "4.txt"?y
[root@localhost x]# ls
1.txt 2.txt 3.txt
#加上选项 -f,表示强制删除,不需要确认
[root@localhost x]# rm -f 3.txt
[root@localhost x]# ls
1.txt 2.txt
#删除一个目录,需要加选项 -r,否则无法删除
[root@localhost y]# rm z
rm: 无法删除"z": 是一个目录
#以下删除还需要逐级进入目录中依次确认删除
[root@localhost y]# rm -r z
rm:是否进入目录"z"? y
rm:是否进入目录"z/y"? y
rm:是否删除普通空文件 "z/y/4.txt"?y
rm:是否删除目录 "z/y"?y
rm:是否删除普通空文件 "z/4.txt"?y
rm:是否删除目录 "z"?y
[root@localhost y]# ls
#避免频繁确认,删除文件夹时添加选项 -rf
[root@localhost ~]# rm -rf x
[root@localhost ~]# ls
anaconda-ks.cfg love msk y
#删除多个文档
[root@localhost ~]# ls
1.txt anaconda-ks.cfg love msk y
[root@localhost ~]# rm -rf 1.txt y #删除多个文档,可以是文件,也可以是文件夹
[root@localhost ~]# ls
anaconda-ks.cfg love msk
#删除目录下有公共特性的文档,例如都以a开头的
[root@localhost ~]# mkdir a #创建目录a
[root@localhost ~]# touch a1.txt a2.txt #创建文件a1.txt和a2.txt
[root@localhost ~]# ls
a a1.txt a2.txt anaconda-ks.cfg love msk
#这里的*表示通配符,也就是只要是a开头的文档即可,后面是什么字符无所谓
[root@localhost ~]# rm -rf a*
[root@localhost ~]# ls
love msk
9、输出重定向
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
>:覆盖输出,会覆盖掉原先的文件内容
>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#正常执行的指令 > / >> 文件的路径
注意:文件可以不存在,不存在则新建
[root@localhost ~]# ls
b.txt love ls.txt msk
#将ls执行结果覆盖到ls.txt中
[root@localhost ~]# ls > ls.txt
[root@localhost ~]# cat ls.txt
b.txt
love
ls.txt
msk
#执行ls -l 结果覆盖到ls.txt中,发现刚才ls.txt中数据被覆盖
[root@localhost ~]# ls -l > ls.txt
[root@localhost ~]# cat ls.txt
总用量 0
-rw-r--r--. 1 root root 0 6月 28 21:11 b.txt
drwxr-xr-x. 3 root root 24 6月 28 20:29 love
-rw-r--r--. 1 root root 0 6月 28 21:19 ls.txt
drwxr-xr-x. 2 root root 6 6月 28 20:15 msk
#执行ls,将结果追加到ls.txt
[root@localhost ~]# ls >> ls.txt
[root@localhost ~]# cat ls.txt
总用量 0
-rw-r--r--. 1 root root 0 6月 28 21:11 b.txt
drwxr-xr-x. 3 root root 24 6月 28 20:29 love
-rw-r--r--. 1 root root 0 6月 28 21:19 ls.txt
drwxr-xr-x. 2 root root 6 6月 28 20:15 msk
b.txt
love
ls.txt
msk
#若文件不存在会创建
[root@localhost ~]# ls #查看结果没有1.txt
b.txt love ls.txt msk
[root@localhost ~]# ls > 1.txt #覆盖重定向,发现没有1.txt,会创建出来1.txt,再覆盖
[root@localhost ~]# cat 1.txt
1.txt
b.txt
love
ls.txt
msk
10、cat指令
语法1:#cat 文件的路径
作用1:cat有直接打开一个文件的功能。
例如:查看网卡信息
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=76305285-cbd1-4af5-995d-6f8cbec8bb77
DEVICE=ens33
ONBOOT=yes
[root@localhost ~]#
语法2:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
作用2:cat还可以对文件进行合并
#1.txt中内容为“hello”
[root@localhost ~]# cat 1.txt
hello
#2.txt中内容为“ linux”
[root@localhost ~]# cat 2.txt
linux
#使用cat结合重定向进行合并
[root@localhost ~]# cat 2.txt >> 1.txt #使用>>将2中数据追加合并到1中,如果使用>则将2中数据覆盖合并到1中
[root@localhost ~]# cat 1.txt
hello
linux
好了,到这里常用得基础指令就说完了,抓紧练习吧
能够给大家带来价值的话,给个三连哦😘,小的祝各位看官万福金安😊
徒手摘星,爱而不得,世人万千,再难遇我。