cd 切换工作目录命令

  • cd(英文全拼:change directory)切换目录


命令格式:cd [-选项] [目录名]


  • 提示:目录名称可以是绝对路径或相对路径,如果不指定目录名称,则切换到当前用户的家目录~
  • 常用快捷操作:
  • ~ 表示为家目录-
  • . 表示为当前目录
  • .. 表示上一级目录
  • -可在两路径之间来回切换

pwd 打印当前所在目录命令

  • pwd(英文全拼:print work directory)打印当前所在的工作目录,执行pwd命令后,可显示当前所在的工作目录的绝对路径名称
  • 命令格式:pwd [-选项]


[root@localhost ~]# cd /opt/a/b/c/d

#打印当前所在目录绝对路径

[root@localhost d]# pwd

/opt/a/b/c/d

#切换到用户家目录

[root@localhost d]# cd ~

[root@localhost ~]# pwd

/root

[root@localhost ~]# cd /opt/a/b/c/d

[root@localhost d]# pwd

/opt/a/b/c/d

[root@localhost d]# cd

[root@localhost ~]# pwd

/root

[root@localhost ~]# cd /bin

[root@localhost bin]# pwd

/bin

[root@localhost bin]# cd /boot

[root@localhost boot]# pwd

/boot

[root@localhost boot]# ls

[root@localhost boot]# cd /dev

[root@localhost dev]# pwd

/dev

[root@localhost dev]# ls

[root@localhost dev]# cd /etc

[root@localhost etc]# pwd

/etc

[root@localhost etc]# ls

[root@localhost etc]# ls /

bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

#"."表示当前所在目录,对于cd命令而言作用不大

[root@localhost etc]# cd .

[root@localhost etc]# cd /opt/a/b/c/d

[root@localhost d]# pwd

/opt/a/b/c/d

#".."切换到当前目录的上一级目录

[root@localhost d]# cd ..

[root@localhost c]# pwd

/opt/a/b/c

[root@localhost c]# cd ..

[root@localhost b]# pwd

/opt/a/b

[root@localhost b]# cd ..

[root@localhost a]# cd ..

[root@localhost opt]# pwd

/opt

[root@localhost opt]# cd ..

[root@localhost /]# cd ..

[root@localhost /]# cd

[root@localhost ~]# ls

[root@localhost ~]# cd /opt/a/b/c/d

[root@localhost d]# pwd

/opt/a/b/c/d

#"-"可在两个路径之间来回切换

[root@localhost d]# cd /etc/yum

[root@localhost yum]# cd -

/opt/a/b/c/d

[root@localhost d]# pwd

/opt/a/b/c/d

[root@localhost d]# cd -

/etc/yum

[root@localhost yum]# cd -

/opt/a/b/c/d

[root@localhost d]# cd -

/etc/yum


绝对路径与相对路径

  • 绝对路径:以/(根)为起点,到达你想去的目标目录称为绝对路径
  • 相对路径:以当前路径为起点,到达你想去的目标目录


#绝对路径以"/"作为起点,到达目标路径

[root@localhost ~]# cd /opt/a/b/c/d

[root@localhost d]# pwd

/opt/a/b/c/d

#切换到上一级目录

[root@localhost c]# cd ..

[root@localhost b]# pwd

/opt/a/b

[root@localhost b]# ls

c

#相对路径以当前路径作为起点到达目标路径

[root@localhost b]# cd c/

[root@localhost c]# pwd

/opt/a/b/c

[root@localhost c]# cd ..

[root@localhost b]# cd ..

[root@localhost a]# cd ..

[root@localhost opt]# pwd

/opt


rmdir 删除空目录命令

  • rmdir(英文全拼:remove directory)删除空目录
  • 命令格式:rmdir [-选项] 目录名


#rmdir只能删除空目录,如果目录下存在数据无法删除

[root@localhost ~]# rmdir /opt/a

rmdir: 删除 "/opt/a" 失败: 目录非空

[root@localhost ~]# ls -R /opt/a

/opt/a:

b

/opt/a/b:

c

/opt/a/b/c:

d

/opt/a/b/c/d:

[root@localhost ~]# rmdir /opt/a/b/c/d

[root@localhost ~]# ls -R /opt/a

/opt/a:

b

/opt/a/b:

c

/opt/a/b/c:

