最全Linux学习笔记

Linux学习笔记

Linux运维的岗位:

  • 运维开发
  • 应用运维
  • 系统运维工程师 :最顶级的
  • 云计算运维
  • 大数据运维
  • Linux系统运维

学习路径:

最全Linux学习笔记_第1张图片

  • 系统管理
  • 服务管理
  • 脚本开发
  • 系统扩展

常见站点系统架构演变

单机:

  • Http

  • PHP module

    • php app
  • mysql

  • http

  • tomcat

    • jsp app
  • Mysql

多机:

最全Linux学习笔记_第2张图片
缓存:

->page cache -> httpd->php app-> mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYHSByal-1585625846980)(C:\Users\15209\Pictures\博客\images\linux003.jpg)]

VNC :Virtual Network Computing 协议 :

  • 实现虚拟网络计算
  • 桌面共享
  • TigerVNC,RealVNC
  • C/S架构
  • vncviewer:client
  • vncserver:server
  • ftp://172.16.0.1/pub :统一资源定位符
  • ip_forward是开放的 server:172.16.0.1 192.168.0.254 192.168.1.254

ftp服务:ftp://172.16.0.1

http服务: http://172.16.01

dhcp服务:172.16.250.X

知识—>技能 :需要经过不断的练习

结果导向:只认功劳不认苦劳

主动学习:

  • 动手实践 40%
  • 讲给别人听 :70%
  • 写博客
    • what why when where who
    • how

被动学习:

  • 听课 :10%
  • 笔记 :20%

Linux 运维课程体系:

  • Linux入门
    • 操作系统基础概念
    • 系统管理的基本工具(文件管理,安装包管理)
    • linux服务及安全管理 :基本功,每个地方都用得到
      • Httdp lamp lnmp
      • Cache memcached varnish
      • DB:mysql (mariadb)
    • Linux集群
      • LB Cluster Ngnix LVS
      • HA Cluster Keepalived
    • Linux Ops:
      • ansible
    • Linux监控工具
      • Monitoring:zabbix
    • Shell编程
    • Http:
      • tomcat lnmt ,lamt session cluster
      • 分布式存储系统:
        • MogileFS,GlusterFS
      • Mysql:
        • HA Cluster
        • MHA机制
        • 备份恢复
        • MYSQL Replication
        • Read-Writer splitting
      • HA Cluster :Corosync+pacemaker, p cs/crmsh
      • LB Cluster: haproxy
      • NoSQL : redis ,mongadb,HBase
    • 运维工具:
      • puppet (自动化运维工具) saltstack,cobbler
    • 虚拟化:
      • linux操作系统原理:虚拟化技术原理
      • kvm虚拟化引用详解:xen虚拟化
      • 虚拟化网络:SDN 交换机,路由器,二层交易,三层交易
      • OpenStack:云栈,能管理物理机还能和Docker结合
    • Docker:容器云
    • ELK Stack :ElasticSearch (搜索引擎),Logstash(日志搜集),Kibana
    • 大数据 :研发很热,Hadoop v2,构建分布式集群,并行存储及分析平台
      • HBASE Hive
      • Storm ,Spark
    • 系统优化:二次优化
    • Python编程:
      • python开发工程师的目标
      • 案列
      • 每天一千行代码
  • RedHat:
    • RHCSA
    • RHCE
    • RHCA (架构师)

IT技术领域:

  • 研发
    • 硬件研发
    • 软件研发
  • 应用
    • Linux运维:Iinux生态圈中的各应用程序的应用
    • Shell脚本编程: 让应用自动化完成
    • Python:专业编程语言
      • ansible,openstack
    • DevOps:
      • development
      • Operation

计算机与操作系统:

​ ENIARC:

  • CPU:运算器,控制器,寄存器,缓存

  • 存储器:内存,RAM(Ramdon Access Memory)

  • INput Output

    程序:指令+数据

  • 算法+数据结构

OS的接口有俩种:

  • GUI :Graphic User Interface
  • CLI : Command Line Interface
    • bash
    • zsh
    • sh
    • csh
    • tesh

操作系统的功能:

  • 驱动程序
  • 进程管理
  • 安全
  • 网络功能
  • 内存管理
  • 文件系统

API: Aplication Programer Interface

​ 程序员面对的编程接口

