• 【Linux】常见指令(一)



    前面我们已经学习了关于云服务器搭建的过程,下面,我们来正式开始操作指令。

    开始之前,我们来了解几个概念。

    操作系统简述(OS)

    image-20220919102414865

    操作系统处于软硬件之间,起承上启下的效果。对上给应用提供接口,所以软件可以被编写出来。

    操作系统是管理软件,管理软硬件

    对上:提供良好稳定安全的运行环境

    对下:管理软硬件资源

    学习命令行指令是我们学习操作系统非常重要的手段

    在发展上,我们是先有键盘然后才有鼠标的,这也就意味着先有的命令行式才有的图形界面化式

    下面,我们来登录我们的Xshell


    文件

    目录和文件是在磁盘上建立的,空文件是在磁盘上占用空间的(文件包括文件内容和文件的各种属性/元数据)即使本身没有内容,文件的各种属性也要占用空间。既文件等于文件内容数据加上文件属性数据

    目录——>文件夹——>保存其他文件

    登录root用户

    登录指令 ssh root@+IP

    image-20220919130923533

    现在,输入我们设置的密码

    image-20220919131225536

    登录完成

    如果要退出的话:Ctrl+d

    image-20220919142118529

    怎么去查看当前的用户❓whoami

    [root@VM-8-3-centos home]# whoami
    root
    
    

    常用指令

    pwd

    语法: pwd
    功能:显示用户当前所在的目录

    [root@VM-8-3-centos ~]# pwd
    //显示当前用户所在的路径
    /root
    

    Windows下,我们很容易就能够找到路径:在这里\就是路径分隔符

    image-20220919163834051

    而在Linux下,是以/作为路径分隔符。

    那为什么要以路径标识一个文件❓从根目录到所在文件的路径具有唯一性

    说到路径,这就要说到绝对路径和相对路径了

    绝对路径:从根目录开始,依次按树状结构向后进行查找定义称为绝对路径

    相对路径:相对于当前所处的路径,当前的相对位置查找所处的位置

    ls 指令

    语法: ls [选项][目录或文件]
    功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息

    [root@VM-8-3-centos ~]# ls
    //显示当前路径下的文件或目录名称
    106  a  dir  test.c  thj
    

    而一条命名除了本身,还可以携带选项

    常用选项:
    -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
    -d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录
    -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
    -k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件
    -l 列出文件的详细信息。
    -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
    -F 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表
    示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别)
    -r 对目录反向排序。
    -t 以时间排序。
    -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
    -R 列出所有子目录下的文件。 (递归)
    -1 一行只输出一个文件。

    这里的携带选项比较多,我们可以选几个出来看一看。

    [root@VM-8-3-centos ~]# ls -l
    //显示当前路径下的文件或者目录的更详细的属性信息
    total 16
    drwxr-xr-x 2 root root 4096 Sep 18 12:28 106
    drwxr-xr-x 3 root root 4096 Sep 18 12:11 a
    -rw-r--r-- 1 root root    0 Sep 17 19:32 dir
    -rw-r--r-- 1 root root  105 Sep 17 23:08 test.c
    drwxr-xr-x 3 root root 4096 Sep 19 09:56 thj
    
    
    [root@VM-8-3-centos ~]# ls -al
    total 92
    dr-xr-x---. 11 root root  4096 Sep 19 10:04 .
    dr-xr-xr-x. 20 root root  4096 Sep 19 15:31 ..
    drwxr-xr-x   3 root root  4096 Sep 19 15:28 106
    drwxr-xr-x   3 root root  4096 Sep 18 12:11 a
    -rw-------   1 root root 13170 Sep 19 15:31 .bash_history
    -rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout
    -rw-r--r--.  1 root root   176 Dec 29  2013 .bash_profile
    -rw-r--r--.  1 root root   176 Dec 29  2013 .bashrc
    drwxr-xr-x   3 root root  4096 Sep  6 23:14 .cache
    drwxr-xr-x   3 root root  4096 Sep  6 23:14 .config
    -rw-r--r--.  1 root root   100 Dec 29  2013 .cshrc
    -rw-r--r--   1 root root     0 Sep 17 19:32 dir
    -rw-r--r--   1 root root     0 Sep 17 19:27 .file
    drwxr-xr-x   2 root root  4096 Sep 17 19:33 .hello
    drwxr-xr-x   2 root root  4096 Jul 25 17:53 .pip
    -rw-r--r--   1 root root    73 Sep  6 22:36 .pydistutils.cfg
    drwx------   2 root root  4096 Sep  6 22:36 .ssh
    -rw-r--r--.  1 root root   129 Dec 29  2013 .tcshrc
    -rw-r--r--   1 root root   105 Sep 17 23:08 test.c
    
    

    image-20220919153925874

    我们看到ls如果带-a选项,会出现一个点和两个点。在这里

    一个点表示当前路径,两个点表示上级路径。比如下面的cd …返回上级路径。

    在Linux中,以点开头的文件我们叫做隐藏文件

    ls -a:显示所有文件,包括隐藏文件。也就是说,ls不显示隐藏文件

    其实,也就相当于windows下的查看隐藏文件

    image-20220919160208498

    除ls - l之外,linux下还有特定的指令:ll显示的结果是一样的

    image-20220919161004598

    而对于ls -Rl,就是展开子目录下的文件

    [root@VM-8-3-centos ~]# ls -Rl
    .:
    total 16
    drwxr-xr-x 3 root root 4096 Sep 19 15:28 106
    -rw-r--r-- 1 root root    0 Sep 19 16:13 106.txt
    drwxr-xr-x 3 root root 4096 Sep 18 12:11 a
    -rw-r--r-- 1 root root    0 Sep 17 19:32 dir
    -rw-r--r-- 1 root root  105 Sep 17 23:08 test.c
    drwxr-xr-x 3 root root 4096 Sep 19 09:56 thj
    
    ./106:
    total 4
    drwxr-xr-x 2 root root 4096 Sep 19 15:28 106
    
    ./106/106:
    total 0
    
    ./a:
    total 4
    drwxr-xr-x 3 root root 4096 Sep 17 23:10 b
    
    ./a/b:
    total 4
    drwxr-xr-x 3 root root 4096 Sep 17 23:10 c
    
    ./a/b/c:
    total 4
    drwxr-xr-x 2 root root 4096 Sep 17 23:10 d
    
    ./a/b/c/d:
    total 0
    
    ./thj:
    total 4
    drwxr-xr-x 2 root root 4096 Sep 19 10:04 test
    
    ./thj/test:
    total 16
    -rwxr-xr-x 1 root root 8968 Sep 19 09:58 a.out
    -rw-r--r-- 1 root root   99 Sep 19 10:04 test.cpp
    
    

    cd指令

    cd 指令,在Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

    image-20220919144757803

    类似于树形结构,分为叶子节点和路上节点。对于叶子节点,既最后一层,可以有普通文件或者空目录,而路上节点只能是目录。

    说到这里,我们可以通过指令tree .(安装命令: yum install -y tree)来显示树状目录

    image-20220919170746391

    语法:cd 目录名
    功能:改变工作目录。将当前工作目录改变到指定的目录下。
    举例:

    cd .. : 返回上级目录
    cd /home/litao/linux/ : 绝对路径
    cd ../day02/ : 相对路径
    cd ~:进入用户家目
    cd -:返回最近访问目录
    

    cd就简单的就是带上你想去的路径

    [root@VM-8-3-centos ~]# cd 106
    //切换路径,进入不同的路径下操作
    [root@VM-8-3-centos 106]# pwd
    /root/106
    

    cd…回退上级路径(如果一直回退,最终会无法回退,只会到根目录/)

    [root@VM-8-3-centos ~]# pwd
    /root
    [root@VM-8-3-centos ~]# cd ..
    //返回到根目录
    [root@VM-8-3-centos /]# pwd
    /
    [root@VM-8-3-centos /]# 
    
    

    下面我们来看一看cd -指令:进入当前用户的工作目录。即默认登陆所处的目录(这里我提前登录到了自己创建的用户,自己创建了不止一个用户哟

    image-20220919182416622

    我们先进入一个目录,然后进行cd -,就会返回到最近的访问目录,然后在cd -,就又会返回到刚刚进入的目录。也就是说,会进行来回切换。

    touch指令

    touch是一个Linux下创建普通文件的命令

    image-20220919183305588

    语法:touch [选项]… 文件…
    功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
    常用选项:

    -a 或–time=atime或–time=access或–time=use只更改存取时间。

    -c 或–no-create 不建立任何文档。

    -d 使用指定的日期时间,而非现在的时间。

    -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

    -m 或–time=mtime或–time=modify 只更改变动时间。

    -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

    -t 使用指定的日期时间,而非现在的时间。

    除此之外,我们还可以去查看文件时间

    image-20220919183527389

    查看时间之外我们可以利用touch去更新时间:

    image-20220919213348110

    mkdir指令

    语法: mkdir [选项] dirname…
    功能:在当前目录下创建一个名为 “dirname”的目录
    常用选项:
    -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

    image-20220919213645041

    mkdir只能创建一个空目录

    image-20220919213726724

    想创建一串路径需要带-p,最后我们来看看是否成功了:

    image-20220919214153136

    我们也可以创建一个空的目录:

    image-20220924220249906

    rmdir指令 && rm 指令

    rmdir是一个与mkdir相对应的命令。 mkdir是建立目录,而rmdir是删除命令。所以rmdir是用来删除空目录的。

    语法: rmdir [-p][dirName]

    适用对象:具有当前目录操作权限的所有使用者

    功能:删除空目录

    rm默认删除普通文件

    常用选项:

    -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。rm命令可以同时删除文件或目录

    语法: rm [-f-i-r-v][dirName/dir]

    适用对象:所有使用者

    功能:删除文件或目录

    常用选项:

    • -f即使文件属性为只读(即写保护),亦直接删除(强制)
    • -i 删除前逐一询问确认
    • -r 删除目录及其下所有文件(递归删除

    删库跑路:rm -rf /

    man指令

    Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是

    man 语法: man [选项] 命令

    开始之前,记得确认自己是否有安装man手册(在root用户下:yum install -y man-pages)

    常用选项

    • -k 根据关键字搜索联机帮助

    • num 只在第num章节找

    • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

      解释一下,面手册分为8章

    1 是普通的命令
    2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
    3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
    5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
    6 是给游戏留的,由各个游戏自己定义
    7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
    8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

    举个简单的例子:

    [root@VM-8-3-centos test]# man 3 printf
    [root@VM-8-3-centos test]# 
    

    image-20220925121620935

    cp指令

    语法: cp [选项] 源文件或目录 目标文件或目录

    cp[选项] src dest
    

    功能: 拷贝文件或目录(拷贝不是剪切)

    说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

    常用选项:

    -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

    -i 或 --interactive 覆盖文件之前先询问用户.同rm

    [root@VM-8-3-centos test]# tree .
    .
    |-- cp_file
    |   `-- file.txt
    |-- file1.txt
    |-- file2.txt
    |-- file3.txt
    |-- file.txt
    `-- toot4
    
    1 directory, 6 files
    [root@VM-8-3-centos test]# cp file1.txt cp_file/
    [root@VM-8-3-centos test]# cp -i file1.txt cp_file/
    cp: overwrite ‘cp_file/file1.txt’? n
    
    

    -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

    -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

  • 相关阅读:
    Es Ik
    java word文档 转 html文件
    基于YOLOv8模型的车载摄像头下车辆目标检测系统(PyTorch+Pyside6+YOLOv8模型)
    初始Hadoop
    【初赛题解】CSP-J 2022 入门级 第一轮 第16题
    mybatis详解(全)
    技术管理责任制度《三》
    chrome F12 network 保留之前请求信息
    SpringBoot-2.4 新建工程及常规配置
    为什么反序列化失败?
  • 原文地址:https://blog.csdn.net/weixin_60478154/article/details/127038018