03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

1年前 (2023) 程序员胖胖胖虎阿
144 0 0

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令-快捷键-改为英文编码-3个时间-stat-{1..100}-du-cd-cp-file-mv-echo-id-shell-ln-env-set-which-rpm-/usr-/与/root-hostname-vim-cat-pwd-alias-unalias-ls-ASCII-wc-chmod


一. stat 与 ll

//        stat 与 ll     stat 只能看自己。 ll能看文件夹下面的东西。
//        选项组合(不分先后顺序)  如  ls  -Al  (2个功能一起显示)
//        du  -sh    统计文件和文件夹大小
//        mkdir  -p    如果父目录不存在,就新建
                    如果文件夹存在,就不报错
                    //    写脚本经常用到
                -v        给提醒(显示已经创建成功)(没什么用)

stat 与 ll 与 ls -l -d

//        stat 与 ll 与 ls  -l  -d
            stat 只能看本身的文件信息(文件夹本身)
            ll    能看文件夹下面的东西(文件夹里面的)
            ls  -l  -d 只看它自己的详细信息 不看里面的(文件夹本身)

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令


二. 集合 {xx,xxx}

1条命令建多个文件夹

#注:关键点{}
//        mkdir  hunantv/{weishi,jingshi,dushi}        一条命令建多个文件夹
        在 China_voice路径下建 hunantv文件夹下的 文件夹(hunantv在 China_voice下)
        {weishi,jingshi,dushi} 表示一个集合,有共同的上一级目录

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

        只建一个文件夹的时候,不能用 { } 括起来,{ } 会成为文件名。
//        一条命令完成(日常用的不多)    里面有好几级
        父目录不存在时候  接 -p  选项

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令


三. {1..100}

#注:mkdir sc{1..100}
#注:rm  -rf  sc{1..100}
//        mkdir sc{1..100}    产生1到100的文件
        {1..100} 代表 1 到 100的集合 和前面的sc 组合
        mkdir  可以一次性建立多个  的功能
        //    rm  -rf  sc{1..100}
            rm  -rf  sc*      2种都能删
//        mandatory 命令的
        arguments 参数
//        mkdir  -p    如果父目录不存在,就新建
                    如果文件夹存在,就不报错

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

//        mkdir  -v    给提醒

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令


四. du -sh

//        du  -sh  查看目录大小
        命令  选项  参数

五. cd

//        cd  -  返回上一次所在的路径
        cd  .  进入当前目录
        cd  ..  返回到上一级目录
        cd  ~  返回到当前用户的家目录
        cd        返回到当前用户的家目录
cd命令
用途:切换工作目录(Change Directory)    
格式:cd  [目录位置]
#注:特殊目录 
.     当前目录
..     上一级目录
~     用户主目录(家目录)
-     上一次所在的工作目录(遥控器上的返回键)
//        useradd  xulilin  新建用户
        cd  ~xulilin  进入xulilin这个用户的家目录
        [root@localhost xulilin]# pwd
        /home/xulilin
//        mkdir    新建目录
        touch  qijian    新建空文件
        touch  hengshan/yilin.txt

六. cp -r

//        cp  /etc/hosts  songshan/    复制文件不接 -r
        cp  hengshan/  songsahn/  -r  复制文件夹接 -r

七. file

//        file  taishan  查看文件类型

八. 文件类型

//        经典文件类型:目录        directory
                    空文件        empty
                    文本文件    text

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

//        du  -sh  taishan/  查看文件大小
//        rm  -rf  tianshan/      删除

九. cp

//        cp    复制的时候:
        复制,粘贴,重命名一步到位(重命名要后面不存在)
        cp  a.txt  abc.txt (目录下有2个文件 a.txt  abc.txt)
        cp  a.txt  songshan/feng.txt (复制到songshan下改名叫feng.txt)
        cp  hengshan/  songshan/nanyue_hs  -r(复制文件夹接-r)
            复制hengshan到songshan下 改名nanyue_hs

十. mv

//        mv    剪切,粘贴,重命名一步到位(重命名要后面不存在)
        mv  a.txt  hengshan/aaa.txt (剪切粘贴,重命名为aaa.txt)
        mv  songshan/  hengshan/shaolinshi (移动粘贴重命名为shaolinshi)
            移动重命名不需要接-r选项(与 cp 的不同点)

十一. 主辅提示符

