当前位置: 首页 > news >正文

Linux基本指令/上

目录

1.基本指令介绍

2.ls命令

3.cd命令

4.touch命令

5.mkdir命令

6.ll命令

7.rmdir/rm命令

8. * 符号

9.man指令

10.cp命令


1.基本指令介绍

一些常见的快捷键:

alt + enter 全屏切换

ctrl + shift + c 复制

ctrl + shift + v 黏贴

ctrl + c 终止操作(出现异常情况时,可以不断使用该快捷键让其停止下来)


一些常用的功能代码:

pwd 打印所处的路径

clear 清屏

whoami 打印用户名

2.ls命令

在linux当中,目录 = 文件夹;因此如果说到当前目录,其实就是当前文件夹的含义

[root@VM-16-3-centos ~]# mkdir 2025.5.27
[root@VM-16-3-centos ~]# ll
total 4
drwxr-xr-x 2 root root 4096 May 27 14:08 2025.5.27
[root@VM-16-3-centos ~]# ls
2025.5.27
[root@VM-16-3-centos ~]# pwd
/root
[root@VM-16-3-centos ~]# whoami
root

通过mkdir命令,来创建一个目录;然后通过 ll 或 ls 命令来查看当前目录下的文件

当前目录是root目录,即该用户所处的目录;该目录的目录路径可以通过pwd进行查看

紧跟着#的是命令,前面带 - 的叫做命令行选项,可以有0个或多个,如果有多个需要空格分开 

如果我在windows操作系统里新建了一个空文件,那空文件就被保存在了磁盘里,它会占用磁盘内存吗?

会占用,文件 = 内容+属性,会有文件名、日期等等各种各样的信息,即使它默认是0kb大小,但其实是会占用内存的;这就类似于clock函数相减以后返回0,不是瞬间完成,而是运行时间小于1ms


ls 只会先是文件名,ls -l 能显示文件名+文件属性(都是L的小写,不是1);写的时候不同命令行选项需要空格隔开,也可以写成 -al 的形式( -a -l = -al)


区别于windows操作系统用后缀来区分文件类型,linux环境下用的是文件属性的第一个单词首字母

drwxr-xr-x 2 root root 4096 May 27 14:08 2025.5.27 :d 即为文件类型,directory(中文为“目录”)缩写成了d,即该文件的文件类型为目录文件

一些常见的ls命令行选项

  • -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-16-3-centos ~]# touch test.c
[root@VM-16-3-centos ~]# ls 
2025.5.27  test.c

touch:创建一个文件,后跟文件名

-rw-r--r-- 1 root root    0 May 27 18:40 test.c 

属性如上所示,以 - 为开头的都叫做普通文件,windows操作系统中的文件

[root@VM-16-3-centos ~]# ls -a -l
total 56
dr-xr-x---.  7 root root 4096 May 27 18:40 .
dr-xr-xr-x. 19 root root 4096 May 27 18:45 ..
drwxr-xr-x   2 root root 4096 May 27 14:08 2025.5.27
-rw-------   1 root root  491 May 27 18:45 .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 Mar  7  2019 .cache
drwxr-xr-x   3 root root 4096 Mar  7  2019 .config
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
drwxr-xr-x   2 root root 4096 May 26 21:46 .pip
-rw-r--r--   1 root root   73 May 26 21:46 .pydistutils.cfg
drwx------   2 root root 4096 Nov  5  2019 .ssh
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
-rw-r--r--   1 root root    0 May 27 18:40 test.c
[root@VM-16-3-centos ~]# cd 2025.5.27/

想要进入某个目录,通过cd命令,后面加上要进入的目录(带不带斜杠无所谓)

进入以后能看到下面的情况,为什么会 -l 没有任何文件,但 -a 就有两个点点文件呢?

点点文件被称为了隐藏文件,只有通过 -a 显示全部文件操作才能显示出来

