zoukankan      html  css  js  c++  java
  • Linux初识

    1.tree命令=显示当前目录树

      tree /app

      tree -d=只显示目录

      tree -L 2=显示两层目录

     tree -L 2 -d=只显示文件夹

    2.mkdir **=创建目录:

      mkdir ***/**/** -p=***是创建父目录下的子目录**

                      -pv-详细信息

      rmdir ***/**/*=删除*

      m -rf 全部删除

      rmdir只能删除目录

      rmdir -p ***/**/**=一直递归的往上删除目录

      /app的挂载点是删除不了的

    3.rm -r 递归目录树

    mkdir -pv /testdir/dir1/{x,y}/{a,b}

    4.df显示占用了多少

      lsblk显示总大小

      df -h:分区利用率 

    文件系统  大小 使用  利用率  加载

      dd if=/dev/zero of=/boot/bigfile bs=1M count=500

       一次读1兆。生成500兆

      美团公司中午高峰期满了,磁盘满了,没办法。损失了1000/s,一笔订单是50,每秒损失50*1000*3600=180000000.交易额10%,那就18000000.

    服务器的各方面的性能指标都要重视。

    空间满了那就删除 rm -f /boot/bigfile

    lsof |grep deleted:查看被删除的内容

    文件删了,空间没有释放那就麻烦了。

    ps aux|grep vim—进程信息

    killall vim—删除进程信息

    ps:阿里每秒钟25万笔/s

    比较好的删除文件的方法:

    > /boot/bigfile—清空文件,占用零个字节。

    rm -f /boot/bigfile

    5.inode-包含文件系统的所有文件列表

    元数据:

      文件类型,权限,UID,GID

      链接数(指向这个文件名路径名称个数)

      大小和时间戳

      直接指向数据块指针:指向数据块。预存12个指针,一个指针4096个字节(4K)。最大容量是48K,文件超过这个容量后放入间接**。

      间接块指针:指向下一个文件块的指针块,可以分成1024个指针,每个指针占4个字节。最多可以4K-4兆的文件。

      双重间接块指针:里面包含间接块指针,有1024个指针块,1024个指针块分别指向了数据块。最多可以存放4G的文件。

      三重间接块指针:

    文件的节点表:

    文件名   /inode number/ /permode/

    f1             1000

    f2             1001

    f3             1002

    存放文件的数据:

    data block:

    上述两个的连接:

    节点表中有指针指向数据表。

    6.df -T

    7.ls -i  显示节点编号

      ls -il 

    8.touch f1

      ls -il f1

      rm -f f1

      ll -i

    9.mkdir /boot/testdir

      cd /boot/testdir

      ls

      touch f{1..524288}

      echo f{1..524288} 

    10.df -i /boot

    11.df -h

       df -i

    12.watch -n 1 df -i /boot

    持续的监控这个命令的执行状态,Iuse%

    13.touch aaa

      rm * -f  删除节点编号(参数不多的情况下)

      rm -rf testdir/(参数多的情况下删除目录)

      >是清除内容的

    14.echo f{1..524288}  |xargs touch

       touch f1,;touch f2;touch f3.

    解决参数过多的问题的命令。节点编号占多了,空间就不能用了。

    15.ls / -i

       ls -di/  根本身的节点编号是2开始,           7版本是64开始

    16.  cd /app/dir1/f1,f2,f3

    dir1文件的节点表:

    /inode number/ /mode/../data

         1000               指针->文件的列表:f1/2/3 f1/2/3node

         1001               指针->f1 content

         1002

    17.目录

    a-inode1-数据

    b-inode2-数据

    18.文件重命名

       In (link)file1 file2

    创建file1另一个名称file2

    stat file*-查看文件的详细信息

    ll -i  -链接数

    上述都是硬链接,不一定在同一个目录中。

    把file1删除,不会影响file2的使用,但是链接数会少一个。

    本质:删文件实际上删除的是文件目录中对应的节点编号,不是删除内容。

    19.shred --help

    重复的覆盖,让物理性的恢复数据非常难。

    20.ll file2

    shred -zvun 10 file2

               次数

    21.In f1 /root/f111

      跨设备链接:

       In -s f1 /root/f111

      软链接:本质上不是同一个文件。删除文件后,软链接会受影响。链接数不受影响。可以跨分区。可以跨目录。大小是指向硬链接(路径)的字符数。通过快捷方式也能访问原来的内容。

      硬链接:本质上是同一个文件,但名字不同。删除文件后,硬链接不影响。连接受受影响。不可以跨分区。不可以跨目录。

    软链接:源文件的路径是相对路径,写成相对路径是指相对软链接文件的路径,不是相对当前工作的路径。

    22.任何一个目录创建出来后,链接数是2.文件是链接数3.

    目录是不能创建硬链接的。

    23.符号链接=软链接

    24.搜索硬链接:后面讲

    25.文件的类型:

      file f1:判断文件的类型。

    file的工作原理:打开文件,看文件的首部会有文件类型标识的关键字(magic number)。

    判断一堆文件:file -f list.txt

    cat list.txt

    /app/splash

    /app

    /etc/grub.conf

    file -F "|(分隔符)"-f list.txt

    file -L

    ll /etc/grub.conf,软链接指向的文件类型

    file -L s.xpm

    file --help

    下午:

    重定向:重新改变原来的方向。

    程序:指令+数据。

    读入数据:Input

    输出数据:Output

    使用一个文件就是打开文件描述符。

    文件描述符所在文件:/dev/fd

    ps aux|grep vim:进程描述符

    ls proc/7525/fd -1

    1.三种I/O设备

    0-STDIN:默认键盘

    1-STDOUT:默认终端

    2-STDERR:默认终端

    ls > /dev/pts/1

    tree -d /etc/ > /app/a.log

    标准输出的重定向到a.log

    ls > /app/a.log

    cat  /app/a.log

    echo "my hostname is `hostname`" > /app/a.log.

    echo "my hostname is `hostname`" >> /app/a.log.

    追加的内容,原来的内容还在。时间戳也不刷新。

    ls >f1

    ll f1:被覆盖

    hostname

    hostname>f1:被覆盖

    set -C:之后执行的命令都不被覆盖

    echo haha >| f1:|是强制覆盖

    set +C:取消不被覆盖

    ls nofile 2> f1

    错误信息重定向

              &>  文件名

    把全部的信息重定向

    ls > /app/all.log

    pwd >> /app/all.log

    多个命令重定向:(ls;pwd;hostname) >>/app/all.log

    (ls;pwd;hostname)> /app/all.log

     cat /app/all.log

    错误的信息:

    (errcmd;hostname) &> /app/all.log

    (errcmd;hostname) > /app/true.log 2> /app/error.log

    (errcmd;hostname) > /app/true.log 2> &1

    把错误的定位到标准输出中

    ll dev/null  表示空

    df-看光盘挂到哪边?

    rpm -i /misc/cd/Packages/dos。。。。。。。。。。    &> /dev/null

    echo error  1>&2:error

    echo error  1>&2 > /dev/null:error

    (echo error  1>&2) 2> /dev/null

    2.标准输入重定向

      tr命令

      tr[OPTION]

      tr 1 a=1->a

      tr 12 ab=12->ab

      tr 123 ab=123->abb

      tr  -t 123 ab=12->ab

      tr ‘1-9’‘a-i’=对位转换

      文件做重换:

      tr  'a-z' 'A-Z'< fstab

      tr  -d 'a-z' < fstab

      tr  -d 'a-z' < fstab > fstab2

      tr  -d 'a-z' < fstab > fstab

    从老师对重定向的解释出发,为什么可以清空?

    tr -s ‘a’

    aaa

    a

    tr -sc ‘a’

    aabbccaa

    aabcaa

    tr -dc 'a'

    asdijissaa

    CTRL+d:aaa

    tr -dc‘a ’

    保留a和回车

    tr ' ' '' < f1

    tr -d ' ' < f1

    seq 1 10 > f1

    tr -d ‘ ’< f1

    hexdump -C win.txt a

    二进制 a 为97.

    tr -d ‘ ’< win.txt > newwin.txt

      

    mail -s hi xiebo

    mail 

    nano -s h2 root < mail.txt

    多行重定向:

    cat >f1 <<EOF(end of file)<<#

    cat >f1 <<$

    >aaa

    >bbbb

    >$

    cat f1

    aaa

    bbbb

    rm -f f1

    cat > f1 << EOF

    >aaaa

    >bbbb

    >EOF

    cat f1

    aaaa

    bbbb

    mail -s "h3" root <<E

    >how are you

    >how old are you

    >E

    mail -s hi xiebo < mail.txt

    whoami

    root

    mail -s hi `whoami`< mail.txt

    echo $PATH

    echo $USER=用户名

    mail -s hi `whoami` <<EOF

    >HI,$USER

    >test2

    >EOF

    mail -s hi `whoami`

    nano name.txt

    wang

    zhao 

    li

    xie

    cheng

    cat name.txt

    4.使用管道链接命令

    文件的类型:

        命令1|命令2|命令3|...

    ls | tr 'a-z' A-Z

    who | tr -d ' '删除

    cat mail.txt |mail -s h5 root

    mail 

    who | tr 'a-z' A-Z

    ls |tee ls.out

    ls |tee ls.out

    cat ls.out

    hostname |tee -a ls.out

    cat ls.out

    5.tee

     I/0重定向:改变默认位置

    (1)ls /err 2> /app/err.log

    错误信息存放到文件中

    (2)ls /dir 2>> /app/err.log

    重定向到2中

    发消息:wall hi,i am xiebo

    错的文件

    ls /err /boot > /app/f1 2> /app/f2

    cat /app/f1

    cat /app/f2

    错的信息重定向

    ls /err /boot > /app/all 2>1

    cat /app/all

    ls /err /boot &> /dev/all

    /*****选项****/dash(-)

    -a:all,所有的(包括隐藏的)

    -l:详细的信息

    -p * **:**起别名为*

    -t *:打印*的路径

    -d *:清除*

    -k *:匹配的

    -r:清除所有

    -u:某一类

    -c:取消

    -e:解释

    -f:简单说明

    -n:不自动换行

    . :包含隐藏目录

    ~: 所有的

    *:当前目录下的子目录,不包括隐藏

    一、资源分派

        Authentication 认证

        Authorization 授权

        Accouting|Audition 审计

    二、user

    令牌token、identity

    Linux用户:Username/UID

    管理员:root,0

    普通用户:

    Linux上下文:

    身份

    /bin/cat

    /bin/more

    以进程发起者的身份决定的:

    当用户去访问某个东西的时候,是由用户的身份决定的。

  • 相关阅读:
    流畅的python--函数
    流暢的python---函數闭包
    IDEA2019与Maven3.6以上版本不兼容
    java面试知识点汇总---第一章 重视基础
    《动手学深度学习》task10 文本分类;数据增强;模型微调 课后作业
    《动手学深度学习》task09 优化算法进阶;word2vec;词嵌入进阶 课后作业
    《动手学深度学习》task08 图像分类案例2;GAN;DCGAN 课后作业
    《动手学深度学习》task08GAN;DCGAN 笔记
    《动手学深度学习》task07 目标检测基础;图像风格迁移;图像分类案例1 课后作业
    《动手学深度学习》task07目标检测基础;图像风格迁移 笔记
  • 原文地址:https://www.cnblogs.com/xiebo-6371/p/7856130.html
Copyright © 2011-2022 走看看