Linux命令 笔记(一)

欢迎关注我的微信公众号:MatlabGUI QtCPP等学习记录

Contents

Preface

常用的Linux命令

常用命令目录处理命令

文件处理命令

链接命令

权限管理命令

Preface

首先介绍一下笔记的主要来源:B站上兄弟连的Linux视频的笔记,大部分还是老师讲的内容,有的地方加了我自己的理解,这里做一个整理。

这老师上课用的是CentOS的系统,放到Ubuntu上来只有细小部分不太一样,基本还是差不多的,感兴趣的可以去B站上搜索学习

自从装了双系统后,好久都没有进入过Linux系统了,基本都在Windows上办公,主要用MATLAB还是在Windows上好用

这两天把笔记拿出来看了看,还是觉得写篇推送复习起来比较方便(虽然比较费事)!一直就觉得把这个推送当成云笔记是一件很方便的事

还有最近几个月可能会很少更新MATLAB的内容(我感觉我也忘得差不多了。。。)。

常用的Linux命令

常用命令

  1. ls: 显示目录中的文件

这只是最简单的用法,

ls [-aldhi] [文件或目录]

ald是可选的选项,可以不加,文件或目录是这个命令的参数,也可以不加!

-a:显示所有文件(all)
-l:显示文件的详细信息(包括文件的大小(字节数)权限等)
-d:只查看当前文件夹中的目录
-h:与-l一块用时会把字节数转化成具体的k/M/G等单位
-i:查看文件的i-node,这个i节点相当于指针,指向文件的起始位置

上图中的 drwxr-xr-x 实际上应该是分为如下的4部分:
d : 第一个字母,文件的类型,d表示这是一个文件夹
rwx:2-4这三个字母是该文件所属者所拥有的权限分别表示:可读,可写,可执行
r-x:5-7这三个字母是文件所属组所拥有的权限,含义同上,-表示没有该位置对应的权限
r-x: 其他人所有的权限

紧接着这串字符的后面的 数字 表示 该文件的引用计数,只有当引用计数为0时文件才会被彻底的删干净,就和C++中的 shared_ptr 差不多!
不过想一下子删干净可以把文件内容重定向到 /dev/null文件夹,然后rm,这在后面说

紧接着后面的那两个分别表示文件的所有者,和文件的所属组,如下面的那个图中的结果都是root的。

目录处理命令

  1. mkdir 创建新目录

mkdir [-p] 文件夹名
-p 表示递归创建
 

可以看到,我们递归创建了一个文件夹

  1. cd 切换目录

cd 目录

这部分就不演示了,提一下两个特殊的符号
./   表示当前文件夹
../  表示上层目录

  1. pwd 返回当前路径

  2. rmdir 删除目录

rmdir 目录名
只能是空目录,比如删除刚刚上面创建的Mitch目录就会失败
 

  1. cp 复制文件或目录

cp [-rp] [源文件或目录] [目标目录]

-r 复制目录,复制目录的话,一定要加 -r
-p 复制时,保留源文件的属性

可同时复制多个目录或文件,反正最后一个是目标目录

下面是把Mitch文件夹中的 Hong文件夹复制出来

  1. mv 剪切文件 或者 是对文件改名

mv [源文件或目录] [目标文件或目录]

你把文件剪切到文件所在的文件夹中就相当于改名了

  1. rm 删除文件

rm [-rf] [文件或目录]
-r 删除目录
-f 强制删除,都不用确认的那种

Actually rm只会让文件的引用计数减一,可能并没有真的删除掉文件,你要删除文件最好按照如下的方式:
> 文件名 这会使得文件的内容瞬间为空,然后再用rm把文件删掉。

如:源文件内容如下:

执行重定向后:

执行rm后,文件没了:

文件处理命令

  1. touch 创建空文件

touch 文件名

就算是在带有GUI的LIUNX系统中,你右键,也是没有创建文件的选项的,你只能用命令来创建文件。在带GUI的LINUX中可以用gedit来编辑文件,也可以用vim。

touch在上面已经演示过了

  1. cat 显示文件内容

