[ Linux 长征路第一篇] 基本指令
Posted 小白又菜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ Linux 长征路第一篇] 基本指令相关的知识,希望对你有一定的参考价值。
从今天开始我会持续更新我学习Linux的学习笔记。今天主要学习Linux下基本指令。
1.Linux下基本指令
1.为什么要进行指令操作?
因为指令距离OS更近,便于我们更好的掌握OS。
指令操作对于非专业人员来说没有必要学习,对于专业人员可以必要也可以不必要。但是对于我们学习OS原理,编程,指令操作必须需要掌握。
2.图像化界面不香吗?那是先有指令还是现有图形化界面呢?
答案是:先有指令。
我们要进行指令输入需要键盘,进行图形化界面需要鼠标。所有的操作系统,刚开始的时候全部都是支持指令操作的。但是由于指令操作的操作成本高因此在后期慢慢就出现了图形化界面。
01.ls 指令
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:
1: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
2:-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
3:-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
4:-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
5:-l 列出文件的详细信息。
6:-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
7:-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
8:-r 对目录反向排序。
9:-t 以时间排序。
10:-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
11:-R 列出所有子目录下的文件。(递归)
12:-1 一行只输出一个文件。
ls #只显示文件名
[root@VM-20-12-centos 22_06_02_lesson4]# ls
tar_package
[root@VM-20-12-centos 22_06_02_lesson4]# mkdir code
[root@VM-20-12-centos 22_06_02_lesson4]# ls
code tar_package
[root@VM-20-12-centos 22_06_02_lesson4]# touch mytest.c
[root@VM-20-12-centos 22_06_02_lesson4]# ls
code mytest.c tar_package
ls -l #显示文件的更多属性
[root@VM-20-12-centos 22_06_02_lesson4]# ls -l
total 8
drwxr-xr-x 2 root root 4096 Jun 15 12:54 code
-rw-r--r-- 1 root root 0 Jun 15 12:54 mytest.c
drwxr-xr-x 3 root root 4096 Jun 2 19:59 tar_package
[root@VM-20-12-centos 22_06_02_lesson4]#
ls -a #显示更多的隐藏文件
Linux中以 . 开头的是隐藏文件
[root@VM-20-12-centos 22_06_02_lesson4]# ls -a
. .. code mytest.c tar_package
[root@VM-20-12-centos 22_06_02_lesson4]# ls -a -l
total 16
drwxr-xr-x 4 root root 4096 Jun 15 12:54 .
dr-xr-x---. 10 root root 4096 Jun 2 18:37 ..
drwxr-xr-x 2 root root 4096 Jun 15 12:54 code
-rw-r--r-- 1 root root 0 Jun 15 12:54 mytest.c
drwxr-xr-x 3 root root 4096 Jun 2 19:59 tar_package
[root@VM-20-12-centos 22_06_02_lesson4]#
在任意目录下,都会存在两个隐藏文件 其中 一个. (当前路径) ..(上级路径)
我们在当前路径下怎么返回上级路径呢?我们就可以使用cd ..
[root@VM-20-12-centos 22_06_02_lesson4]# pwd
/root/22_06_02_lesson4
[root@VM-20-12-centos 22_06_02_lesson4]# cd ..
[root@VM-20-12-centos ~]# pwd
/root
.(当前路径)有什么用?
作为一个限定,表示我要执行当前路径下的程序。比如我们写一段C语言程序,要这行这个结果,我们要使用./a.out
[root@VM-20-12-centos 22_06_02_lesson4]# vim mytest.c
[root@VM-20-12-centos 22_06_02_lesson4]# gcc mytest.c
[root@VM-20-12-centos 22_06_02_lesson4]# ls
a.out code mytest.c tar_package
[root@VM-20-12-centos 22_06_02_lesson4]# cat mytest.c
#include <stdio.h>
int main()
printf("Hello Linux\\n");
return 0;
[root@VM-20-12-centos 22_06_02_lesson4]# ./a.out
Hello Linux
[root@VM-20-12-centos 22_06_02_lesson4]#
总结:ls核心命令就是ls -a和 ls -l 指令
02.pwd命令
语法: pwd
功能:显示用户当前所在的目录 查看当前所处的路径
[root@VM-20-12-centos 22_06_02_lesson4]# pwd
/root/22_06_02_lesson4
[root@VM-20-12-centos 22_06_02_lesson4]#
03.cd指令
Linux的目录结构本质是一颗多叉树。
1.每一个子节点,既可以是一个目录(再放目录或者普通作业,递归式的定义),也可以是一个普通文件。
2.这课多叉树的叶子结点,一定是一个普通文件或者空目录。
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
我们一般通过“定位”,通过路径定位的方式找到文件的!那为什么我们都是通过路径方式定位文件的呢?
这是因为任何一个节点可以有很多子节点,但是只能有一个父节点。因此常规的路径定位是具有唯一性的!
绝对路径:常规路径,从跟目录开始直到目的节点的这条路径。
相对路径:相对于我当前所处的路径。
结论:如果是日常使用,我们推荐相对路径(简单);如果是进行添加配置文件之类,推荐绝对路径(不会出错)
[root@VM-20-12-centos 22_06_02_lesson4]# pwd
/root/22_06_02_lesson4
[root@VM-20-12-centos 22_06_02_lesson4]# cd ../
[root@VM-20-12-centos ~]# pwd
/root
[root@VM-20-12-centos ~]# cd ../
[root@VM-20-12-centos /]# pwd
/
cd ~ :进入用户家目
[root@VM-20-12-centos 22_06_02_lesson4]# cd ~
[root@VM-20-12-centos ~]# pwd
/root
cd -:跳转至我上一次所处的路径
[root@VM-20-12-centos 22_06_02_lesson4]# cd ~
[root@VM-20-12-centos ~]# pwd
/root
[root@VM-20-12-centos ~]# cd -
/root/22_06_02_lesson4
[root@VM-20-12-centos 22_06_02_lesson4]# pwd
/root/22_06_02_lesson4
[root@VM-20-12-centos 22_06_02_lesson4]#
04.touch命令
语法:touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a 或--time=atime或--time=access或--time=use只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间
[root@VM-20-12-centos 22_06_02_lesson4]# ls
a.out code mytest.c tar_package
[root@VM-20-12-centos 22_06_02_lesson4]# touch test.c
[root@VM-20-12-centos 22_06_02_lesson4]# ls
a.out code mytest.c tar_package test.c
[root@VM-20-12-centos 22_06_02_lesson4]# nano test.c
[root@VM-20-12-centos 22_06_02_lesson4]# gcc test.c
[root@VM-20-12-centos 22_06_02_lesson4]# ls
a.out code mytest.c tar_package test.c
[root@VM-20-12-centos 22_06_02_lesson4]# ./a.out
Hello World
[root@VM-20-12-centos 22_06_02_lesson4]#
05.mkdir命令
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
我们想创建一长串目录,我们可以使用,mkdir -p
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
[root@VM-20-12-centos 22_06_15]# mkdir -p dir1/dir2/dir3/dir4
[root@VM-20-12-centos 22_06_15]# ls
dir1
[root@VM-20-12-centos 22_06_15]# cd dir1
[root@VM-20-12-centos dir1]# ls
dir2
[root@VM-20-12-centos dir1]# cd dir2
[root@VM-20-12-centos dir2]# ls
dir3
[root@VM-20-12-centos dir2]# cd dir3
[root@VM-20-12-centos dir3]# ls
dir4
[root@VM-20-12-centos dir3]# cd dir4
[root@VM-20-12-centos dir4]# ls
[root@VM-20-12-centos dir4]# pwd
/root/code/22_06_15/dir1/dir2/dir3/dir4
06.rmdir指令&&rm指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
如果我们想删掉空目录可以是用rmdir指令
删除空目录(不常用)
[root@VM-20-12-centos 22_06_15]# rmdir dir1
rmdir: failed to remove ‘dir1’: Directory not empty
[root@VM-20-12-centos 22_06_15]# ls
dir1
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
删除普通文件(常用)
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
[root@VM-20-12-centos 22_06_15]# touch test.txt
[root@VM-20-12-centos 22_06_15]# ls
dir1 test.txt
[root@VM-20-12-centos 22_06_15]# rm test.txt
rm: remove regular empty file ‘test.txt’? y
[root@VM-20-12-centos 22_06_15]# ls
dir1
如果要删除目录,使用rm-r
[root@VM-20-12-centos 22_06_15]# rm -r dir1
rm: descend into directory ‘dir1’? y
rm: descend into directory ‘dir1/dir2’? y
rm: descend into directory ‘dir1/dir2/dir3’? y
rm: remove directory ‘dir1/dir2/dir3/dir4’? y
rm: remove directory ‘dir1/dir2/dir3’? y
rm: remove directory ‘dir1/dir2’? y
rm: remove directory ‘dir1’? y
[root@VM-20-12-centos 22_06_15]# ls
此时我们发现dir1下的文件被全部删掉,我们在删除的过程中发现系统会询问你确定要删除?如果我们不想这个提示弹出的话,我们可以使用rm -f ,此命令表示强制删除。
[root@VM-20-12-centos 22_06_15]# touch test.txt
[root@VM-20-12-centos 22_06_15]# mkdir -p dir1/dir2/dir3/dir4
[root@VM-20-12-centos 22_06_15]# ls
dir1 test.txt
[root@VM-20-12-centos 22_06_15]# rm -f test.txt
[root@VM-20-12-centos 22_06_15]# ls
dir1
[root@VM-20-12-centos 22_06_15]# rm -r -f dir1
[root@VM-20-12-centos 22_06_15]# ls
[root@VM-20-12-centos 22_06_15]#
(本篇完)
以上是关于[ Linux 长征路第一篇] 基本指令的主要内容,如果未能解决你的问题,请参考以下文章
[ Linux长征路第六篇 ] Linux使用git上传gitee三板斧