了解Linux常用命令

本文详细介绍了Linux系统中创建和删除目录、改变工作目录(cd)、文件和目录的复制与移动(cp,mv)、文件类型检测(file)、文件统计(wc)、创建和更新文件(touch)以及软链接(ln)的基本操作方法。
摘要由CSDN通过智能技术生成

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 ~]#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值