POSIX:Portable Operation System

ABI :Application Binary Interfa

​ 程序应用者面对运行程序的接口

GUN:

​ 源码:编译成为二进制格式

​ gcc ,glibc,vi ,linux

​ Linux是由各发行商将源码编译成的

​ 发行版:数百种

​ Debian:Ubuntu(mint),knopix,(使用于技术更高的)

​ Slackware: SuSe,OpenSUSE

​ RedHat :RedHat9.0:

​ RedHat EnterPrise Linux:RHEL :18个月发行一次 (CentOS)

​ Fedora Core:6个月一个版本

​ Gentoo:(后起的)

​ ArchLinux:

软件程序:版本号

major.minor.release

  • linux:0.99,2.2,2.4
  • www.kernel.org

Linux :

​ GUN:发行版也有自己的版本号

Linux基础:

CPU架构

  • X86
  • X64(amd64)
  • m68000,m68k
  • arm系列(手持移动终端最常见的CPU)
  • ultrsparc solaris
  • power:性能极强,功耗和体积很大
    • 复杂指令集(Intel)
    • 精简指令集(power)
  • powerpc,ppc(简装版power),苹果工作站
  • HP :alpha hp-ux

汇编语言:portable极差

汇编器:支持交叉编译,cross compile

代码在各个平台编译,才能适用各种平台

  • 开源:提供源代码
  • 闭源:只提供二进制程序

Stallman:GUN

  • 开源协定:
    • GPL:General Public License
    • 任何一款软件只要遵循GPL协议,版权就归GPL,任务其他人只要内置GPL代码就得遵守GPL协定。
      • ​ copyleft
    • LGPL协议:更少要求的GPL协定
      • 基于库接口调用可以不开源
      • FSF :Free
    • GPL2 GPL3 :BSD
    • Apache:
      • ASF:Apache Software Foundation
    • 双线授权:
      • community:遵循开源协定
      • 商业授权版本 (Enterprise):提供额外的服务和功能(企业版)
  • 程序管理
    • 程序组成部分
      • 二进制文件
      • 配置文件(bin)
      • 库文件(lib)
      • 帮助文件
    • 程序包管理器
      • x:程序的组成文件打包成一个或有限几个文件:安装操作 卸载操作 查询
      • Debian :dpkg(deb) apt-get
      • RedHat: rpm yum -->dnf
      • S.uS.E :rpm , zypper
      • ArchLinux:port
      • Gentos :边安装边编译(很难玩,要求很高)
      • LFS: linux From Scratch
    • 安装Linux:
      • 虚拟机:linux
        • 计算机:CPU,内存,IO(可以复用 -》时序复用,空分复用) 操作系统就是一个虚拟机,将硬件虚拟出来,通过时分复用空分复用。
        • 专业的虚拟化软件程序
          • VMware
          • virtualbox(Oracle)
      • Centos的镜像站点:
        • http://mirrors.aliyun.com
        • http://mirrors.163.com
        • http://mirrors.sohu.com
        • 开始学的时候最好选择everything版本

ISO镜像:

  • 硬盘分区:留出一些空间
  • 用户界面:
    • GUI
      • GNome
      • KDE
    • CLI
      • bash
      • zsh
      • sh
    • ~]# ss -tnl :查看系统监听与tcp协议的22端口
    • ~]# ifconfig 或者 ip addr list
      • eth0:网卡名
    • iptables -L -n :查看防火墙
    • CentOS7:(关闭防火墙)
      • systemctl stop firewalld .service :关闭防火墙,只当时有效
      • systemctl disable firewalld.service
    • CentOS6:
      • service.iptables stop
      • chkconfig iptables off
  • echo $SHELL :查看shell类型

终端设备:

  • 多任务
  • 多用户 (时序复用,同时使用)
    • 用户接口程序(进程)
    • 键盘+显示器==terminal
  • 物理终端(控制台):console
  • 虚拟终端:Ctrl+Alt+F[1-6] tty
  • 图形终端: Ctrl+Alt+F7
  • 串行终端:如果不需要图形化界面,就不需要显卡 ttyS
  • 伪终端:桌面上打开的控制台窗口 :pty