[root@VM-16-3-centos 2025.5.27]# ls -l
total 0[root@VM-16-3-centos 2025.5.27]# ls -a -l
total 8
drwxr-xr-x  2 root root 4096 May 27 14:08 .
dr-xr-x---. 7 root root 4096 May 27 18:40 ..

如果我们创建一个以 . 开头的文件,那么也会被隐藏起来(如下所示)

这说明了 . 开头的文件,都是隐藏文件

此时我们可以把所学结合, . 开头的目录那么就是隐藏目录,我们就可以以此为例进行创建

[root@VM-16-3-centos 2025.5.27]# touch .youcannotseeme.txt
[root@VM-16-3-centos 2025.5.27]# ls -l
total 0
[root@VM-16-3-centos 2025.5.27]# ls -a -l
total 8
drwxr-xr-x  2 root root 4096 May 27 18:51 .
dr-xr-x---. 7 root root 4096 May 27 18:40 ..
-rw-r--r--  1 root root    0 May 27 18:51 .youcannotseeme.txt

3.cd命令

cd命令(change directory):用来切换目录的一条linux命令

一般除了根目录以外,/ 是目录与目录or文件之间的分界符

那么 ... 隐藏目录究竟是什么呢?

. 代表的是当前目录,.. 代表的是上级目录;那么 cd .. 就是回到上一级目录的含义,即回到存放当前目录的目录当中,这条指令就类似于windows系统中的文件夹回退

即便是空的目录,也要自动生成这两个隐藏目录


不断回退,回退到根目录时,目录路径会输出 / ,如下所示

如果我们想要查看目录本身的属性信息,单单使用 -a -l 会把当前所有文件与目录显示出来

-a :显示所有文件

-l : 显示属性信息

