1. mkdir 创建目录命令
mkdir(英文全拼:make directory)用于创建新目录
-
命令格式:mkdir [-选项] 目录名
-
常用选项:
-
-p 递归创建多个目录
-
-
注意事项:
-
目录还是文件的名字,除了以“/”以外的任意名称,“/”根目录,路径分隔符
-
文件或目录的名字长度不能超过255个字符
-
-
mkdir命令示例
#在当前所在目录创建test目录 [root@localhost ~]# mkdir test [root@localhost ~]# ls #在当前所在目录同时创建多个目录 [root@localhost ~]# mkdir test1 test2 test3 [root@localhost ~]# ls #指定在/tmp目录下创建abc目录 [root@localhost ~]# mkdir /tmp/abc [root@localhost ~]# ls /tmp abc #在指定目录下同时创建多个目录 [root@localhost ~]# mkdir /tmp/abc1 /tmp/abc2 /tmp/abc3 [root@localhost ~]# ls /tmp #在/opt目录下创建student,在当前目录创建student1..3 [root@localhost ~]# mkdir /opt/student student1 student2 student3 [root@localhost ~]# ls /opt rh student #mkdir默认无法在一个不存在的目录下创建目录,需要通过-p选项 [root@localhost ~]# mkdir /opt/xx/oo mkdir: 无法创建目录"/opt/xx/oo": 没有那个文件或目录 [root@localhost ~]# mkdir /opt/a/b/c/d mkdir: 无法创建目录"/opt/a/b/c/d": 没有那个文件或目录 #在/opt目录下递归创建目录 [root@localhost ~]# mkdir -p /opt/xx/oo [root@localhost ~]# ls /opt rh student xx [root@localhost ~]# mkdir -p /opt/a/b/c/d [root@localhost ~]# ls /opt a rh student xx #ls -R选项可以递归目录下所有内容 [root@localhost ~]# ls -R /opt/a /opt/a: b /opt/a/b: c /opt/a/b/c: d
2. cd 切换工作目录命令
cd(英文全拼:change directory)切换目录
命令格式:cd [-选项] [目录名]
-
提示:目录名称可以是绝对路径或相对路径,如果不指定目录名称,则切换到当前用户的家目录~
3. 绝对路径与相对路径
绝对路径:以/(根)为起点,到达你想去的目标目录称为绝对路径
相对路径:以当前路径为起点,到达你想去的目标目录(必须保证在同一层目录中)
-
常用快捷操作:
-
~ 表示为家目录(可以直接cd)
-
.. 表示上一级目录
-
-可在两路径之间来回切换
-
4. 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/ym [root@localhost yum]# cd - /opt/a/b/c/d [root@localhost d]# cd - /etc/yum
5. 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/" 失败: 目录非空
6. 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/: 不是目录
7. cp 复制命令
cp(英文全拼:copy file)用于复制文件或目录,cp命令在复制时也可修改目录或文件名字
-
命令格式:cp [-选项] 源文件或目录 目标目录
-
常用选项:
-
-p 保留源文件属性不变(如:修改时间、归属关系、权限)
-
-r 复制目录(包含该目录下所有的子目录和文件)
-
-
使用
.
配合cp命令执行复制(.
永远表示当前路径)
#复制当前目录文件到/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 #拷贝
8. mv 剪切命令
mv(英文全拼:move file)用于移动文件或目录到其他位置,也可用于修改目录或文件名
-
命令格式:mv [-选项] 源文件... 目标路径
-
使用
.
配合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
9. 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/centos-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
10. less命令
less工具是对文件的输出进行分页显示的工具,常用于查看内容量较大的文件
-
命令格式:less [-选项] 文件
-
常用选项:
-
-N #以行号形式显示文件内容
-
-
使用技巧:
-
键盘上下键逐行查看
-
pgdn :向下翻一页(Fn + 下键)
-
pgup :向上翻一页(Fn + 上键)
-
-
/字符串 :搜索指定字符串(n从上向下搜索,N从下向上搜索)
-
G:直接跳转到文件最后一行
-
gg:直接跳转到文件行首
-
:1000 #精准的定位到某一行
-
q :退出
-
[root@localhost ~]# less -N /etc/services
11. head与tail命令
head命令:用来显示文件开头部分内容,默认显示文件开头10行内容
-
命令格式:head [选项] 文件
-
常用操作:
-
-
<行数> 指定显示的行数
-
[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 [选项] 参数
-
常用操作:
-
-
<行数> 显示指定的行数 -
常用选项:
-
-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
12. 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
13. 软连接与硬连接
Linux中的链接文件类似于windows中的快捷方式
软链接特点:可以跨分区,可以对目录进行链接,源文件删除后,链接文件不可用
-
软链接命令格式:ln -s 源文件路径 目标路径
注意:创建链接文件时一定要写绝对路径,哪怕是在当前路径下,也要写绝对路径·
[root@localhost ~]# touch hello.soft [root@localhost ~]# ls #创建软连接(必须要绝对路径创建) [root@localhost ~]# ln -s /root/hello.soft /opt [root@localhost ~]# ls /opt #查看连接文件详细属性 [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft #提示:链接文件的权限最终取决于源文件的权限 #普通用户验证 [lisi@localhost ~]$ ls /opt hello.soft [lisi@localhost ~]$ ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft [lisi@localhost ~]$ cat /opt/hello.soft cat: /opt/hello.soft: 权限不够 #提示:由于源文件存放于/root目录下,而普通用户对/root目录没有任何权限,所以普通用户无法查看 #删除源文件 [root@localhost ~]# rm -f /root/hello.soft [root@localhost ~]# ls #山粗源文件后,软链接文件不可用 [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft #创建文件并创建软连接 [root@localhost ~]# touch hello.soft [root@localhost ~]# ln -s /root/hello.soft /opt [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:39 /opt/hello.soft -> /root/hello.soft #删除链接文件后,源文件仍然可用 [root@localhost ~]# rm -f /opt/hello.soft [root@localhost ~]# ls [root@localhost ~]# cat hello.soft #对目录创建软连接 [root@localhost ~]# ln -s /root/test1 /opt/ [root@localhost ~]# ls -ld /opt/test1 lrwxrwxrwx. 1 root root 11 3月 21 14:44 /opt/test1 -> /root/test1 3创建链接时一定要写目录或文件的绝对路径,哪怕是在当前路径下,也要写绝对路径 [root@localhost ~]# ln -s hello.soft /opt [root@localhost ~]# ls /opt hello.soft test1 [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 10 3月 21 14:47 /opt/hello.soft -> hello.soft
硬链接特点:硬连接不可以跨分区,不可以对目录进行链接,源文件删除后,链接文件仍然可用(类似与对文件做了一个备份)
-
硬链接命令格式:ln 源文件路径 目标路径
#创建文件,并创建硬连接 [root@localhost ~]# touch hello.hard [root@localhost ~]# ln /root/hello.hard /opt/ [root@localhost ~]# ls /opt hello.hard hello.soft test1 #向硬连接的源文件写入内容 root@localhost ~]# echo 123 > /root/hello.hard #查看源文件内容 [root@localhost ~]# cat /root/hello.hard 123 #查看链接文件内容,以同步更新 [root@localhost ~]# cat /opt/hello.hard 123 #向链接文件写入内容,查看源文件以同步更新 [root@localhost ~]# echo xx >> /opt/hello.hard #擦看源文件,以同步更新 [root@localhost ~]# cat /root/hello.hard 123 xx #硬连接文件的特点可以保持文件属性不发生改变 [root@localhost ~]# ls -l /root/hello.hard -rw-r--r--. 2 root root 7 3月 21 14:55 /root/hello.hard [root@localhost ~]# ls -l /opt/hello.hard -rw-r--r--. 2 root root 7 3月 21 14:55 /opt/hello.hard #并且硬连接文件的i节点号相同 [root@localhost ~]# ls -i /root/hello.hard 33711090 /root/hello.hard [root@localhost ~]# ls -i /opt/hello.hard 33711090 /opt/hello.hard #硬连接不允许对目录进行连接 root@localhost ~]# ln /root/test1 /opt ln: "/root/test1": 不允许将硬链接指向目录 #硬连接源文件删除后,链接文件仍然可用 [root@localhost ~]# rm -f /root/hello.hard [root@localhost ~]# cat /opt/hello.hard 123 xx #向硬连接文件写入内容 [root@localhost ~]# echo abc >> /opt/hello.hard [root@localhost ~]# cat /opt/hello.hard 123 xx abc #硬连接不允许跨分区 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sr0 11:0 1 4.3G 0 rom [root@localhost ~]# ln /root/hello.soft /boot ln: 无法创建硬链接"/boot/hello.soft" => "/root/hello.soft": 无效的跨设备连接
4. 关机与重启
linux下常用的关机命令有:shutdown、halt、poweroff、init
-
init 0 关机
-
halt #立刻关机
-
shutdown now #立刻关机
-
shutdown -h 10 #10分钟后自动关机
-
-
poweroff #立刻关机 (记这个)
[root@localhost ~]# poweroff
重启命令
-
reboot #立刻重启 (记这个)
-
shutdown -r now #立刻重启
-
shutdown -r 10 #过十分钟后重启
[root@localhost ~]# reboot