1.1 创建和删除目录
创建目录(文件夹)命令是mkdir,语法如下。
[root@RedHat ~]# mkdir bdqn
或者
[root@RedHat ~]# mkdir -p bdqn1/bdqn2
这里的意思是在bdqn1下创建bdqn2,-p的意思是,如果bdqn1不存在,则会把bdqn1也创建出来。
使用bdqn用户登录,在当前目录下创建目录xx,命令如下。
[bdqn@RedHat ~]$ mkdir xx
在当前目录下创建目录11和目录22 。
[bdqn@RedHat ~]$ mkdir 11/22
mkdir: 无法创建目录 “11/22”: 没有那个文件或目录
[bdqn@RedHat ~]$
因为目录11不存在,所以想在目录11中创建22自然是创建不出来的,这里加上-p选项就可以了。
[bdqn@RedHat ~]$ mkdir -p 11/22
[bdqn@RedHat ~]$
删除目录的命令时rmdir,语法如下。
rmdir 目录
删除目录xx,命令如下。
[bdqn@RedHat ~]$ rmdir xx
[bdqn@RedHat ~]$
如果目录11还有目录22,执行命令删除目录11。
[bdqn@RedHat ~]$ mkdir 11
mkdir: 无法创建目录 “11”: 文件已存在
[bdqn@RedHat ~]$
因为目录11中还有目录22,所以rmdir无法直接删除目录11,需要把目录11中的内容全部清除才能删除目录11。这里可以利用后面讲的rm -rf命令来删除。
[bdqn@RedHat ~]$ rm -rf 11
[bdqn@RedHat ~]$
这里-r选项的意思是递归,如同剥洋葱,一层一层的剥。-f选项的意思是强制。
1.2 cd的用法
cd的主要作用是切换到其他目录,用法如下。
cd 路径
这里的路径可以是相对路径也可以是绝对路径,如果没有明确指定路径,则是当前路径,如。
cd test
test就表示当前路径下的一个目录,这种写法等同于
cd ./test
操作如下命令。
[bdqn@RedHat ~]$ mkdir -p aa/bb/cc/dd/ee/ff/{11,22}
[bdqn@RedHat ~]$
查看这个目录的结构。
[bdqn@RedHat ~]$ tree aa
aa
└── bb
└── cc
└── dd
└── ee
└── ff
├── 11
└── 22
7 directories, 0 files
[bdqn@RedHat ~]$
进入目录11,命令如下。
[bdqn@RedHat ~]$ cd aa/bb/cc/dd/ee/ff/11
[bdqn@RedHat 11]$ pwd
/home/bdqn/aa/bb/cc/dd/ee/ff/11
[bdqn@RedHat 11]$
这里cd后面直接跟aa,表示当前目录下的aa。
如果想切换到目录22,使用绝对路径的写法如下。
[bdqn@RedHat 11]$ cd /home/bdqn/aa/bb/cc/dd/ee/ff/22/
[bdqn@RedHat 22]$ pwd
/home/bdqn/aa/bb/cc/dd/ee/ff/22
[bdqn@RedHat 22]$
现在是在目录22上,目录22的上一层目录是ff。如果想切换到目录11,使用相对路径的写法如下。
[bdqn@RedHat 22]$ cd ../11/
[bdqn@RedHat 11]$ pwd
/home/bdqn/aa/bb/cc/dd/ee/ff/11
[bdqn@RedHat 11]$
不管在哪个目录下,只要输入cd,就可以切换到家目录。
[bdqn@RedHat 11]$ cd
[bdqn@RedHat ~]$ pwd
/home/bdqn
[bdqn@RedHat ~]$
直接输入cd等同于输入cd ~命令,这里~是一个变量,表示当前用户的家目录。也可以用~user表示用户的家目录。
1.3 拷贝和复制
如果想要拷贝文件或目录,可以使用cp命令,语法如下。
cp 选项 /path1/xx /path2/yy
如果/path2/yy是一个目录,意思是把/path1/xx拷贝到/path2/yy中。如果/path2/yy不存在或是一个文件,意思是把/path1/xx拷贝到/path2中,命名为yy。
下面的操作都是使用root用户做的,把/ect/hosts拷贝到/opt目录中。
[root@RedHat ~]# cp /etc/hosts /opt/
[root@RedHat ~]#
这里/opt是一个目录,那么这句话的意思是把/etc/hosts拷贝到/opt目录中。使用ls命令查看一下/opt中的内容。
[root@RedHat ~]# ls /opt/
hosts
[root@RedHat ~]#
把/etc/hosts拷贝到/opt中,命名为xx。使用ls命令查看一下/opt中的内容。
[root@RedHat ~]# cp /etc/hosts /opt/xx
[root@RedHat ~]# ls /opt/
hosts xx
[root@RedHat ~]#
原来并不存在/opt/xx,上面的操作是把/etc/hosts拷贝到/opt中,命名为xx。
看下面的例子。
[root@RedHat ~]# mkdir /opt/11
[root@RedHat ~]# cp /etc/hosts /opt/11
[root@RedHat ~]#
先创建目录/opt/11,因为/opt/11是一个目录,所以这里把/etc/hosts拷贝到/opt/11中,而不是把/etc/hosts拷贝到/opt之后命名为11。
[root@RedHat ~]# cp /etc/hosts /opt/11
cp:是否覆盖'/opt/11/hosts'? y
[root@RedHat ~]#
因为/opt/xx不是一个目录,所以这句话的意思是把/etc/hosts拷贝到/opt目录并命名为xx。因为/opt/xx已经存在了,所以会问是否覆盖,如果此时直接按【Enter】键,则是n的意思,即不覆盖。如果要覆盖必须输入“y”,按【Enter】键。
拷贝一个文件,相当于新创建了一个文件。除文件内容相同外,文件的时间显示的也是创建这个文件的时间。
[root@RedHat ~]# ls -l /etc/hosts /opt/xx
-rw-r--r--. 1 root root 158 9月 10 2018 /etc/hosts
-rw-r--r--. 1 root root 158 12月 1 12:04 /opt/xx
[root@RedHat ~]#
可以看到时间不一样。
拷贝一个文件时,如果想把文件的属性一起拷贝过去,就需要加上-p选项。
[root@RedHat ~]# cp -p /etc/hosts /opt/xx
cp:是否覆盖'/opt/xx'? y
[root@RedHat ~]# ls -l /etc/hosts /opt/xx
-rw-r--r--. 1 root root 158 9月 10 2018 /etc/hosts
-rw-r--r--. 1 root root 158 9月 10 2018 /opt/xx
[root@RedHat ~]#
这样看起来时间也都一致了。
下面用cp命令拷贝目录,把/etc拷贝到当前目录中。
[root@RedHat ~]# cp /etc/ .
cp: 未指定 -r;略过目录'/etc/'
[root@RedHat ~]#
此处没有成功,因为/etc是一个目录,cp需要加上-r选项才行,-r表示递归的意思。
[root@RedHat ~]# cp -r /etc/ .
[root@RedHat ~]#
删除这个/etc目录。
[root@RedHat ~]# rm -rf etc/
[root@RedHat ~]#
记住,不要写成rm -rf /etc/了。
如果拷贝目录,同时想保持目录属性不变,可以使用 -rp 选项,或者 -a 选项。-a 选项
中包括一系列的其他选项如-r,-p选项。
[root@RedHat ~]# cp -a /etc/ .
[root@RedHat ~]#
剪切所用的命令是mv,mv的语法如下。
mv 选项 /path1/xx /path2/yy
如果/path2/yy是一个目录,意思是把/patg/xx剪切到/path2/yy中。如果/path2/yy不存在或是一个文件,意思是把/path1/xx剪切到/path2并命名为yy。
把/opt/hosts剪切到当前目录中,命令如下。
[root@RedHat ~]# mv /opt/hosts .
[root@RedHat ~]# ls /opt/
11 xx
[root@RedHat ~]#
mv命令也用户重命名操作,如把/opt/下的xx重命名为yy。
[root@RedHat ~]# mv /opt/xx /opt/yy
[root@RedHat ~]# ls /opt/
11 yy
[root@RedHat ~]#
1.4 常见命令归纳
file命令用于判断什么类型的文件,语法如下。
[root@RedHat ~]# file /etc/hosts
/etc/hosts: ASCII text
[root@RedHat ~]#
wc用于统计文件的行数,单词数、字符数,语法如下。
[root@RedHat ~]# wc /etc/hosts
2 10 158 /etc/hosts
[root@RedHat ~]#
第一个数字2表示/etc/hosts有2行。第二个数字10表示/etc/hosts有10个单词,这里单词指的是以空格、【TAB】、逗号隔开的字符。第三个数字158表示/etc/hosts一共有158个字符,这里统计字符数包括了空格及行末我们看不到的换行符。
wc -l可以查看文件的行数,语法如下。
[root@RedHat ~]# wc -l /etc/hosts
2 /etc/hosts
[root@RedHat ~]#
wc -w 可以查看文件的单词数,语法如下。
[root@RedHat ~]# wc -w /etc/hosts
10 /etc/hosts
[root@RedHat ~]#
wc -c 可以查看文件的字符数,语法如下。
[root@RedHat ~]# wc -c /etc/hosts
158 /etc/hosts
[root@RedHat ~]#
touch 用于创建文件或者更新一个文件的时间,用法如下。
(1)查看/opt目录中的内容并创建文件aa1.txt。
[root@RedHat ~]# ls /opt/
11 yy
[root@RedHat ~]# touch /opt/aa1.txt
[root@RedHat ~]# ls /opt/
11 aa1.txt yy
[root@RedHat ~]#
(2)查看/etc/hosts文件的更新时间并更新/etc/hosts文件的更新时间。
[root@RedHat ~]# ls -l /etc/hosts
-rw-r--r--. 1 root root 158 9月 10 2018 /etc/hosts
[root@RedHat ~]# touch /etc/hosts
[root@RedHat ~]# ls -l /etc/hosts
-rw-r--r--. 1 root root 158 12月 1 15:45 /etc/hosts
[root@RedHat ~]#
ln 用于创建软链接,用法如下。
[root@RedHat ~]# ln -s /opt/yy /opt/zz
[root@RedHat ~]# ls -l /opt/zz
lrwxrwxrwx. 1 root root 7 12月 1 15:46 /opt/zz -> /opt/yy
[root@RedHat ~]#