Linux基本命令


Linux系统下的文件类型、权限、所属用户与组

  • 文件类型

    - (文件)

    d(目录) ->类似windows系统下的文件夹

    l (链接) ->类似windows系统下的快捷方式

  • 文件权限分为三种

    1.可读r(read)

    2.可写w(write)

    3.可执行x(针对于脚本文件,比如shell脚本)

    ps. 特殊字符 - 表示没有任何权限

    pps. 还可以用数字表示权限

      r  w  x

      22  21   20

      4  2  1

  • 文件的归属

    1.拥有者(u)

    2.属于组(g)

    3.其他人(o)

  • 举例

  -rw-rw-r--

  	十个字符代表不同的含义
- rw- rw- r-- (用数字表示为:664)
拥有者 属于组 其他人 第一个字符 - 表示的是文件的类型
后面九个字符,分为三组,表示此文件针对不同用户的权限关系 beifeng beifeng
↓ ↓
文件拥有者 文件所属组 4096/65
如果是文件,则数字为文件大小 ->65
如果是目录,则数字为目录下文件数量 ->4096 sep 28 12:15
创建时间

权限命令chmod、文件所属用户和组改变命令

  • 权限命令chmod
  查询命令使用方法
man cmdName 自动补全命令行 【Tab键】 设置文件对不同用户的权限
# chmod (change mode)
eg: -rw-r--r-- 1 zhaozhuang staff 16 Feb 3 21:58 readme.txt
需求:对于同组用户来说,可读可写;对于其他用户来说,既不可读也不可写。
# chmod g+w readme.txt
# chmod o-r readme.txt
数字形式修改会原来的权限:
-rw-rw---- 1 zhaozhuang staff 16 Feb 3 21:58 readme.txt
# chmod 644 readme.txt 如果要针对一个目录设置权限,但目录中有很多文件,且需要同样的权限设置

-R, --recursive 递归
change files and directories recursively
# chmod -R 目录路径 文件拷贝
cp 文件名称 要拷贝到的目录
  • 改变文件拥有者和所属组
  改变拥有者
# chown 要改变的拥有者用户名 文件所在全路径 改变所属组
# chgrp 要改变的所属组名称 文件所在全路径 同时改变拥有者和所属组,并一条命令解决
# chown 要改变的拥有者用户名:要改变的所属组名 文件所在全路径

文件的两种创建方式、vi常用的快捷键及查看文件常见的几种方式

文件的两种创建方式

  $ touch 文件名+后缀

  $ vi/vim 文件名+后缀
  对文件的内容进行追加
$ echo "追加的内容" >> 追加的文件名

vi常用快捷键

  在vi查看模式下
dd:删除光标所在的行的内容
ZZ:保存文件内容
x :删除光标处的字符
o :表示在光标的下一行进行插入

查看文件常见的几种方式

  查看文件的全部内容
cat 文件名+后缀 ->(一般文件内容比较少的时候用)
more 文件名+后缀 ->(文件内容比较多的时候用,会对文件内容进行翻页查看) 查看文件末尾的内容
tail [-f] 文件名+后缀 ->(通常与-f连用,适合于查看服务实时动态日志信息)
如果要看指定末尾行数的内容,在f前面加数值即可
eg. tail -200f install.log 查看文件开头的内容
head 文件名+后缀 (适用于查看文件格式、内容模板样式)

文件的拷贝、移动、重命名及删除

  创建目录
& mkdir 目录名称 拷贝文件
拷贝一个文件到一个目录中去
$ cp 文件名称 目录名称
拷贝一个文件的内容到一个新文件中去
$ cp 文件名称 新文件名称 拷贝目录
$ cp -r 目录名称 新目录名称
如果不加-r递归的话,就会报cp:omitting directory的错误
 移动、重命名文件和目录
重命名 ->(当源文件和目标文件在同一个目录下时)
$ mv 源文件名称 新的名称
eg. $ mv test-dir/ sub-dir
$ mv 源目录名称 新的名称
eg. $ mv test.txt test.log
移动 ->(当源文件和目标文件不再同一个目录下时)
$ mv 源文件名称 要移动的目录
eg. $ mv
$ mv 源文件名称 要移动内容的文件名称 ->>(将源文件中的内容移动到了新的文件中去)
  文件的删除
$ rmdir 目录路径 ->(只能删除空的目录)
$ rm -rf 目录名称路径 ->(可以删除不是empty的目录,所以要慎用,一定要确定路径为绝对路径)
-f, --force (强制)
ignore nonexistent files and arguments, never prompt
忽视不存在的文件和参数,不会提示

目录的递归创建和删除以及如何创建软链接和硬链接

  创建多级目录