[root@localhost ~]# rmdir /opt/a/b/c

[root@localhost ~]# ls -R /opt/a/b

/opt/a/b:

[root@localhost ~]# rmdir /opt/a/b

[root@localhost ~]# ls -R /opt/a

/opt/a:

[root@localhost ~]# rmdir /opt/a

[root@localhost ~]# ls /opt

rh student xx

[root@localhost ~]# rmdir /opt/

rmdir: 删除 "/opt/" 失败: 目录非空


touch 创建文件命令

  • touch 命令用于创建新的空白文件
  • 命令格式:touch [-选项] 文件名


#在当前路径创建空文件

[root@localhost ~]# touch hello

[root@localhost ~]# ls

#在当前路径同时创建多个文件

[root@localhost ~]# touch t1 t2 t3 t4

[root@localhost ~]# ls

#在指定路径同时创建多个文件

[root@localhost ~]# touch /opt/test1 /opt/test2 /opt/test3

[root@localhost ~]# ls /opt

rh student test1 test2 test3 xx

#如果存在同名目录时,无法创建

[root@localhost ~]# mkdir test

mkdir: 无法创建目录"test": 文件已存在

#如果存在同名文件时,touch命令没有提示,但原有文件不会被覆盖

[root@localhost ~]# touch t1

#对于目录而言,只有单个目录的时候,"/"可有可无

[root@localhost ~]# ls /opt/

rh student test1 test2 test3 xx

[root@localhost ~]# ls /opt

rh student test1 test2 test3 xx

#对于目录而言,查看目录下的内容时,必须要有"/"

[root@localhost ~]# ls /opt/xx

oo

#对于文件而言,后边绝对不能有"/"

[root@localhost ~]# ls /opt/test1

/opt/test1

[root@localhost ~]# ls /opt/test1/

ls: 无法访问/opt/test1/: 不是目录

cp 复制命令

  • cp(英文全拼:copy file)用于复制文件或目录,cp命令在复制时也可修改目录或文件名字
  • 命令格式:cp [-选项] 源文件或目录 目标目录
  • 常用选项:
  • -p 保留源文件属性不变(如:修改时间、归属关系、权限)
  • -r 复制目录(包含该目录下所有的子目录和文件)


#复制当前目录文件到/opt目录(相对路径方式复制)

[root@localhost ~]# cp t1 /opt/

[root@localhost ~]# ls /opt

rh student t1 test1 test2 test3 xx

#复制文件到/opt目录(绝对路径方式复制)

[root@localhost ~]# cp /root/t2 /opt

[root@localhost ~]# ls /opt

rh student t1 t2 test1 test2 test3 xx

#同时复制多个文件

[root@localhost ~]# cp t3 t4 /opt/

[root@localhost ~]# ls /opt

#创建目录

[root@localhost ~]# mkdir abc

#使用-r对目录执行复制

[root@localhost ~]# cp -r abc /opt

[root@localhost ~]# ls /opt

#同时复制多个目录

[root@localhost ~]# mkdir abc1 abc2 abc3

[root@localhost ~]# cp -r abc1 abc2 abc3 /opt

[root@localhost ~]# ls /opt

#复制hello文件到/opt并改名为hello.txt

[root@localhost ~]# cp hello /opt/hello.txt

[root@localhost ~]# ls /opt

#复制xxxx目录到/opt并改名xxoo

[root@localhost ~]# mkdir xxxx

[root@localhost ~]# cp -r xxxx /opt/xxoo

[root@localhost ~]# ls /opt

#使用"."配合cp命令执行复制

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@localhost network-scripts]# cp /root/t1 .

[root@localhost network-scripts]# ls

#操持属性不变复制文件

[root@localhost ~]# cp -p anaconda-ks.cfg /opt

cp:是否覆盖"/opt/anaconda-ks.cfg"? y

[root@localhost ~]# ls -l /opt/anaconda-ks.cfg

-rw-------. 1 root root 1800 3月 13 17:34 /opt/anaconda-ks.cfg

#对比以上两个文件的详细属性信息(最后一次修改时间)

[root@localhost ~]# ls -l anaconda-ks.cfg

-rw-------. 1 root root 1800 3月 13 17:34 anaconda-ks.cfg

#这两个操作代表什么意思?

[root@localhost ~]# cp -r xxxx /mnt/oooo #拷贝并改名