因此我们需要使用到 -d ,只显示该目录信息(交互如下所示

[root@VM-16-3-centos /]# pwd
/[root@VM-16-3-centos /]# ls -l -d
dr-xr-xr-x. 19 root root 4096 May 27 20:13 .
[root@VM-16-3-centos /]# ls -a -l -d
dr-xr-xr-x. 19 root root 4096 May 27 20:13 .

通过下面的查看,能够看到 在根目录是真实存在的,这也正好证明了 / 代表就是根目录本身,与此同时 . 也能够代表根目录

[root@VM-16-3-centos /]# ls -ald /
dr-xr-xr-x. 19 root root 4096 May 27 20:17 /
[root@VM-16-3-centos /]# ls -ald .
dr-xr-xr-x. 19 root root 4096 May 27 20:18 .

总结:Linux的文件结构,是一棵从根目录 / 开始的多叉树

a.叶子节点肯定是普通文件or空目录

b.非叶子节点肯定是非空目录

c.路径具有唯一性

/etc/rc.d/rc3.d 就是一个目录路径,从根目录找到目标目录被叫做了绝对路径,可以通过绝对路径找到这个文件;如果是从非根目录找到目标目录,那么就叫做相对路径,例如现在我们处于rc3.d,我们要回到rc.d就用下面的代码即可

[root@VM-16-3-centos /]# cd ../rc.d

现在我们可以通过绝对路径或者相对路径,来对目录与文件进行一系列操作,例如 ls操作 或者 cd操作

windows当中,此电脑即为根目录,c盘d盘等都是根目录下的文件夹(这都由使用者来进行的磁盘划分)

我们现在就不难理解黑科技怎么实现的,比如说我买了一台苹果手机(ios系统是由linux搭建起来的),苹果手机默认都是普通用户因此打开不了根目录;此时我们只需要成为root用户,得以控制根目录的所有文件,此时我们就可以 删除系统软件or直接修改登录密码 ,做一些高大上的操作(doge)

[root@VM-16-3-centos /]# cd ~
[root@VM-16-3-centos ~]# pwd
/root

cd ~ 回到当前用户的家目录

任何一个linux用户,用特定的用户名登录系统时,默认在家目录下;如果是普通用户,那么家目录就如下所示

[user1@VM-16-3-centos ~]$ cd ~
[user1@VM-16-3-centos ~]$ pwd
/home/user1

windows、linux不同用户,有不同的页面;windows的家目录即C:\Users\user_name

[root@VM-16-3-centos ~]# cd -

cd - 为回到最近所处的目录

4.touch命令

touch命令被用来创建普通文件,也被用来更新已有普通文件,而普通文件一般性使用stat命令来查看详情

[root@VM-16-3-centos ~]# stat test1.cFile: ‘test1.c’Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd01h/64769d	Inode: 393713      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2025-05-27 21:39:05.260249329 +0800
Modify: 2025-05-27 21:39:05.260249329 +0800
Change: 2025-05-27 21:39:05.260249329 +0800

Linux access modify change 时间的区别是什么?

  • atime (Access Time):

    • 代表文件或目录最后一次被访问的时间。这意味着文件内容被读取时,atime 会被更新。例如,你用 cat 命令查看文件内容时,atime 会改变。

    • 修改操作不会直接影响 atime,只有访问文件的操作才会更新它。

  • mtime (Modification Time):

    • 代表文件内容最后一次被修改的时间。它会在文件内容被更改时更新,如编辑文件内容、重定向输出到文件时等。例如,如果你用文本编辑器修改文件内容,mtime 会被更新。

    • 如果是修改文件的内容而不是元数据(例如权限、所有者等),则 mtime 会发生变化。

  • ctime (Change Time):

    • 代表文件的元数据(如权限、所有者、文件名等)最后一次更改的时间。如果你修改了文件的权限、所有者或其他元数据,ctime 会被更新。请注意,ctime 是文件元数据的“更改时间”,而不是文件内容的修改时间。

    • ctime 只能由系统和超级用户修改,它并不表示文件的内容是否变化。

(上述解释由chatGPT生成)

一些会用到的命令行选项

  • -a : change only the accesstime
  • -c : change only the modification time

5.mkdir命令

目录结构:有点像windows中文件夹套文件夹套文件夹……,根据一条路径所经过的所有目录

一般性的目录创建前面已经提及了,这边我们要讲一点好玩的,就比如一整个目录结构怎么创建?

目录结构创建用到的是 -p ,path缩写为p,即根据path来创建

[root@VM-16-3-centos ~]# pwd
/root
[root@VM-16-3-centos ~]# mkdir -p a/b/c/d/e
[root@VM-16-3-centos ~]# cd a
[root@VM-16-3-centos a]# pwd
/root/a
[root@VM-16-3-centos a]# cd b
[root@VM-16-3-centos b]# pwd
/root/a/b
[root@VM-16-3-centos b]# cd c
[root@VM-16-3-centos c]# pwd
/root/a/b/c

如果要一个一个cd进行查看就太麻烦了,所以可以用tree命令对其可视化,会返回以命令后目录为根目录的目录结构图;如果出现了tree命令不存在,请在界面上输入下面命令安装,然后就能够正常使用了(xshell并不会预装tree命令,所以需要自己去装)

yum -y install tree

6.ll命令

ll命令是 ls -l 的别名

如果使用which查看命令,我们能看到linux中命令都被保存在了bin目录中,所以命令实际上就是一个普通文件

[root@VM-16-3-centos ~]# which ls
alias ls='ls --color=auto'/usr/bin/ls
[root@VM-16-3-centos ~]# which pwd
/usr/bin/pwd
[root@VM-16-3-centos ~]# ll /usr/bin/pwd
-rwxr-xr-x 1 root root 33232 Nov 17  2020 /usr/bin/pwd

当我们创建了一个 .c 文件(普通文件)以后,并在里面写了printf hello linux,然后就能通过gcc -o 将其编译成一个命令(在windows中就能看作是一个可执行文件),使用时 ./名称 即可,最后会输出hello linux

总结:可执行文件 == 我们写的c/c++程序 == 命令的本质


当我们查看 ll 时,可以看到前面有个alias命令(alias就类似于c/c++中的typedef,是对我们的命令取别名)同时我们可以看到 ll 命令就是 ls 文件;格式是 alias 别名=命令名,如果命令有命令行选项则需要加上 ' ' ,并且别名在我们断开连接以后也会跟着一块消失

[root@VM-16-3-centos ~]# which ll
alias ll='ls -l --color=auto'/usr/bin/ls[root@VM-16-3-centos ~]# alias zhangsan=pwd
[root@VM-16-3-centos ~]# alias lisi='ls -al'
[root@VM-16-3-centos ~]# zhangsan
/root
[root@VM-16-3-centos ~]# lisi
total 108
dr-xr-x---.  8 root root  4096 May 28 14:05 .
dr-xr-xr-x. 19 root root  4096 May 28 14:14 ..
drwxr-xr-x   3 root root  4096 May 27 18:57 2025.5.27
drwxr-xr-x   3 root root  4096 May 28 01:18 a
-rw-------   1 root root  2682 May 28 14:14 .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 Mar  7  2019 .cache
-rw-r--r--   1 root root     0 May 28 13:45 code.c
-rw-r--r--   1 root root  4096 May 28 13:53 .code.c.swn
-rw-r--r--   1 root root 12288 May 28 13:52 .code.c.swo
-rw-r--r--   1 root root 12288 May 28 13:50 .code.c.swp
drwxr-xr-x   3 root root  4096 Mar  7  2019 .config
-rw-r--r--.  1 root root   100 Dec 29  2013 .cshrc
drwxr-xr-x   2 root root  4096 May 26 21:46 .pip
-rw-r--r--   1 root root    73 May 26 21:46 .pydistutils.cfg
drwx------   2 root root  4096 Nov  5  2019 .ssh
-rw-r--r--.  1 root root   129 Dec 29  2013 .tcshrc
-rw-r--r--   1 root root     0 May 27 21:39 test1.c
-rw-r--r--   1 root root    59 May 28 14:03 test.c
-rw-r--r--   1 root root  4096 May 28 13:56 .test.c.swo
-rw-r--r--   1 root root 12288 May 28 13:55 .test.c.swp

7.rmdir/rm命令

rmdir(remove dir):专门被用来删除目录,空目录还有普通文件无法删除

rm(remove):专门被用来删除普通文件,空目录还有一般目录无法删除

一些相关的rm命令行选项

  • -f 强制删除,超级管理员不需要再确认就能删除
  • -r 递归删除,此时可以让 rm 删除空目录or一般目录(通过递归整个多叉树),recursion(递归)是 r 的缩写
[root@VM-16-3-centos ~]# ll
total 12
drwxr-xr-x 3 root root 4096 May 27 18:57 2025.5.27
drwxr-xr-x 3 root root 4096 May 28 01:18 a
-rw-r--r-- 1 root root    0 May 28 13:45 code.c
-rw-r--r-- 1 root root    0 May 27 21:39 test1.c
-rw-r--r-- 1 root root   59 May 28 14:03 test.c
[root@VM-16-3-centos ~]# rm -fr 2025.5.27
[root@VM-16-3-centos ~]# ll
total 8
drwxr-xr-x 3 root root 4096 May 28 01:18 a
-rw-r--r-- 1 root root    0 May 28 13:45 code.c
-rw-r--r-- 1 root root    0 May 27 21:39 test1.c
-rw-r--r-- 1 root root   59 May 28 14:03 test.c

8. * 符号

在linux中可以任意搭配,ls *.c 就会打印出所有存在的 .c 文件,单一 * 指的是当前目录(将隐藏目录、隐藏文件去除在外的)

[root@VM-16-3-centos ~]# ls *.c
code.c  test1.c  test.c

9.man指令

man指令+某个命令名称 = 给出该命令的作用、用法等,比如 man pwd 以后就会弹出下面的界面,查看完以后按q退出

如果某个命令有好几页的解释,那么可以通过 "man 1 命令名" 格式查看,man man 以后出现的手册可以查看具体每一页会有些什么内容,默认查看的是第一页解释;如果查看不了其他页的内容,需要输入下面的命令安装

# yum install -y man-pages

10.cp命令

cp(copy)命令用来将某个文件的内容,拷贝到另一个文件;如果另一个文件不存在,那么就会自动创建;并且可以拷贝到 该目录下or目录中子目录or上一级目录 ,这种拷贝方式无法对目录进行拷贝,需要加上 -r 才能对目录进行拷贝;同时在同一层目录当中,不能有同名文件;需要注意的是,如果 cp 拷贝到的地方为目录,(无论拷贝的是普通文件还是目录)一般会把指定文件拷贝到指定的目录内部(前提是拷贝到一个已经存在的目录内,如果不存在就在同一层新建一个目录,数据拷贝到该目录内)

[root@VM-16-3-centos ~]# cp hello.txt tt.txt
[root@VM-16-3-centos ~]# ll
total 16
drwxr-xr-x 3 root root 4096 May 28 01:18 a[root@VM-16-3-centos ~]# cp hello.txt ../a.txt
[root@VM-16-3-centos ~]# ll ..
total 76
-rw-r--r--    1 root root    32 May 28 15:47 a.txt[root@VM-16-3-centos ~]# cp -r a a-backup
[root@VM-16-3-centos ~]# ll
total 20
drwxr-xr-x 3 root root 4096 May 28 01:18 a
drwxr-xr-x 3 root root 4096 May 28 15:50 a-backup

如果想要把a目录覆盖赋值到目标目录中,那么就会有覆盖提示;此时只需要输入 y+enter 即可,如果不想被提示可以通过 -f 命令行选项,但如果是超级管理员还是会弹出(可以切换成普通用户来使用)

http://www.xdnf.cn/news/699283.html

相关文章:

  • Python常用模块实用指南
  • Python人工智能算法学习 禁忌搜索算法求解旅行商问题(TSP)的研究与实现
  • .net Winfrom 如何将窗口设置为MDI容器
  • QGIS新手教程2:线图层与多边形图层基础操作指南(点线互转、中心点提取与WKT导出)
  • Git:现代软件开发的基石——原理、实践与行业智慧·优雅草卓伊凡
  • go实例化结构体的方式
  • 【C/C++】设计模式之工厂模式:从简单到抽象的演进
  • 《接口和抽象类到底怎么选?设计原则与经典误区解析》
  • com.alibaba.fastjson.JSONException: default constructor not found.
  • 【25-cv-05887、25-cv-05893、25-cv-05897】一张图片连发3案!
  • 【Python实例】读取/处理 Landsat LST数据
  • Three.js引擎基础
  • HIS系统——药库管理模块功能解析
  • 【操作系统】内存管理知识点深度解析
  • 直播框架:基础知识点
  • 【基础题库回复四则】2022-1-26
  • git提交更改
  • 三强联合!Attention+LSTM,结合特征融合,起手二区!
  • 从“被动养老”到“主动健康管理”:平台如何重构代际关系?
  • Linux上给SD卡创建分区
  • 光谱相机在生态修复监测中的应用
  • LeetCode 463. 岛屿的周长 java题解
  • 软件测试之黑盒测试与白盒测试详解
  • python 小工具,获取 github 仓库信息
  • ORDER BY子句在一个 SQL 查询中只能出现一次
  • 全球轨道铺设设备市场发展现状与未来趋势分析
  • HDFS:解锁大数据存储的奥秘
  • 54、C# 委托 (Delegate)
  • Maven 项目中集成数据库文档生成工具
  • leetcode hot100刷题日记——23.数组中的第K个最大元素