写点什么

03_Linux 基础 - 文件类型 - 主辅提示符 - 第 1 提示符 -Linux 命令 - 内外部命令 - 快捷键 - 改为英文编码 -3 个时间 -stat- 其他基础命令

作者:mycpen
  • 2022 年 9 月 02 日
    江苏
  • 本文字数:9089 字

    阅读完需:约 30 分钟



title: 03_Linux 基础-文件类型-主辅提示符-第 1 提示符-3 个时间-stat-其他基础命令 date: 2022-08-28 02:01:00updated: 2022-08-28 02:03:01thumbnail: /images/logo/linux-logo.pngtags: - Linuxcategory: - Linuxmathjax: truetoc: true




摘要:博客迁移 https://blog.csdn.net/cpen_web → 本站

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

博客🔗:https://blog.csdn.net/cpen_web



一. 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 只看它自己的详细信息 不看里面的(文件夹本身)
复制代码





二. 集合 {xx,xxx}

1 条命令建多个文件夹

#注:关键点{}//    mkdir  hunantv/{weishi,jingshi,dushi}    一条命令建多个文件夹        在 China_voice路径下建 hunantv文件夹下的 文件夹(hunantv在 China_voice下)
复制代码


        {weishi,jingshi,dushi} 表示一个集合,有共同的上一级目录
复制代码



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




三. {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  如果父目录不存在,就新建                    如果文件夹存在,就不报错
复制代码




//    mkdir  -v  给提醒
复制代码




四. 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
复制代码



//    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
复制代码



人——BASH——kernel
复制代码



(大概了解)
复制代码



十七. 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)
复制代码



//    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 fileDevice: fd00h/64768d  Inode: 17162314    Links: 1Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)Context: unconfined_u:object_r:default_t:s0Access: 2020-09-17 16:57:57.748799777 +0800Modify: 2020-09-17 16:57:57.748799777 +0800Change: 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
复制代码



        chown 修改属主和属组  change  owner
复制代码



        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  再次复制 覆盖不给提醒
复制代码




发布于: 刚刚阅读数: 3
用户头像

mycpen

关注

还未添加个人签名 2020.12.08 加入

还未添加个人简介

评论

发布
暂无评论
03_Linux基础-文件类型-主辅提示符-第1提示符-Linux命令-内外部命令-快捷键-改为英文编码-3个时间-stat-其他基础命令_Linux_mycpen_InfoQ写作社区