目录
文件目录类
pwd显示文件路径指令
基本语法:pwd (功能描述:显示当前工作目录的绝对路径,绝对路径是从跟目录开始的)
示例:
第一个斜杆表示根目录
ls查看文件指令
基本语法:ls [选项] [目录或文件]
常用选项
-a:显示当前目录所有文件和目录,包括隐藏文件
-l:以列表的方式显示信息
示例:查看目录下的所有信息
cd进入文件指令
基本语法:cd 参数(功能描述:切换到指定目录)
理解:绝对路径和相对路径
cd ~或者 cd :表示回到字节的家目录,如用户kongchao,使用cd ~会回到/home/kongchao,而root用户cd ~会回到/root
cd .. 表示回到当前目录的上一级目录 (顶层目录是根目录,所以一直cd ..最多只会到根目录/)
示例:
案例1:使用绝对路径切换到root目录(cd /root)
案例二:使用相对路径到/root目录。比如现在位置在 /home/kongchao(cd ../../root这相当于回退两个目录到根目录最后直接访问root)
案例三:表示当前目录的上一级目录(cd ..)
案例四:回到家目录 (cd ~)
mkdir创建目录指令
mkdir指令用户创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项: -p 创建多级目录
示例:创建一个目录和创建多级目录
rmdir删除目录指令
rmdir指令删除空目录
基本语法:rmdir [选项] 要删除的空目录(非空目录无法删除)
rm -rf 表示递归删除(慎用)
如:删除/home/Dog(Dog下无内容)和删除Dog2,Dog2下有smallDog文件(rm -rf /home/Dog2)
touch创建空文件指令
touch指令创建空文件
基本语法 :touch 文件名称
如在/home目录下创建空文件夹hello.txt,(touch /home/hello.txt)
cp复制指令
cp指令拷贝文件到指定目录
基本语法:cp [ 选项 ] source dest
常用选项 -r:递归复制整个文件夹
示例:将text1中的hello.txt复制到text2上
递归复制整个夹就不用加上之后的/hello.txt (cp -r text1/ text2)已经到了/home目录,如果没到应该写成 cp -r /home/text1 text2
使用细节
强制覆盖不提示:\cp -r /home/text1 text2
1 |
[root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text1 text2 [root@kongchao02 home]# ls text1 hello1.txt hello.txt [root@kongchao02 home]# ls text2 [root@kongchao02 home]# cp -r text1/hello.txt text2 [root@kongchao02 home]# ls text2 hello.txt |
rm删除指令
说明:rm指令移除文件或目录
基本语法:rm [选项] 要删除的文件或目录
常用选项:
-r :递归删除整个文件夹
-f:强制删除不提示
-i:删除之前提示
示例:删除text1和text2
1 |
[root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text1 text2 [root@kongchao02 home]# ls text1 hello1.txt hello.txt [root@kongchao02 home]# rm -rf text1/ [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text2 [root@kongchao02 home]# rm -ri text2/ rm:是否进入目录"text2/"? y rm:是否删除目录 "text2/hello.txt"?y rm:是否删除目录 "text2/"?y [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 |
-i提示性删除更安全,但是也更繁琐,-f强制删除不提示,不安全谨慎使用
mv移动或重命名指令
mv是移动文件与目录或重命名
基本语法:
mv oldName newName (重命名)
mv /temp/movefile /targetFolder(移动文件
示例1:重命名和移动位置
1 |
[root@kongchao02 home]# mkdir text1 [root@kongchao02 home]# mkdir text1/text2 [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text1 [root@kongchao02 home]# mv text1 newNameText1 [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 newNameText1 [root@kongchao02 home]# ls newNameText1/ text2 [root@kongchao02 home]# mkdir text3 [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 newNameText1 text3 [root@kongchao02 home]# mv newNameText1 text3 [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text3 [root@kongchao02 home]# ls text3 newNameText1 [root@kongchao02 home]# ls text3/newNameText1 text2 |
同一路径下为改名,不同路径为移动位置
示例2:移动并起新的名字
1 |
[root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text3 [root@kongchao02 home]# mv text3/newNameText1 /home/text4 [root@kongchao02 home]# ls kongchao kongchao1 kongchao2 text3 text4 |
整个目录移动:如mv /home/text3 /temp
cat查看文件内容指令
cat查看文件内容
基本语法:cat [选项] 要查看的文件
常用选项:-n :显示行号
示例:查看hello.java
1 |
[root@kongchao02 home]# vim hello.java [root@kongchao02 home]# ls hello.java kongchao kongchao1 kongchao2 text3 text4 [root@kongchao02 home]# cat -n hello.java 1 public class Hello{ 2 public static void main (String[] args){ 3 System.out.println("hello java"); 4 5 } 6 7 8 9 10 } |
使用细节:cat只能浏览文件,而不能修改文件(所以cat安全),为了浏览方便,一般会带上管道命令 | more,作用是把查询到的结果交给more处理,等全部显示完就会退出more
cat -n /etc/profile |more(交互指令)
如按下空格显示更多
more指令
more指令是一个基于vi编辑器的文本过滤器,他以全屏幕的方式按页显示文本文件的内容,more指令中内置了若干个快捷键(交互指令)
基本语法:more 要查看的文件
操作说明如图:
less查看指令
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载的内容,对于显示大型文件具有较高的效率。
基本语法:less 要查看的文件
echo输出指令
echo输出内容到控制台
基本语法:echo [选项] [输出内容]
示例:用echo指令输出环境变量和指定内容
1 |
[root@kongchao02 ~]# echo $HOSTNAME kongchao02 [root@kongchao02 ~]# echo "hello kongchao" hello kongchao [root@kongchao02 ~]# |
head显示头部指令
head指令用于显示文件开头部分内容,默认情况下head指令显示文件的前10行内容
基本语法:head 文件 (查看文件头10行内容)
head -n 15 文件 (查看文件头15行内容,可以是任意行数)
示例:查看/etc/profile下前6行
1 |
[root@kongchao02 ~]# head -n 6 /etc/profile # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you [root@kongchao02 ~]# |
tail显示尾部指令
tail用于输出文件中尾部的内容, 默认情况下tail显示文件的前10行内容。
基本语法:
tail 文件(查看文件尾部10行内容)
tail -n 5 文件 (查看文件尾部5行内容)
tail -f 文件 (实时追踪该文档的所有更新,该文件变化会反馈出来)
1 |
[root@kongchao02 ~]# tail /etc/profile if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null fi fi done unset i unset -f pathmunge [root@kongchao02 ~]# tail -n 5 /etc/profile fi done unset i unset -f pathmunge [root@kongchao02 ~]# |
>覆盖指令和>>追加指令
>是覆盖原先的内容,>>是追加到原来的内容之后
基本语法:
ls -l > 文件 (列表的内容写入到文件中覆盖原先的)
ls -al >> 文件 (列表的内容追加到文件的末尾)
cat 文件1 > 文件2 (将文件1内容覆盖到文件2中)
echo “内容” >> 文件 (将内容追加到文件中)
示例1:将/home目录下的文件列表写入到/home/text.txt中,覆盖写入(ls -l /home > /text.txt)如果text.txt不存在则会自动创建
1 |
[root@kongchao02 home]# ls -l /home 总用量 24 -rw-r--r--. 1 root root 107 3月 4 22:22 hello.java drwx------. 15 kongchao kongchao 4096 3月 1 20:37 kongchao drwx------. 5 kongchao1 kongchao1 4096 2月 28 22:08 kongchao1 drwx------. 3 kongchao2 kongchao2 4096 2月 28 22:11 kongchao2 drwxr-xr-x. 2 root root 4096 3月 3 21:44 text3 drwxr-xr-x. 3 root root 4096 3月 3 21:27 text4 [root@kongchao02 home]# ls -l /home > text.txt [root@kongchao02 home]# ls /home hello.java kongchao kongchao1 kongchao2 text3 text4 text.txt [root@kongchao02 home]# cat /home/text.txt 总用量 24 -rw-r--r--. 1 root root 107 3月 4 22:22 hello.java drwx------. 15 kongchao kongchao 4096 3月 1 20:37 kongchao drwx------. 5 kongchao1 kongchao1 4096 2月 28 22:08 kongchao1 drwx------. 3 kongchao2 kongchao2 4096 2月 28 22:11 kongchao2 drwxr-xr-x. 2 root root 4096 3月 3 21:44 text3 drwxr-xr-x. 3 root root 4096 3月 3 21:27 text4 -rw-r--r--. 1 root root 0 3月 4 22:29 text.txt [root@kongchao02 home]# |
示例2:将I am kc追加到hello.java中
1 |
[root@kongchao02 home]# cat /home/hello.java public class Hello{ public static void main (String[] args){ System.out.println("hello java"); } } [root@kongchao02 home]# echo "I am kc" >> /home/hello.java [root@kongchao02 home]# cat /home/hello.java public class Hello{ public static void main (String[] args){ System.out.println("hello java"); } } I am kc [root@kongchao02 home]# |
示例3:将文件覆盖
1 |
[root@kongchao02 home]# cd /home/ [root@kongchao02 home]# cat text.txt 总用量 24 -rw-r--r--. 1 root root 107 3月 4 22:22 hello.java drwx------. 15 kongchao kongchao 4096 3月 1 20:37 kongchao drwx------. 5 kongchao1 kongchao1 4096 2月 28 22:08 kongchao1 drwx------. 3 kongchao2 kongchao2 4096 2月 28 22:11 kongchao2 drwxr-xr-x. 2 root root 4096 3月 3 21:44 text3 drwxr-xr-x. 3 root root 4096 3月 3 21:27 text4 -rw-r--r--. 1 root root 0 3月 4 22:29 text.txt [root@kongchao02 home]# cat hello.java > text.txt [root@kongchao02 home]# cat text.txt public class Hello{ public static void main (String[] args){ System.out.println("hello java"); } } I am kc [root@kongchao02 home]# |
当前日历显示 cal
1 |
[root@kongchao02 ~]# cal 三月 2022 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@kongchao02 ~]# |
ln符号连接指令
In软连接也称符号连接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
基本语法:ln -s [原文件或目录] [软链接名] (给原文件创建一个软链接)
示例:在/home目录下创建一个软链接myroot,链接到/root目录
1 |
[root@kongchao02 ~]# ln -s /root /home/myroot [root@kongchao02 ~]# ls /home hello.txt kongchao kongchao1 kongchao2 myroot [root@kongchao02 ~]# cd /home/myroot/ [root@kongchao02 myroot]# ls anaconda-ks.cfg 公共 视频 文档 音乐 initial-setup-ks.cfg 模板 图片 下载 桌面 [root@kongchao02 myroot]# pwd /home/myroot [root@kongchao02 myroot]# |
细节说明:当我们使用pwd指令查看目录是,仍然看到的是软链接所在的目录,而不是指向的目录
删除软链接rm
rm 软链接路径
1 |
[root@kongchao02 myroot]# rm /home/myroot rm:是否删除符号链接 "/home/myroot"?y [root@kongchao02 myroot]# ls /home hello.txt kongchao kongchao1 kongchao2 [root@kongchao02 myroot]# |
history查看历史命令指令
history查看已经执行过历史命令,也可以执行历史命令
基本语法:history [数字] (查看已经执行过的多少条命令)
查看所有历史命令:history
查看10条历史命令:history 10
执行历史编号的指令:!编号
示例1:查看历史指令过的指令
1 |
[root@kongchao02 myroot]# history 1 gcc -v 2 ifconfig 3 reboot 4 ifconfig 5 cat /etc/passwd 6 useradd kongchao1 7 passwd kongchao1 8 su kongchao1 9 clear 10 ls 11 vim hello.v 12 vim /etc/passwd/ 13 useradd kongchao2 14 passwd kongchao2 15 clear 16 cat /etc/passwd 17 clear 18 vim /etc/shadow 19 cat /etc/shadow 20 clear 21 cat /etc/group 22 clear 23 init 5 24 init 3 25 init 5 26 gcc- v 27 gcc -v 28 tree 29 ls /home/ 30 ls 31 su kongchao 32 logout 33 ifconfig 34 vim clear 35 man ls 36 q 37 help cd 38 clear 39 ls / 40 cd / 41 ls 42 cd home 43 s 44 clear 45 cd /home 46 ls 47 cd kongchao 48 pwd 49 clear 50 ls -a 51 ls -al 52 ls a 53 man lc 54 manls 55 man ls 56 clear 57 ls -al 58 cd /home 59 ls 60 cd kongchao 61 cd/ 62 cd / 63 clear 64 cd /home/kongchao 65 cd ~ 66 pwd 67 ls -s /root /home/myroot 68 clear 69 ln -s /root /home/myroot 70 ls /home 71 cd /home/myroot/ 72 ls 73 pwd 74 clear 75 ls /home/myroot/ 76 clear 77 ls /home 78 rm /home/myroot/ 79 clear 80 rm /home/myroot 81 ls /home 82 clear 83 history |
示例2:查看指令过的10条指令
1 |
[root@kongchao02 myroot]# history 10 75 ls /home/myroot/ 76 clear 77 ls /home 78 rm /home/myroot/ 79 clear 80 rm /home/myroot 81 ls /home 82 clear 83 history 84 history 10 |
示例3:指令对应标号的指令
1 |
[root@kongchao02 myroot]# history 10 75 ls /home/myroot/ 76 clear 77 ls /home 78 rm /home/myroot/ 79 clear 80 rm /home/myroot 81 ls /home 82 clear 83 history 84 history 10 [root@kongchao02 myroot]# !77 ls /home hello.txt kongchao kongchao1 kongchao2 [root@kongchao02 myroot]# |