//        主提示符
        [登录用户@主机名 工作目录]
        辅助提示符
        #  $
         [root@localhost xuxia]#
        [root@localhost wuxia]# 
        [xulilin@localhost ~]$ 
//        linux是一个多用户多任务的操作系统
        root用户家目录  /root
        普通用户家目录    /home下面跟用户名同名

十二. echo

//        echo  输出  相当于print
        PS1 是linux系统里内置的一个变量,不需要我们定义

十三. 第1提示符

        第1提示符变量 PS1   prompt symbol 提示 符号 variable 变量

[\u@\h \W]$解释

//        # echo $PS1        # 注:第一提示符
        [\u@\h \W]\$
        解释:
        \u  引用当前的用户  user
           \u  the username of the current user
        \h  引用当前的主机名   hostname
        \W 引用当前工作的目录的名字  working
        \$  当用户为root的时候,就输出#,如果不是root就是$符号
        \t  当前的时间

临时修改PS1变量

//        # PS1='[\h@\u \t@\W]\$'  临时修改PS1变量(没必要改知道就行)    \t 当前的时间
[localhost@root 11:01:07@~]#
[localhost@xulilin 11:03:08@boot]$PS1='[\h#\u \t@\W]\$'
[localhost#xulilin 11:03:32@boot]$  // # 也可以

第1、2提示符

//        # echo  $PS1
        [\u@\h \W]\$
        # echo  $PS2   第2提示符
        >
//        一行没输完  会显示第2提示符>(只是提醒的作用)

十四. $+变量名

        $PS1  $+变量名  引用某个变量
//        # echo  $PS1
        [\u@\h \W]\$
//        sg="tangliangfei"  定义一个变量sg 赋值tangliangfei 右边赋值左边
        echo $sg  输出sg这个变量的值
        shell编程里引用变量需要接$+变量名
        Shell编程  linux里的命令编程
//        mv="liangly"
        echo $sg  $mv
        tangliangfei liangly  (都显示)

十五. id

//        id  命令
        [root@localhost china_voice]# id  
        uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
        root用户 uid 为0
        user id 用户的编号 uid
        group id 组的编号  gid

十六. Linux命令

//        Linux命令
            用于实现某一类功能的指令或程序 
            命令的执行依赖于解释器程序(例如:/bin/bash)
//        人 <——> bash <——> 内核 <——> 硬件
        bash  就是解释器  相当于翻译 C语言写的 程序 工具
        Linux命令的分类
            内部命令:属于Shell解释器的一部分
            外部命令:独立于Shell解释器之外的程序文件
//        shell:是一类程序,用来解释用户输入的命令,然后告诉内核去执行这些命令
            bsh
            sh
            csh
            bash
            ksh
        bash是最流行的shell--》几乎所有的linux系统默认的shell都是bash

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

人——BASH——kernel

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

(大概了解)

十七. cat /etc/shells

//        cat /etc/shells  查看本机里有哪些shell
        /bin/sh   比较老的shell
        /bin/bash  
        /usr/bin/sh
        /usr/bin/bash
//        sh  敲sh,使用sh,没有提示符,退出去 敲bash 或者 exit (父子进程)
//        切换shell  sh  和  bash  命令  exit

十八. ln -s

#注:链接文件 天蓝色
//        ln  -s
        ln  创建链接文件(快捷方式)
        不要去删除原文件,不然会导致链接文件不可用 (一闪一闪 冒红)
        ln  -s  源文件  链接文件        ln  -s  xulilin  xll
        -s  symbol link 符号链接(软链接 soft)
        # mkdir changsha
        # ln -s  changsha cs  
        # ll
        lrwxrwxrwx. 1 root root  8 9月  17 11:19 cs -> changsha 

十九. echo $SHELL

//        # echo $SHELL 查看linux系统里默认的shell
        /bin/bash

二十. env

//        # env  查看当前用户的环境变量(linux系统里预先定义的变量)  environment
        当前用户的很多进程都可以使用的变量
        环境变量--》全局变量

二一. set

        # set  查看所有的变量(自定义变量和环境变量)

二二. 内部外部命令

//        bash - GNU Bourne-Again SHell
        BASH_BUILTINS  builtin 内置(内部)  built in
        额外安装的命令--》外部命令
        通过安装bash这个程序就可以得到的命令--》bash的内部命令
        yum  install tree -y    tree命令是外部命令,需要额外安装
        mkdir ip 外部命令  cd echo exit 内部命令

二三. which

//        which bash              查看bash命令存放在哪里
        /usr/bin/bash

二四. rpm

rpm -qf

#注:rpm -qf    查询命令通过那个软件包安装过来的
#注:先用which 查看命令的绝对路径
//        rpm -qf /usr/bin/bash  查询/usr/bin/bash是通过哪个软件包安装过来的
        bash-4.4.19-10.el8.x86_64

rpm

//        rpm 是linux里的软件管理的命令,例如安装,卸载软件
        -qf     查询文件是通过那个软件安装过来的
//        # which ip
        /usr/sbin/ip
        # rpm -qf /usr/sbin/ip
        iproute-5.3.0-1.el8.x86_64
//        bin  二进制 binary  

二五. /usr

#注:/usr    存放安装软件的目录    unix system resource
//        /usr   是linux里存放安装软件的目录   unix system resource  unix 系统资源
        相当于windows里的Program Files
//        链接文件 浅蓝色
        正常文件 深蓝色
//        /  根目录
        /root        root用户的家目录
        /home/用户名同名的目录   普通用户的家目录

二六. / 与 /root关系

//        根目录和root用户的家目录的关系?
        /root  在/目录下,是包含关系
//        ~ 代表家目录,当你所在的文件夹的路径是家目录,就会显示 ~
        普通用户只能进自己家目录,root用户能进任何家目录↓↓↓

进入其他用户家目录

[xulilin@localhost /]$ cd ~xulilin    # 注:普通用户只能进自己家目录
[xulilin@localhost ~]$ cd ~cali
-bash: cd: /home/cali: 权限不够
[xulilin@localhost ~]$ exit
注销
[root@localhost ~]# cd  ~cali
[root@localhost cali]# pwd
/home/cali
[root@localhost cali]# 

二七. hostname

//        # hostname 查看主机名
        localhost.localdomain

临时、永久修改主机名

临时修改

//        # hostname  sanchuang-linux  临时修改主机名(不能用下划线_)
        接着重新登录 su - root    (当前终端登录)/ 或者重新建立一个连接(开一个终端登录) 重启后失效
//        为什么要修改主机名?
            方便识别,区别不同的服务器

永久修改

//*        永久修改主机名
        # vim  /etc/hostname  改这个文件,打个新名字。
        # cat  /etc/hostname 
        sanchuang-linux
        重启后生效
//        reboot  重启
//        不一定非得 虚拟机 登录后 xshell才能登录
//        提示符
            PS1    第一提示符
            PS2    第二提示符

二八. vim

//        vim编辑器的使用
        vim 是linux里的字符界面的文本编辑器 ——》记事本  只能写文字
        安装vim        yum   install  vim  -y
//        vim  sc.txt
        1.按字母键i进入输入模式  insert
        2.输入内容,可以是中文或者英文
        3.按ESC键,返回到命令模式  escape 离开,逃离
        4.输入:wq  退出并且保存  write  quit
              :q!  退出不保存
              :q  退出(没有修改可以退出)

二九. cat

//        # cat  sc.txt   查看文本文件里的内容

三十. 快捷键

//        快捷键
        //    ctrl + l
        //    ctrl + c    强行终止命令  # ^ C
                比如 ping  www.baidu.com  ctrl + c
        //    tab    补齐命令  # mkd (之后按2下tab键)mkd开头的命令都列出来了
                补齐路径  # mkdir wang 唯一性就直接补齐  否则敲两下 列出wang…
                能识别唯一性的时候,按一次tab键
                不能识别唯一性的时候,需要按2次,然后自己输入
        // 上下方向键,可以调用以前使用过的命令

三一. pwd

//        pwd  查看工作目录
        cd    切换工作目录
        cd  ~ (cd) 进入用户家目录
        cd  -    返回上一次目录
        cd  ~  liangluyao  进入liangluyao家目录
        cd  ..  返回上一级目录

三二. 别名

//        ll  是 ls  -l  --color=auto的别名
//        # alias  查看linux里有哪些定义好的别名
//        # alias  c=clear  临时定义c是clear的别名
        clear 是linux系统里的命令  命令有选项的 要同’ ’ (单引号)引起来 
        再开启一个终端 就没效了 临时定义
        c是自定义的名字,定义别名的时候,不要和系统里已经存在的命令冲突

取消别名

//        unalias    取消别名
        # alias mkdir=ls
        # unalias  mkdir  取消别名

永久修改别名

//        # vim  /root/.bashrc  永久修改别名,需要重新登陆,或者su切换用户到root
        .bashrc 是一个隐藏文件  按i进去 进行别名定义——》ESC  :wq

三三. ls

//        ls命令
        用途:列表(List)显示目录内容 
        格式:ls  [选项]...  [目录或文件名]
        常用命令选项
        -l :以长格式显示
        -d:显示目录本身的属性
        -t: 按文件修改时间进行排序
        -r :将目录的内容清单以英文字母顺序的逆序显示
        -a:显示所有子目录和文件的信息,包括隐藏文件
        -A:类似于“-a”,但不显示“.”和“..”目录的信息
        -h:以更易读的字节单位(K、M等)显示信息
            //  必须和 -l 一起用
            -h, --human-readable
                with -l and -s, print sizes like 1K 234M 2G etc.
        -R:递归显示内容
            一层一层显示,作用远远不及 tree好,很繁琐
//        ls    查看当前 目录
        ls  /boot  查看/boot 下目录
        ls  -l  -d  /boot  只显示本身的文件夹信息 ls -ld / ls -dl
        ls  -t  时间  文件修改时间排序
        ls  -r  英文字母 逆序显示
        ls  -l  -h  /boot  显示/boot的各个文件的大小
                -h  必须和  -l  一起用  显示大小 K M G

\ls -l

//        \ls  -l  不显示列出的文件类型颜色

ls -l |grep "^d"

//        # ls  -l|grep  "^d"  
        解释如下
//        | 管道符号: 进程和进程之间通信的一种方式
        作用:将前面一个命令的输出送给后面一个命令作为输入
            中间商,借花献佛,提篮子
//        grep :文本过滤的命令
            会根据匹配的字符串去过滤,显示出匹配内容的行

//        ^d  表示以d开头的行
//        # ll|grep "txt"
        -rw-r--r--. 1 root root  0 9月  17 15:58 a.txt
        -rw-r--r--. 1 root root  0 9月  17 16:02 sc10.txt
        # ll|grep "^d"
        drwxr-xr-x. 5 root root 48 9月  17 09:51 hunantv
        drwxr-xr-x. 4 root root 42 9月  17 09:54 jiangsutv
        # ll|grep "^-"
        -rw-r--r--. 1 root root  0 9月  17 15:58 a.txt
        -rw-r--r--. 1 root root  0 9月  17 16:02 sc10.txt
        # ll|grep "^-"|wc -l
        11

三四. ASCII

//        ASCII  美国信息交换标准代码
        数字、大写字母、小写字母 ASCII码值 小——》大
//        一个字节=8位
        101010101
//        man  ls  ——》/-h  查找 -h
//        # man ls
            回车:一行一行的往下走
            /-h  查找包含-h的行
            n   查找下一个 next
            N   查找上一个   next
            q   退出    

三五. 文件类型

//        文件类型        缩写        应用
        常规文件        -         保存数据
        目录               d          存放文件  directory
        符号链接文件        l        指向其它文件  link
        字符设备文件       c        character  --》与字符显示相关的文件
        块设备文件        b         block -->存放数据的块文件
        s     socket文件
        p     管道文件 pipe

三六. 「drwxr-xr-x. 5 root root 48 9月 17 09:51 hunantv」解释

//        [root@sanchuang-linux china_voice]# ls  -l
        总用量 0
        drwxr-xr-x. 5 root root 48 9月  17 09:51 hunantv
            d 代表文件类型  directory 目录
            rwxr-xr-x 权限  r 读 read   w写 write   x 执行 execute
            . 和selinux权限相关
            5 文件的链接数
            root  用户 
            root  组
            48  文件大小
            9月  17 09:51  文件的创建时间

三七. wc

//        wc 是一个统计命令,可以统计文件里有多少行,多少单词,多少字节
            -l 统计行数  lines
        wc  -l  统计行数

不显示文件名

//# wc -l  a.txt  (wc  -l 也可以统计文件的行数) 直接统计会显示文件名
    3 a.txt
//# cat a.txt |wc -l (cat管道传给wc 不会显示文件名)
    3
        //# cat /etc/passwd|wc -l
            27
//# cat /etc/passwd|grep "liang"
    liangluyao:x:1001:1001::/home/liangluyao:/bin/bash
    liangluyao2:x:1002:1002::/home/liangluyao2:/bin/bash
    # cat /etc/passwd|grep "root"
    root:x:0:0:root:/root:/bin/bash
    operator:x:11:0:operator:/root:/sbin/nologin

练习

//        1.统计出/dev目录下有多少字符设备文件
         ll  /dev|grep “^c”|wc  -l
        2.统计出/dev目录下有多少块设备文件
         ll  /dev|grep “^b”|wc  -l
        3.统计/etc/目录下有多少文件夹和普通的文件
         ll  /dev|grep “^-”|wc  -l  文件
         ll  /dev|grep “^d”|wc  -l    文件夹
         ll  -R  /etc|grep “^-”|wc  -l    统计/etc和子文件夹下的所有普通文件 更彻底(包含子目录下)
         ll  -R  /etc|grep “^d”|wc  -l    统计/etc和子文件夹下的所有文件夹  更彻底(包含子目录下)
        4.统计/etc/ssh/sshd_config文件有多少行
             cat  /etc/ssh/sshd_config  |wc  -l
//        统计文件夹里有多少文件
        ll  |  grep  wc 
//        统计文件有多少行
        cat   |  wc

三八. du

//        du  统计目录及文件的空间占用情况  disk  usage(估算值,并不是很准确)
        *du  -sh  统计汇总的大小(常用)黄金组合
            -s
              -s, --summarize 汇总的大小
                      display only a total for each argument
            -h  
             -h, --human-readable
                      print sizes in human readable format (e.g., 1K 234M 2G)
            -a 统计文件和文件夹
                 -a, --all
              write counts for all files, not just directories

du -sh 与 ll -h 区别

        du  -sh  /boot
        ll  -h  /boot
//        # ll  -h  /boot  只能统计文件的大小,文件夹里的所有的文件不会汇总
        总用量 134M
        du  -sh    可以汇总
        ll  -h 就是你文件里面有多少个单词 多少个字符
        # du -sh /boot
        140M    /boot
        # ll -h  -d /boot
        dr-xr-xr-x. 6 root root 4.0K 9月  13 14:38 /boot
//        英文字母,数字 占1个字节
        中文字母:utf8编码   3个字节
        ll  -h 统计的是一个文件里有多少字符
             统计文件里面文字的字节数
        du  统计占用多少块
            统计文件存放在磁盘上消耗了多少个块
//        1个块的大小就是4096 (4K)

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

//        touch    新建空文件
                更新时间
//        stat  host  查看三个时间
        最近访问
        最近更改
        最近改动

三九. 改为英文编码

//        改为英文编码
        # LANG=en_US.UTF8
        # ll hosts 
        -rw-r--r--. 1 root root 158 Sep 17 16:57 hosts

四十. 3个时间

# stat hosts 
  File: hosts
  Size: 158           Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 17162314    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-09-17 16:57:57.748799777 +0800
Modify: 2020-09-17 16:57:57.748799777 +0800
Change: 2020-09-17 16:57:57.748799777 +0800
 Birth: -
    时间:    
        访问时间  access time  --》atime     打开这个文件  cat
        修改时间  modify time  --》mtime    修改里面的内容,增加,删除内容等  vim
        更改时间  change time  --》ctime    更改了文件的属性(名字,权限,大小,时间,用户,组)
        精确到纳秒
        touch  hosts    三个时间都更新(都改了)

四一. chmod

//        chmod 修改权限  change  mode 
            chmod  a+w  hosts

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

        chown 修改属主和属组  change  owner

03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令

        vim  hosts  输入  :wq  修改数据
//        +0800 表示东八区  中国的上海,北京 
        乌鲁木齐  东六区
//        # cp /etc/passwd  .  将/etc/passwd复制到当前目录
        现在我们敲的cp,都是 cp  -i ,cp是别名
        # alias
        alias c='clear'
        alias cp='cp -i'
          -i, --interactive 交互式
              prompt before overwrite (overrides a previous -n option)

四二. cp的时候覆盖文件,不给予提醒的方法

//        cp的时候覆盖文件,不给与提醒的方法
        1.取消别名  --》不推荐
            # unalias cp
        2.使用cp命令的绝对路径  --》推荐
          # which  cp
            alias cp='cp -i'
              /usr/bin/cp
            # /usr/bin/cp  feng  changsha/ -r
            # /usr/bin/cp  feng  changsha/ -r  再次复制 覆盖不给提醒

相关文章

暂无评论

暂无评论...