Linux的哲学思想之一:一切皆文件

  • 表现之一:硬件设备也表示文文件
    • 物理终端: /dev/console
    • 虚拟终端: /dev/tty# [1,6]
    • 串行终端:/dev/ttyS#
    • 伪终端(远程连接窗口): /dev/pts/# #都代表数字
  • 在启动设备之后,在其上关联一个用户程序,即可实现与用户的交互
  • 查看终端设备:~]#tty

启动GUI

  • 在虚拟终端接口运行命令:startx &

接口:

  • CLI接口(命令行接口)
    • [root@csm ~]# command (前面是命令提示符)
    • 只能运行不依赖图形功能的程序
    • ~:代码用户当前所在的目录
    • root:代表用户
    • csm:主机名
    • ~]$ :普通用户
    • ~]# :管理员账号
  • 几个基础指令:
    • tty:查看当前终端设备
    • ifconfig :或 ip addr list
    • echo :回显
  • 关机指令:
    • Centos : systemctl poweroff systemctl reboot
    • *:
      • poweroff
      • reboot
      • halt

Linux的哲学思想:

  • 一切皆文件
    • 所有的系统资源,包括硬件设备,甚至通信接口等
    • open(),read(),close(),delete()
  • 由众多功能单一的程序组成
    • 一个程序只做件事,并且做好
    • 组合小程序完成复杂任务
  • 尽量避免和用户交互
    • 目标:易于以编程的方式实现自动化任务
  • 使用文本文件保存配置信息
    • 因为文本是最底层的

文件是什么?文件如何有效的组织起来?

分层级,自顶向下查找。

文件系统:

  • 层级结构 有索引
    • 所有的文件都从属于/:原初起点 :根目录
      • 第二层结构:子目录
      • 第三层结构 :倒置树状结构
  • 目录:实现路径映射
  • 文件:存储空间存储的一段数据流式数据
    • 对数据可以做到按名存取
  • 文件系统: /dev/pts/2 (路径映射)
    • ​ 最左侧的/ :表示根目录
    • ​ 其他的/ :表示分隔符是/
    • windows的分隔符是 \
  • 文件的路径表示有俩种:
    • 绝对路径
    • 相对路径
  • 文件名的使用法则:
    • 严格区分字符大小写
    • 目录也是文件,与文件不能同名(同一个路径下下)
    • 文件名支持使用除/外的任意字符:最长不能超过255字符
  • 用户有家目录: home
    • 用户的起始目录:普通用户管理文件的位置
  • 工作目录:
    • /etc/sysconfig/network-script/ifcfg-eno16666
    • basename: 最右侧的文件名或目录名
    • basename左侧的路径:叫dirname

命令的语法通用格式:

  • command options arguments
  • 多数系统命令都存放在:/bin /usr/local/bin /usr/bin
    • 管理命令:/sbin /usr/sbin /usr/local/sbin
    • 普通命令: /bin /usr/local/bin /usr/bin
  • 共享库: /lib目录下 /lib64 /usr/lib /usr/lib64 /usr/local/lib
    • 只能被其他有执行程序入口的程序调用使用
    • 32bit的库: /lib , /usr/lib , /usr/local/lib
    • 64bit的库: /lib64 ,/usr/lib64
    • 运行时会调用库
  • 命令必须遵循特定规范:
    • 格式规范 :exe ,msi , ELF(linux)
    • file /bin/ls :查看文件内容的类型
    • 并非所有的命令都有一个在某目录下对应的可执行文件
  • 命令分类:
    • 由Shell程序自带的命令 :内置命令(builtin)
    • 独立的可执行文件: 文件名即命令名(外部命令)—》配置了环境变量
  • Shell程序是个独立的程序:负责解析用户提供的命令
    • 词法分析
    • 语法分析
    • 想办法找到这个程序的文件在什么地方 :
      • 通过环境变量 PATH:从哪些路径中查找用户键入的命令字符串
      • 查找路径的顺序也很关键,自左向右的查找
    • 内置命令是不需要查找的
  • 查看命令类型:type command

OPTIONS:指定命令的运行特效

  • 调整命名执行时的功能

  • 指明要运行功能的哪部分代码

  • 选项有俩种表现形式:

    • 短选项: -C ,例如:-l ,id
      • 有些命令的选项没有-:
      • 如果同一个命令使用多个短选项,多数可以合并:-l -d =-ld
    • 长选项:–word,例如:–help --human-readable