$ mkdir -p 多级目录
-p, --parents
no error if existing, make parent directories as needed
不存在错误时,根据需要创建父级目录
  软链接(soft link)
硬连接(hard link)
区别:在删除链接时,是否删除源文件 创建一个软链接
$ ln -s file/dir linkName
eg.ln -s readme.txt rm.txt
lrwxrwxrwx. 1 beifeng beifeng 10 2月 5 13:55 rm.txt -> readme.txt 创建一个硬链接
$ ln file/dir linkName
eg. $ ln www.ibeifeng.access.log bf-log
-rw-rw-r--. 2 beifeng beifeng 0 2月 5 13:59 bf-log 使用场景:
/opt/hadoop/conf /opt/hbase/conf
core-site.xml ln -> core-site.xml
hdfs-site.xml ln -> hdfs-site.xml
当源文件做出修改时 链接文件也会修改
所以链接的作用之一:保持一致性
  文件搜索
能记得文件名称时
$ find ~/ -name fileName
模糊记得文件名称
$ find ~/ -name 文件名称开头的几个字母\*

【Linux基础总结】Linux基本命令的更多相关文章

  1. Linux基础之常用基本命令备忘

    Linux基础之常用基本命令备忘 PWD   查询当前所在Linux上的位置 /         根目录 CD(change directory)切换目录  语法 CD /(注意添加空格)   LS ...

  2. Linux基础与Linux下C语言编程基础

    Linux基础 1 Linux命令 如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命令行进行使用. 登录Linux后,我们就可以在#或$符后面去输入命令,有 ...

  3. SLAM+语音机器人DIY系列:(一)Linux基础——1.Linux简介

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  4. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  5. 【转】Linux基础与Linux下C语言编程基础

    原文:https://www.cnblogs.com/huyufeng/p/4841232.html ------------------------------------------------- ...

  6. Linux基础-兄弟连Linux

    Linux基础增强与辅助知识梳理... ------------ Linux学习基础需要学习那些知识 学习Linux对于程序开发的好处 怎样开始学习Linux Linux的学习方法参考 Linux系统 ...

  7. Linux基础:Linux环境下安装JDK

    title: Linux基础:JDK的及环境变量配置 author: Enjoyitlife.top date: 2019-10-09 20:50:36 tags: Linux JDK categor ...

  8. Linux基础系列—Linux体系结构和Linux内核结构

    /** ****************************************************************************** * @author    暴走的小 ...

  9. 【Linux基础】Linux常用命令汇总

    3-1文件目录操作命令(cd pwd mkdir rmdir rm) 绝对路径:由根目录(/)开始写起的文件名或目录名称, 例如 /home/dmtsai/.bashrc: 相对路径:相对于目前路径的 ...

  10. Linux基础之Linux简介

    Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码的类UNIX操作系统. Linux简介 Linux(英语发音:/ˈlɪnəks/ lin-əks)是一种自由和开放源代码 ...

随机推荐

  1. Labyrinth 树的直径加DFS

    The northern part of the Pyramid contains a very large and complicated labyrinth. The labyrinth is d ...

  2. notepad++批量每行加字符

    移动光标到头 选择正则 输入^ 下面输入需要加的文本. 点替换

  3. PHP函数:get_class()

    get_class()  -返回对象的类名 说明: get_class ([ object $object = NULL ] ) : string 参数: object:要测试的对象.如果在类里,此参 ...

  4. Springboot:第一个Springboot程序(一)

    1.创建Springboot项目 选择创建Springboot项目: 填写项目基本信息: 选择Springboot版本以及web依赖(内嵌tomcat): 创建完成: 创建完成后 等待构建maven项 ...

  5. DEV gridview 合并单元格

    private void gv_docargo_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e ...

  6. pytorch中的前项计算和反向传播

    前项计算1 import torch # (3*(x+2)^2)/4 #grad_fn 保留计算的过程 x = torch.ones([2,2],requires_grad=True) print(x ...

  7. Java 理解类加载过程 -- 自定义加载器

    类加载器可以看下我的收藏: https://www.cnblogs.com/dongguacai/p/5879931.html 现在准备一个字节码文件: 自定义加载器: package com.xzl ...

  8. python学习07列表

    '''列表''''''列表:是可变的序列,也是一种可以存储各种数据类型的集合 用[]中括号表示列表的开始和结束:元素之间用,逗号隔开 '''l1=[] #空列表print(len(l1))l2=[&q ...

  9. 【JAVA基础】04 Java语言基础:方法

    1. 方法概述和格式说明 为什么要有方法 提高代码的复用性 什么是方法 完成特定功能的代码块. 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {     方法 ...

  10. 工具 在 Nuget 发布自己的包

    MSDN : https://docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-visual-s ...