cat [-n] 文件名

-n 显示行号

  1. tac 倒着显示文件中的内容

tac 文件名

  1. more 分页显示文件的内容

当文件的内容太多时,当前的命令行窗口放不下这么多的内容,就要分页查看了

more 文件名

不过不能往回翻着看!!!!

还是读上面的那个 M.txt 文件中的内容,这回我把命令行窗口缩小小的。这样就放不下了

空格/f  翻页
Enter      看下一行
q/Q         退出查看

  1. less 分页显示文件的内容
    与上面的 more 不同的是,这个可以向上或者向下翻页,用PageUP和PageDown来控制

  2. head 查看文件的前面几行

head 文件名;默认查看10行

head -n 行数 文件名;查看指定的前面若干行

  1. tail 显示文件后面的几行

tail 文件名;默认查看后10行

tail -n 行数 文件名;查看指定的后面若干行

链接命令

  1. ln 生成链接文件

ln [-s] [源文件] [目标文件]

-s  表示生成的是软链接,不加-s 则生成的是硬链接

软连接

  • 软链接  类似于Windows中的 快捷方式

  • 软连接的文件类型是 "l" ,"lrwxrwxrwx"。软连接的文件权限并不管用,它还是得按照实际指向的文件来!

  • 用 ls -l 命令时,软连接那一行会有一个箭头指向它所链接的文件!

如上图,我自己写了一个简单的c++程序:
编译输出为:test;
然后用ls -lh查看了这个可执行文件的详细属性;
然后用ln创建了一个软连接;
最后查看这个软连接的详细属性!

硬连接

  • 硬链接相当于直接把文件给复制了一份;

  • 但是这个又和普通的复制不同,硬链接的文件会和源文件同步更新;

  • 如果你修改了链接文件,那么源文件也会同步跟着修改;

  • 硬链接的文件的 i-node 和源文件的 i-node 是相同的,也就是他们是共享数据的,都是指向同一块内存;

  • 每生成一个硬链接,相应文件的引用计数都会 加1 。

  • 硬链接 不能跨分区!

  • 目录没有硬链接!

权限管理命令

  1. chmod 改变文件或者目录的权限

上面讲 ls 命令的时候已经看到了文件的权限是什么样子的:

rwx  rwx  rwx
每三个一组,实际中是没有空格的,这里为了看的清楚加了空格!
第一组表示文件所有者的权限,第二组是文件所属组的权限,第三组是其他人的权限!

rwx这三个值用一个数字来表示就是:7
因为:7 = 4 + 2 + 1 = 2^2 + 2^1 + 1。
就是:这三个二进制的按位或:100,010,001

所以:r--    用数字表示就是:4
              -w- 用数字表示就是:2
              --x  用数字表示就是:1
              ---   用数字表示就是:0

所以:rwxrwxrwx 用数字表示就是 777,即权限全开。
             rwx------       用数字表示就是 700。
             rwxr-x---       用数字表示就是 750。

所以chmod常用的方法如下(其他方法不说了):

chmod [-R] [数字表达的权限] [文件或目录]

-R  :表示递归修改权限,就是把文件夹或者文件夹下的所有文件的权限一块改了!

文件的权限:rwx 好理解其含义。对于文件夹的权限的理解如下:

  • r  : 表示可以用 ls 列出文件夹中的内容

  • w: 表示可以在文件夹中创建或者删除文件

  • x : 表示可以进入目录!

  1. chown 改变文件或者目录的所有者
    需要root权限

chown [用户] [文件或者目录]

这个用户必须是系统中已经存在的用户

我一般用这个,把root的文件转化成普通用户的文件。或者是把普通用户的文件转化成root的文件(个人机器上使用时是这样!)

  1. chgrp 改变文件或者目录的所属组

用法同上

  1. umask 设置文件创建时的省缺值

umask [权限数字]

它是用777 减去 权限数字,剩下的作为创建文件时的省缺值。

比如,我设置 umask 777后 ,创建的文件的权限都是 :000,就是不管是谁没有任何权限!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值