[root@localhost ~]# cp -r xxxx /mnt/oooo #拷贝

mv 移动命令

  • mv(英文全拼:move file)用于移动文件或目录到其他位置,也可用于修改目录或文件名
  • 命令格式:mv [-选项] 源文件... 目标路径


#移动当前路径hello文件到/mnt目录

[root@localhost ~]# mv hello /mnt

[root@localhost ~]# ls /mnt

hello home oooo test

#同时移动多个文件

[root@localhost ~]# mv t1 t2 t3 t4 /mnt

[root@localhost ~]# ls /mnt

hello home oooo student1 t1 t2 t3 t4 test

#移动/opt目录下文件到/mnt

root@localhost ~]# mv /opt/test1 /opt/test2 /opt/test3 /mnt/

[root@localhost ~]# ls /mnt

hello home oooo student1 t1 t2 t3 t4 test test1 test2 test3

#移动目录

[root@localhost ~]# mv student1 /mnt

[root@localhost ~]# ls /mnt

hello home oooo student1 test

#移动文件并改名

[root@localhost ~]# mv hello.txt /media/hello

[root@localhost ~]# ls /media/

hello

#移动目录并改名

[root@localhost ~]# mv test /media/testxx

[root@localhost ~]# ls /media/

hello testxx


cat 查看文件内容命令

  • cat (英文全拼:concatenate)命令用于查看文本文件内容
  • 命令格式:cat [选项] 文件名
  • 常用选项
  • -n #查看文件时以行号的形式显示文件内容


#查看文件内容

[root@localhost ~]# cat anaconda-ks.cfg

[root@localhost ~]# cat initial-setup-ks.cfg

[root@localhost ~]# cat /etc/hosts

#查看网卡文件内容

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32

...

NAME="ens32" //网卡名

UUID="16085f4c-f690-4058-b29e-d55c73387026"

DEVICE="ens32"

ONBOOT="yes"

IPADDR="192.168.0.50" //网卡IP地址

PREFIX="24"                         //子网掩码

GATEWAY="192.168.0.254" //网管

DNS1="114.114.114.114" //DNS

#查看当前系统用户基本信息文件内容

[root@localhost ~]# cat /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

#查看当前系统主机名配置文件内容

[root@localhost ~]# cat /etc/hostname

localhost.localdomain

#查看当前系统版本信息文件内容

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

#查看当前系统开机自动挂载配置文件内容

[root@localhost ~]# cat /etc/fstab

#查看系统组基本信息文件内容

[root@localhost ~]# cat /etc/group

#使用"-n"以行号形式显示文件内容

[root@localhost ~]# cat -n /etc/passwd

[root@localhost ~]# cat -n /etc/hostname

[root@localhost ~]# cat -n /etc/fstab

[root@localhost ~]# cat -n /etc/group

[root@localhost ~]# cat -n /etc/services


less命令

  • less工具是对文件的输出进行分页显示的工具,常用于查看内容量较大的文件
  • 命令格式:less [-选项] 文件
  • 常用选项:
  • -N #以行号形式显示文件内容
  • 使用技巧:
  • 键盘上下键逐行查看
  • pgdn :向上翻一页(Fn + 上键)
  • pgup :向下翻一页(Fn + 下键)
  • /字符串 :搜索指定字符串(n从上向下搜索,N从下向上搜索)
  • G:直接跳转到文件最后一行
  • gg:直接跳转到文件行首
  • q :退出


[root@localhost ~]# less -N /etc/services


head与tail命令

  • head命令:用来显示文件开头部分内容,默认显示文件开头10行内容
  • 命令格式:head [选项] 参数
  • 常用选项:
  • -n<行数> 指定显示的行数
  • -f 动态显示


[root@localhost ~]# head /etc/passwd

[root@localhost ~]# head /etc/fstab

[root@localhost ~]# head /etc/group

[root@localhost ~]# head /etc/hostname

[root@localhost ~]# head /etc/hosts

[root@localhost ~]# head /etc/sysconfig/network-scripts/ifcfg-ens32

#查看存放DNS配置文件信息

[root@localhost ~]# head /etc/resolv.conf

#使用-n指定显示文件前多少行内容

[root@localhost ~]# head -n 5 /etc/passwd

[root@localhost ~]# head -n 6 /etc/passwd