ARGUMENTS:命令的作用对象

  • 注意: 不同命令的参数:有些命令可以同时带多个参数,多个之间用空白字符分隔

获取命令帮助:

  • 内部命令
  • help command
  • 外部命令
    • 每个命令都自带简要使用格式的使用帮助
      • command --help
    • 使用手册
      • manual :系统上得有这个手册
      • /usr/share/man/
      • SECTION
        • NAME :功能性说明
        • SYNOPSIS: 语法格式
        • 选项 :OPTION
        • 使用示例 EXAMPLE
      • SYNOPIS:
        • [] 可以选的内容
        • <>:必须提供的内容
        • a|b|c :多选一
        • …:同类内容可以出现多个
  • 使用手册(man):压缩格式的文件,有章节之分
    • 1:用户命令
    • 2:系统调用
    • 3:C库调用
    • 4:设备文件及特殊文件
    • 5:文件配置格式说明
    • 6:游戏使用帮助
    • 7:杂项
    • 8:管理工具及守护进程
  • 并非每个command在每个章节下都有手册

man命令的操作方法:

  • b:向文件首部翻一屏 ;
  • ctrl+d :向文件尾部翻半屏
  • ctrl+k: 向文件首部翻半屏
  • 回车键:向文件尾部翻一行
  • #G:跳转到指定行
  • 1G:跳转到文件首部

文本搜索:

  • /keyword:从文件首部向文件首部查找
  • ?keyword: 从文件尾部向文件首部查找

添加用户:

  • useradd gentoo
  • id gentoo (验证方式)
  • useradd -s /bin/tcsh slackware 指定shell为tcsh

获取命令的在线文档

  • info command

很多应用程序会自带帮助文档

  • /usr/share/doc/APP-VERSION
  • README :程序的相关信息
  • INSTALL:安装帮助

Linux文件系统:

  • 以.开头的文件为隐藏文件
  • .:当前目录
  • … :上一级目录
  • /etc/sysconfig/
  • 工作目录: working directory
  • 家目录: home

常用目录:

  • pwd (printing working directory)
  • cd (chage directory)
    • cd ~ :切换回自己的家目录
    • cd ~username: 切换到指定用户的家目录
    • cd - :上一次所在目录与当前所在目录来回切换
  • ls :(list)
    • -a 显示所有文件(包括隐藏文件)
    • -l : --long ,长格式,即显示文件的详细属性信息
      • 文件类型: d , b , c , l , s ,p
      • rw-r–r--:文件属主的权限
      • 数字文文件大小,单位是字节:
      • 时间:文件最后一次被修改的时间
    • -h 对单位大小单位换算,换算后可能非精确值
    • -d :查看目录自身而非内部文件
    • -r 逆序显示
    • -R :recursive :递归显示
  • cat : concatenate :连接文件并显示在标准输出上
    • 文本文件查看工具
    • 用 file /etc/fstab 查看文件类型是不是文本文件
    • -n 显示文本的行号
    • -E :显示结束符$
  • tac :文本文件查看工具
    • 文件内容是逆序的(每一行逆序显示)
  • file 命令 :查看文件内容类型
    • 用法格式:file [FILE] …
  • echo :回显命令
    • echo [OPTION ] [STRING]
    • -n 不再自动执行换行
    • -e 让转义符生效
      • \n 换行符
      • \t 制表符
      • \b 退格键(删除前一个字符)
    • String
      • 单引号:强引用,变量不执行替换
      • 双引号:弱引用,变量会被替换
    • 变量引用的正规符号
      • ${name}
  • shutdown [option ] [time] [WALL]
    • Opiton:
      • -h halt
      • -r +5
      • -c 取消关机
    • wall “lang lai le” :一台主机的多用户自己可以通信
  • 日期相关的命令
    • date :显示和设置时间(系统时钟)
      • ​ date [OPTION]… [+FORMAT]
      • FORMAT :格式符
        • %F
        • %T
        • %Y
        • %m
        • %s :从1970年1月1日(unix元年) 0点0分0秒到命令执行那一刻经过的秒数
      • ​ date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
      • 设定系统日期:
        • ​ date 101008082018 月日 时分 年
    • clock :查询设置系统的硬件时间(硬件时钟)
      • ​ 主板上的电池让主板上的硬件供电
    • hwclock :硬件时钟
    • cal :日历
      • man cal 用法
    • which
    • whereis
    • who
    • w

