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

【Linux】基本指令

环境: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 后⾯加秒数,亦即『过⼏秒后关机』的意思

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

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

      相关文章:

    • c++——友元函数
    • Java大视界:Java大数据在智能医疗电子健康档案数据挖掘与健康服务创新>
    • Android无需授权直接访问Android/data目录漏洞
    • K8s与Helm实战:从入门到精通
    • MySQL数据丢失救援办法
    • 物联网iot、mqtt协议与华为云平台的综合实践(万字0基础保姆级教程)
    • 抖音回应:没有自建外卖,就是在团购的基础上增加的配送功能
    • 游戏开发日志
    • Android回调机制入门
    • Ambiguity-Resolved Waveform Design for Cell-free OFDM-Based ISAC Systems
    • QuecPython-正则表达式
    • 研华PCI-1285/1285E 系列------(一概述)
    • LVS(Linux virtual server)-实现四层负载均衡
    • Spring Boot 与微服务详细总结
    • 软件测试理论02—测试流程体系
    • 云端成本治理利器:亚马逊云科技智能仪表盘(AWS Cost Intelligence Dashboard)深度解析
    • 练习三:熟知前端知识
    • Django3 - Web前端开发基础 HTML、CSS和JavaScript
    • web.m3u8流媒体视频处理
    • 服装公司生产管理系统,如何实战提升生产效率?
    • 张量交换维度(转置),其实是交换了元素的排列顺序
    • 如何实现电脑自动关机与定时任务管理
    • ABP VNext + Temporal:分布式工作流与 Saga
    • react+antd 可拖拽模态框组件
    • 尚庭公寓-----day2 业务功能实现
    • 物联网系统中的可视化大屏定义
    • 华为仓颉编程语言语法简介与示例
    • React 的 `cache()` 函数
    • 医疗AI与融合数据库的整合:挑战、架构与未来展望(下)
    • Java行为型模式---状态模式