[root@localhost ~]# head -n 15 /etc/passwd

[root@localhost ~]# head -n 20 /etc/passwd


  • tail命令:用来显示文件末尾部分内容,默认显示文件末尾10行内容
  • 命令格式:tail [选项] 参数
  • 常用选项:-n<行数> 指定显示的行数 -f 动态显示


[root@localhost ~]# tail /etc/passwd

#使用"-n"指定显示文件末尾多少行内容

[root@localhost ~]# tail -n 5 /etc/passwd

[root@localhost ~]# tail -n 5 /etc/sysconfig/network-scripts/ifcfg-ens32

IPADDR="192.168.0.50"

PREFIX="24"

GATEWAY="192.168.0.254"

DNS1="114.114.114.114"

IPV6_PRIVACY="no"

#动态查看文件内容

[root@localhost ~]# touch t1

root@localhost ~]# tail -f t1

#另开一个终端向文件写入内容

[root@localhost ~]# echo 123 > t1


rm删除命令

  • rm(英文全拼:remove)命令用于删除文件或者目录。
  • 命令格式:rm [-选项…] 目录或文件…
  • 常用选项
  • -f 强制删除
  • -r 删除目录
  • "*"特殊字符:系统常用符号,用来代表任意字符


[root@localhost ~]# ls /opt

abc abc1 abc2 abc3 anaconda-ks.cfg hello.txt home rh student t1 t2 t3 t4 xx xxoo

[root@localhost ~]# ls /mnt

hello home oooo student1 t1 t2 t3 t4 test test1 test2 test3

#删除指定目录下文件

[root@localhost ~]# rm /opt/anaconda-ks.cfg

rm:是否删除普通文件 "/opt/anaconda-ks.cfg"?y #默认需要确认(y|n)

#查看文件是否被成功删除

[root@localhost ~]# ls /opt

abc abc1 abc2 abc3 hello.txt home rh student t1 t2 t3 t4 xx xxoo

[root@localhost ~]# rm /opt/hello.txt

rm:是否删除普通空文件 "/opt/hello.txt"?y

#同时删除目录下指定文件

[root@localhost ~]# rm /opt/t1 /opt/t2 /opt/t3 /opt/t4

rm:是否删除普通空文件 "/opt/t1"?y

rm:是否删除普通空文件 "/opt/t2"?y

rm:是否删除普通空文件 "/opt/t3"?y

rm:是否删除普通空文件 "/opt/t4"?y

#查看文件是否被成功删除

[root@localhost ~]# ls /opt

abc abc1 abc2 abc3 home rh student xx xxoo

#使用"-f"强制删除文件(无需确认,直接删除)

[root@localhost ~]# rm -f /mnt/hello

[root@localhost ~]# ls /mnt

home oooo student1 t1 t2 t3 t4 test test1 test2 test3

#同时强制删除多个文件

[root@localhost ~]# rm -f /mnt/t1 /mnt/t2 /mnt/t3 /mnt/t4

[root@localhost ~]# ls /mnt

#删除目录

[root@localhost ~]# rm -r /opt/abc

rm:是否删除目录 "/opt/abc"?y

[root@localhost ~]# ls /opt

abc1 abc2 abc3 home rh student xx xxoo

#同时删除多个目录

[root@localhost ~]# rm -r /opt/abc1 /opt/abc2 /opt/abc3

rm:是否删除目录 "/opt/abc1"?y

rm:是否删除目录 "/opt/abc2"?y

rm:是否删除目录 "/opt/abc3"?y

[root@localhost ~]# ls /opt

home rh student xx xxoo

#同时强制删除多个目录

[root@localhost ~]# rm -rf /opt/home /opt/student /opt/xx /opt/xxoo

[root@localhost ~]# ls /opt

rh

#创建目录与文件

[root@localhost ~]# touch /opt/t1

[root@localhost ~]# mkdir /opt/test

[root@localhost ~]# ls /opt

rh t1 test

#rm命令在删除目录时,包含改目录及目录下所有数据全部删除

[root@localhost ~]# rm -rf /opt/

[root@localhost ~]# ls /

[root@localhost ~]# ls /mnt

home oooo student1 test test1 test2 test3

#使用"*"通配任意所有字符,删除/mnt目录下所有数据

[root@localhost ~]# rm -rf /mnt/*

[root@localhost ~]# ls /mnt