首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Linux】基本指令

【Linux】基本指令

作者头像
羚羊角
发布2025-07-20 08:40:07
发布2025-07-20 08:40:07
3770
举报

环境:Ubuntu 

  • CTRL + C:如果在命令行中出现了异常,可以用他来终止异常
  • CTRL + R:快速搜索历史命令
  • CTRL + D:退出当前用户,但不退出Xshell
  • 上下键:寻找历史命令
  • [Tab]按键:快速按两下,具有 命令补全 和 档案补⻬ 的功能
  • Alt + Enter :全屏、退出全屏
  • clear:清屏
  • who am i:查看当前用户
  • pwd :显示当前用户所在目录(目录==文件夹

linux中的路径分隔符是 / ,win是 \ 。路径的最后一个文件(如上图的lesson2),可能是普通文件,也可能是一个目录,我们不确定,但我们能确定最后一个文件之前的全是目录。 

 1.mkdir、man、tree

  • mkdir  文件名:创建目录
  • mkdir -p 路径:一次性创建一串路径
  • man 命令:man是一个在线手册,可以查看命令的用法(按Q退出) 
  • tree 指定目录:树形结构展示指定目录的内容
  •  tree .:树形结构展示当前目录的内容 (tree .. 就是展示上级目录)

2. ls、touch、which、alias

  • 文件 = 内容 + 属性  (学习文件:要么对内容操作,要么对属性操作
  • 显示当前我这个用户所处的目录下的文件:ll、ls、ls -l ( - 后面的是选项)

ls 和 ls -l 的区别:

  • ls:显示时,默认只会显示文件名属性
  • ls -l:除了会显示文件名,还会显示更多的属性。 

ls -l后,显示出来的所有属性的第一个字母为d,就表示这个文件类型是目录

  • ls 指定目录 :查看指定目录下的文件

目录本身也是个文件,如果我们想查看这个目录本身,不想进到这个目录里去,不想看目录里的内容。

  •  ls -d:查看目录本身的属性
  •  touch 文件名:新建一个普通文件
  • touch 已经存在的文件:更新文件的时间 
  • which 命令:查找命令,指定目录下去查找指定命令

所以,命令的本质就是一个可执行普通文件,相当于我们写的C/C++程序,用命令的路径也能执行相关操作。

  •  ls -a:显示隐藏文件
  • ls -a 和 ls 的区别 :ls -a会显示 . .. 

可以给ls传递2个选项,并且写法很随意。

  • alias 别名=命令:给命令取别名
  • ls -al 和 ll 的区别:ll  是 ls -al的别名
  •  在linux中,以点开头的文件是隐藏文件。 

隐藏文件该可以是目录。 

3. cd、stat

  • cd + 路径:更改目录

 任何一个目录,即便是个空目录,系统都会自带 . 和 .. 目录。

  • 一个点 . : 当前目录
  • 两个点 .. :上级目录
  • cd  . :就在当前目录
  • cd .. 返回上级目录

如果我们一直回退,一直回退到不能回退。

此时就是回退到只剩下/,这里的/就不再是路径分隔符,而是linux的根目录。 

我们可以用ls -d查看这个根目录本身,并且可以发现这个/的属性是以d开头的,证明/是个目录。

Linux的文件结构,是一颗从根目录(也就是/)开始的多叉树。 

  • 叶子节点:一定是普通文件或者空目录
  • 非叶子节点:一定是一个非空目录

任何父节点都有多个孩子,但是任何节点都只有一个父节点,逆向推导“从下往上”的路径具有唯一性。 

比如这个路径/root/classcode/lesson2 ,具有唯一性,这种表示方法也叫绝对路径

假设我们现在在movie这个目录里

 我们想去到mydir这个目录里,可以先返回上一级,再进到mydir目录。

这种以 非根目录/  为参照位置,定位文件,就叫相对路径

ls查看文件也是能用相对路径和绝对路径。

  • cd ~:回到当前用户自己的家目录
  • 家目录: 任何用户,用特定的用户名,一登录系统时,就默认在的路径。
  •  cd -最近所处的路径
  • stat 文件名:显示文件的更多时间和更多属性

可以看到这里有3种时间。

Access:最近被访问的时间

Modify、Change:改动的时间 

4. rm、cp

  • rmdir:默认只能删除空目录,非空目录不能删,普通文件不能删
  • rm 文件名:默认只能删除普通文件
  • rm -f 文件名:不要二次确认,直接强制删除(Ubuntu系统没有二次提醒
  • rm -r:可以删除目录

同一目录下的文件不能同名,不同目录下可以同名。

  • cp 源文件 目标文件:拷贝普通文件到另一个文件,如果目标文件不存在,会先创建一个文件再拷贝
  • cp 源文件 指定路径/文件名:将文件拷贝到指定路径下的文件去(绝对路径或相对路径都可以),文件不存在会先创建
  • cp 源文件 指定路径:只有指定路径的话,就会把被拷贝文件原名拷贝到指定路径去。
  • cp -r 源目录 目标目录:将原目录拷贝到目标目录。

目标目录不存在时:自动新建目标目录,然后把源目录里的内容拷贝到目标目录 

 目标目录存在时:直接把源目录整体拷贝进目标目录

5. nano、echo、cat、printf

 在Linux系统中,一切皆文件包括键盘、显示器,系统在启动时,会自动打开如下3个文件:

  •   printf:打印内容,和C语言里的printf不是一个东西,只是叫法一样
  • nano:一个记事本( CTRL+X  ->  Y(保存)  ->  Enter  退出记事本)
  • echo '内容':把引号里的内容当作字符串打印出来,默认打印到显示器文件(就是向显示器文件写入
  • cat 文件名:显示指定文件里的内容
  • cat:默认从键盘文件里读数据,往显示器文件里写入(ctrl+c终止)
  • cat -n 文件名:可以打印行号
  • cat < 文件名输入重定向操作,从指定文件里读 

cat 文件名 和 cat < 文件名 两个操作虽然结果一样,但不是同一个东西。

  • echo '内容' > 文件输出重定向操作,将引号里的内容往指定文件里写入

文件不存在:先新创建这个文件,再写入

文件已存在:新写入的内容会覆盖此文件里的旧内容

  • echo '内容'  >>  文件追加重定向操作,将引号里的内容往指定文件里写入,但不会覆盖之前的内容
  • > 不存在的文件名:>的左侧什么都没有,可直接新建普通文件
  • > 已存在的文件名:>的左侧什么都没有,可直接清空这个文件
  • /dev/pts:设备文件

c开头文件:字符文件 

  •  echo 'helloworld' >/dev/pts/0:向自己或别的设备文件输出

这也是重定向操作。

文件类型:区分文件类型不看后缀,但是需要用到文件后缀

  • d:目录文件
  • -:普通文件,如文本,可执行文件,库,图片,视频...
  • c:字符文件,如键盘,显示器,终端,输入的数据具有顺序性
  • b:块设备文件,如磁盘(Linux下查看路径 /dev/vda ),不可以直接打开
  • l:链接文件
  • p:管道文件

区分文件类型不看后缀,但是有的工具需要用到文件后缀(如gcc只认定.c文件)

  • mkfifo 文件名:创建管道文件 

6.mv、tac、head、tail

  • mv 源文件 目标路径:剪切源文件(可以是普通文件也可以是目录)到目标路径
  • mv 已存在文件 不存在文件名:对已存在的文件进行重命名
  • tac 文件名反向打印文件里的内容 
  • more 文件名:文件内容很多时只会显示满屏的内容(Q退出)
  • less:和more差不多
  • tail -n 文件名:只查看文件的后n行内容
  • head -n 文件名:只查看文件的前n行内容
  •  head -n 文件名 | tail -m:查看 n-m 到 n 行区间的内容
  • 这个 | 就是一个管道 ,可以批量化处理指令,管道也是一个文件

7.date、cal、find、grep

  • date +[选项]:查日期

  • %H : ⼩时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于 %H:%M:%S
  • %d : ⽇ (01..31)
  • %m : ⽉份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d

时间戳:Unix时间戳(英⽂为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1⽉1⽇(UTC/GMT的午夜)开始到现在所经过的秒数,不考虑闰秒

  •  时间->时间戳:date +%s
  •  时间戳->时间:date -d@1508749502

上面的0时间戳显示的时间也能证明时间戳是从1970年1⽉1⽇开始的,早上8点是北京时间。

时间戳可以转换为时间,日志里的时间用时间戳表示的,方便用户区间查找

  • cal:看当月的日历
  • cal 时间:看具体年月的日历
  • find 路径 -name *.c:*表示所有,*.c就是所有以.c结尾的文件,从指定路径开始,按名字查找所有以.c结尾的文件

 上面意思就是:从家目录开始按名字找所有以.c结尾的文件。

  • grep [选项] ‘搜寻字符串’ ⽂件:在⽂件中搜索字符串,将找到的打印出来(可用来过滤文本

  • -i :忽略⼤⼩写的不同,所以⼤⼩写视为相同
  • -n :顺便输出⾏号
  • -v :反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏

8.zip/unzip、sz/rz、tar、scp

打包:把几个文件合并,可以防止文件丢失

压缩:减少文件体积,节省存储空间,网络传送时,可以有效减少网络传送的时间。

zip/unzip、tar这两套命令是Linux中最常见的打包压缩命令,zip/unzip工具区分文件后缀,建议把压缩文件后缀设为.zip。

  • zip -r 压缩文件名.zip 目标文件:将目标文件压缩

压缩目录的时候就要加上-r选项。

  • unzip xxx.zip:解压缩文件,默认解压到当前目录下
  • unzip xxx.zip -d 指定路径:将压缩文件解压到指定路径下

Linux和Windows文件互传:

  • sz xxx.zip:发送zip文件到Windows系统

指令执行之后就会出现Windows的弹窗 

这里直接放到桌面,传送完成后在我们的电脑桌面就会出现这个lesson4.zip

在Windows系统对这个 lesson4.zip 解压缩,内容就是Linux里面的东西。

 上面演示的是Linux往Windows传,Windows也能往Linux传。

  • rz:直接回车就可以了,接收Windows的文件

这个文件要解压就用unzip解压。

  • 除了用rz这个命令,我们还可以直接在Windows里拖拽式的传文件给Linux。
  •  tar [选项] xxx.tgz 目标文件:把目标文件打包压缩成xxx.tgz

  • -c :建⽴⼀个压缩⽂件(create 的意思);
  • -x :解开⼀个压缩⽂件!
  • -t :查看 tarfile ⾥⾯的⽂件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要⽤ gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要⽤ bzip2 压缩?
  • -v :压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!
  • -f :使⽤档名(注意:在 f 之后要⽴即接压缩包名称!不要再加参数!)
  • -C : 解压到指定⽬录

 选项czf意思就是,c创建一个压缩包,并且z要压缩,并且f对这个压缩包命名成lesson4.tgz。

这就是压缩,如果我们要地这个压缩包解压缩,如下。

选项x就是解开压缩包,就是解压缩。 

  • tar czf xxx.tgz 目标文件:把目标文件打包压缩成xxx.tgz
  •  tar xzf xxx.tgz:把压缩文件xxx.tgz进行解压缩
  • tar xzf xxx.tgz -C 指定路径:把压缩文件xxx.tgz解压缩到指定路径

Linux和Linux文件互传:

  • scp 源文件 用户名@公网IP:目标机器的指定路径 :远程拷贝源文件到 用户名@公网IP 下的这台机器中的指定路径里

9.bc、uname、history

  • bc:一个简单的计算器(CTRL+Z退出)
  • uname:⽤来获取电脑和操作系统的相关信息,可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。

  • -r:查看内核版本
  • -a或‒all:详细输出所有信息,查看体系结构(芯片结构)
  • 如果不是Ubuntu,-a或‒all展示的依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
  • history:展示我们历史上用过的命令
  • shutdown [选项]:关机

  • -h:将系统的服务停掉后,⽴即关机。
  • -r:在将系统的服务停掉之后就重新启动
  • -t sec:-t 后⾯加秒数,亦即『过⼏秒后关机』的意思

本篇分享就到这里,我们下篇见~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境:Ubuntu 
  •  1.mkdir、man、tree
  • 2. ls、touch、which、alias
  • 3. cd、stat
  • 4. rm、cp
  • 5. nano、echo、cat、printf
  • 6.mv、tac、head、tail
  • 7.date、cal、find、grep
  • 8.zip/unzip、sz/rz、tar、scp
  • 9.bc、uname、history
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档