Linux 目录结构和根文件系统

  • 程序编译方式:
    • linux : glibc库
    • 动态连接 :不把库文件编译进来,运行的时候再调用 (有依赖性,移动之后可能不能运行)
    • 静态编译:编译的时候加入库文件,特点:体积大,消耗内存
  • 操作系统

FHS:

  • FIlesytem Hierarchy standard (文件层级系统标准)
  • /bin :所有用户可用的基本命令程序文件
  • /sbin :供系统管理使用的二进制程序
  • /boot: 引导加载器必须用到的各种静态文件 :kernel , initramf(initrd),grub等
  • /dev :设备文件,存储特殊文件或设备文件,设备有俩种类型:字符设备,块设备
  • /etc : 系统程序的 配置文件,只能为静态的。
  • /home: 非关键性目录,可以独立挂在一个分区,不是基本组成结构 /home/username
  • /lib: 基本共享库,为系统启动或根文件系统上的应用程序(/bin,/sbin)提供共享库,以及为内核提供内核模块。 libc.so.* :动态链接的c库 ld*:运行时的连接器/加载器 modules:用于存储内核模块的目录。
  • /lib64 :基本共享库(64位系统的)
  • /media: Mount point for removeable media:任何其他设备的的挂载目录(U盘,光盘便携式)
  • /mnt : 其他文件系统的临时挂载点
  • /opt :Add-on application software packages: 非关键性的第三方程序的安装包,可选路径;
  • /root: 管理员的家目录 :可选(管理员有没家无所谓,不应该登录)
  • /srv : 当前主机为服务提供的数据,一般用不到
  • /tmp : Temporary files :临时文件目录,几乎所有的用户都能用到,所有用户都能读写
  • /usr : usr Hierarchy
    • ​ 除了根之外,最重要的:全局共享(只读)资源
    • ​ 不需要用户在这个文件下创建文件
    • 子目录:
      • bin sbin
      • etc
      • include(c程序的头文件)
      • lib lib64
      • share (命令手册页和自带文档等架构)
      • local : local Hierarchy :让系统管理员安装本地应用程序,也通常用于安装第三方应用程序
  • /var Hierarchy:
    • variable data fiels : 管理员的日志数据 经常发生变化的数据的目录
    • 子目录:
      • cache
      • lib
      • local 为/usr/local 存储变化数据
      • opt 为/opt存储变化数据
      • tmp 系统从起后临时数据
  • /proc : 内核和进程信息的虚拟文件系统(为内核及进程存储相关信息)
    • 大多为内核的参数:例如 net.ipv4_forward,虚拟为/net/ipv4/ip_forward
    • 存储于/proc/sys/ ,因此其完整路径为:/proc/sys/net/ipv4/ip_forward
  • /sys
    • 虚拟文件系统,提供了一种比/proc更理想的访问内核数据的途径
    • 基于内存的虚拟文件系统,关机就没了
    • 目录结构
      • /devices
      • /dev
      • /bus :总线
      • /class

Linux系统上的文件类型

  • ls -l 最左侧的字母
  • -:常规文件 即f:
  • d:directory ,目录文件:完成路径映射
  • b:block device ,块设备文件:以“block”为单位进行随机访问
  • c: charactor device ,字符设备文件,支持以“character”为单位进行线性访问
    • major number:主设备号 ,用于标识设备类型,进而确定要加载的驱动程序
    • minor number :次设备号,用于标识同一类型中的不同设备
    • 8位二进制 (0,255)
  • l :symbolic link: 符号链接文件
    • 软链接文件
  • p :pipe,命名管道
  • s :socker,套接字文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-45jdPmEy-1585625846983)(C:\Users\15209\Pictures\博客\images\文件.jpg)]

基本命令:

  • which: which - shows the full path of (shell) commands.
  • 如果要运行原命令:\command
  • 获取命令别名:alias
  • shell 内部命令 :但是shell自身是外部的,shell带了很多内部的命令
  • 定义别名:
    • alias NAME =“command” :只对当前shell有效
    • 撤销别名:unalias NAME
  • whereis命令:whereis - locate the binary, source, and manual page files for a command
    • -m :查看man 手册路径
    • -b:仅搜索二进制程序路径
  • who命令:show who is logged on
    • -b :最近一次的启动时间
  • w命令: w - Show who is logged on and what they are doing.

bash的基础特性:

  • 命令历史: shell进程会在其会话中保存此前用户提交执行过的命令

    • history
    • 上下键
    • history会保存在文件中,登出了也还会存在
    • 定制history的功能,可通过环境变量实现
      • HISTSIZE :命令历史的条数
      • HISTFILE :在管理员家目录下 la -a : .bash_history
      • HISTFILESIZE: 历史文件大小
    • 命令用法: help history
      • -d :从指定位置删除历史
      • -c: 删除所有条目
      • -w : 将当前历史写入历史文件中
      • -r : 从历史文件中读回来
      • history 10 :显示最近10条命令
      • !5 :再一次执行历史列表中的第5条命令
      • !STRING :执行最近以STRING开头的命令 :重复执行需要依赖幂等性(多次执行结果相同)
      • 调用上一个命令的最后一个参数 esc + . (很好用的技巧) !$ 也可以
      • 控制命令历史记录的方式 : HISTCONTROL :
        • ​ 默认特性(忽略重复 ignordups)
        • ignorespace :忽略以空格开头的命令
        • ignoreboth :以上俩这同时生效
  • 命令补全

    • shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当做命令
    • 命令处理机制
      • 查找内部命令
      • 根据PATH环境变量中设定的目录,自左而右的查找命令
      • 按俩下tab :查找以指定字符开头的命令
      • 按一下tab:给定的打头字符串如果能唯一的标识某命令程序文件,则直接补全
    • 路劲补全:
      • 根据给定的起始路径来补全
    • 目录管理类的命令
      • mkdir :创建目录 mkdir /tmp/x/y/z
        • -p : 当路径不存在时,创建父目录
        • -v :显示详细过程
      • rmdir :仅用于删除空目录
        • -p : rmdir -p /tmp/x/y :先删除y,如果其父目录为空,再删除父目录
      • ~ :自动展开为用户的家目录,或指定用户的家目录
      • {}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
        • 例如: /tmp/{a,b} 相当于 /tmp/a /tmp/b
        • [root@csm ~]# mkdir -v /tmp/{a,b}_{c,d}
          mkdir: 已创建目录 “/tmp/a_c”
          mkdir: 已创建目录 “/tmp/a_d”
          mkdir: 已创建目录 “/tmp/b_c”
          mkdir: 已创建目录 “/tmp/b_d”
      • tree :显示目录结构 : list contents of directories in a tree-like format.
        • 参数(OPTIONS)
          • -L (level) :指定要显示的层级
    • bash的基础特性: 命令的执行状态结果(bash通过状态返回值来输出此结果)
      • 成功 : 0
      • 失败 :1-255
      • 命令执行完成之后,其状态返回值保存于bash $? 中。 echo $?
    • 命令正常执行时,有的还有命令返回值
      • 引用命令的执行结果 $(command) 或者 command mkdir $(date +%H-%M-%S) :执行结果
    • bash的基本特性: 引用
      • 强引用 ’ ’
      • 弱引用:" "
      • 命令引用:``
    • bash的基本特性:快捷键
      • ctrl+a :跳转到命令行首部
      • ctrl+e :跳转到命令行尾
      • ctrl +u :删除行首到光标所在处之间的所有字符
      • ctrl +k :删除光标到行位的所有字符
      • Ctrl+l : 想当于clear
    • 文本查看类命令:cat ,tac ,less ,more,tail,head,
      • 分屏查看命令:more less
        • more :只能向后分屏,翻屏到文件尾部后自动退出
        • less : man命令支持的就是less命令
      • head:查看文件的前n 行
      • tail :查看文件的后n 行(默认10行)
        • -n #
        • -# :显示指定行
        • -f : 查看文件尾部内容结束后不退出,跟随显示新增的行
    • stat命令:display file or file system status (查看文件的元数据)
      • stat FILE
      • [root@csm tmp]# stat /tmp/functions
        文件:"/tmp/functions"
        大小:15131 块:32 IO 块:4096 普通文件
        设备:fd01h/64769d Inode:393264 硬链接:1
        权限:(0644/-rw-r–r--) Uid:( 0/ root) Gid:( 0/ root)
        access time:2020-03-31 09:04:01.854932173 +0800
        modify time:2020-03-31 09:04:00.703888368 +0800
        change time:2020-03-31 09:04:00.703888368 +0800
        创建时间:-
      • 文件:俩类数据
        • 元数据:mtadata (例如书的目录,书名)
        • 数据:data (书的内容)
    • touch 命令可以改变文件的时间戳 : touch - change file timestamps
      • 经常用来创建空文件
      • -c :不创建文件 :指定文件路径不存在时不创建
      • -a change only the access time
      • -m change only the modification time
      • -t :改成指定的时间 [YYMMDD]
  • 文件管理工具: cp,mv ,rm

    • cp命令:copy
      • 源文件 :目标文件
      • 复制指的是复制文件的数据
      • 单源复制 :cp [OPTION]… [-T] SOURCE DEST
        多源复制: cp [OPTION]… SOURCE… DIRECTORY
        多源复制:cp [OPTION]… -t DIRECTORY SOURCE…
      • 如果DEST不存在:则事先创建此文件,并复制源文件的数据流到DEST中
      • 如果DEST存在:
        • 如果DEST是非目录文件:覆盖DEST文件
        • 如果DEST是目录文件: 则现在DEST目录下创建一个与源文件同名的文件,并复制数据流至目标文件
      • 如果SOURCE是目录:略过目录
      • 多源复制:
        • 如果DEST不存在: 不允许
        • -i :覆盖之前提醒用户确认
        • -f : 强制覆盖目标文件
        • -r ,-R :recursive :递归复制目录
        • -d :复制符号链接文件本身,二非其指向的源文件
        • –preserv= :保留云文件的时间戳
          • node :权限
          • timestamps:时间戳
          • xattr:扩展属性
          • all :上述所有属性
        • -a :保留源文件的所有属性
    • mv :移动文件和重命名
      • mv hello hello.txt :重命名 ,当源文件和目标文件在同一个目录下
      • 不在同一个目录下就是移动
      • 常用选项
        • -i :交互式
        • -f :强制覆盖
    • rm :删除文件
      • linux系统没有回收站,找回文件非常困难
      • rm [OPTION] FILE
      • 常用选项:
        • -r 递归删除
        • -f :强制删除
      • 可以自建一个回收站,把不用的文件都移动到回收站去,尽量不要删文件
        • 危险操作:rm -rf /*
  • 变量: 命名的内存空间

    • 变量类型:整型,浮点型,字符型,布尔型,日期时间型

      • 字符型

      • 数值型

      • 精确数值

      • 近似数值

      • 存储格式,数据范围,参与运算:

        • 8 :1000
        • 16 : 10000
        • ASCII 码 :128个
  • 变量的命名操作: name=tom

如果DEST不存在: 不允许
- -i :覆盖之前提醒用户确认
- -f : 强制覆盖目标文件
- -r ,-R :recursive :递归复制目录
- -d :复制符号链接文件本身,二非其指向的源文件
- --preserv= :保留云文件的时间戳
- node :权限
- timestamps:时间戳
- xattr:扩展属性
- all :上述所有属性
- -a :保留源文件的所有属性

  • mv :移动文件和重命名

    • mv hello hello.txt :重命名 ,当源文件和目标文件在同一个目录下
    • 不在同一个目录下就是移动
    • 常用选项
      • -i :交互式
      • -f :强制覆盖
  • rm :删除文件

    • linux系统没有回收站,找回文件非常困难
    • rm [OPTION] FILE
    • 常用选项:
      • -r 递归删除
      • -f :强制删除
    • 可以自建一个回收站,把不用的文件都移动到回收站去,尽量不要删文件
      • 危险操作:rm -rf /*
  • 变量: 命名的内存空间

    • 变量类型:整型,浮点型,字符型,布尔型,日期时间型

      • 字符型

      • 数值型

      • 精确数值

      • 近似数值

      • 存储格式,数据范围,参与运算:

        • 8 :1000
        • 16 : 10000
        • ASCII 码 :128个
  • 变量的命名操作: name=tom

你可能感兴趣的:(技术专栏)