广告
返回顶部
首页 > 资讯 > 操作系统 >linux命令基础(3)
  • 702
分享到

linux命令基础(3)

命令基础linux 2023-01-31 04:01:10 702人浏览 八月长安
摘要

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下:find <指定目录> <指定条件> <指定动作>- <指定目录>: 所要搜索的目录及其所有子目录。

  • find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
    find的使用格式如下:
    find <指定目录> <指定条件> <指定动作>
    - <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
    - <指定条件>: 所要搜索的文件的特征。
    - <指定动作>: 对搜索结果进行特定的处理。
    [root@localhost /]# find . -name 'bin*'  查找当前目录下以bin开头的所有文件
    ./etc/binfmt.d
    ./etc/selinux/targeted/modules/active/modules/bind.pp
    [root@localhost /]# find . -name 'bin*' -ls  查找当前目录下以bin开头的所有文件,并列出文件信息
    您还可以在搜索字符串中指定多个起始目录。如果以具有相应权限的用户身份运行,以下命令将下到 /usr、/home /tmp 目录查找所有 jar 文件:
    find /usr /home  /tmp -name "*.jar"
    [root@localhost /]# find . -type d    -type制定要搜索文件的类型
    其他 find 可以找到的文件类型包括:
    b — 块(缓存)特殊
    c — 字符(未缓存)特殊
    p — 命名管道 (FIFO)
    s — 套接字

    查找时间
    find 命令有几个用于根据您系统的时间戳搜索文件的选项。这些时间戳包括
    mtime — 文件内容上次修改时间
    atime — 文件被读取或访问的时间
    ctime — 文件状态变化时间
    mtime 和 atime 的含义都是很容易理解的,而 ctime 则需要更多的解释。由于 inode 维护着每个文件上的元数据,因此,如果与文件有关的元数据发生变化,则 inode 数据也将变化。这可能是由一系列操作引起的,包括创建到文件的符号链接、更改文件权限或移动了文件等。由于在这些情况下,文件内容不会被读取或修改,因此 mtime 和 atime 不会改变,但ctime 将发生变化。
    这些时间选项都需要与一个值 n 结合使用,指定为 -n、n 或 +n。
    -n 返回项小于 n
    +n 返回项大于 n
    n 返回项正好与 n 相等

    [root@localhost /]# find /etc  -mtime -1  //查看一个小时内/etc目录下被修改的文件
    /etc
    /etc/resolv.conf
    /etc/tuned/active_profile
    /etc/sysconfig
    /etc/sysconfig/network-scripts
    按大小查找文件
    -size 选项查找满足指定的大小条件的文件。
    [root@localhost /]# find /etc  -size  -1k  //查看/etc目录下大小小于1k的文件
    /etc/crypttab
    /etc/motd
    /etc/cron.deny
    /etc/.pwd.lock
    /etc/environment
    /etc/sysconfig/run-parts
    /etc/selinux/targeted/modules/semanage.read.LOCK
    /etc/selinux/targeted/modules/active/netfilter_contexts
    /etc/selinux/targeted/modules/semanage.trans.LOCK
    /etc/selinux/targeted/contexts/files/file_contexts.local
    /etc/selinux/targeted/contexts/files/file_contexts.subs
    /etc/security/opasswd
    /etc/exports
    [root@localhost /]# find /etc  -empty  //-empty  空文件
    /etc/terminfo
    /etc/systemd/user
    /etc/gnupg
    /etc/crypttab
    /etc/opt
    /etc/motd
    /etc/GCrypt
    /etc/ppp/peers
    /etc/chkconfig.d
    /etc/rwtab.d
    /etc/groff/site-font
    /etc/firewalld/services
    /etc/firewalld/icmptypes

    按权限和所有者查找
    find . -type f  -perm a=rwx -exec ls -l {} \;
    [root@localhost /]# find /etc    -perm 777 -exec ls -l {} \;  //-perm 按权限查看
    lrwxrwxrwx. 1 root root 38 Aug 31 03:07 /etc/systemd/system/getty.target.wants/getty@tty1.service -> /usr/lib/systemd/system/getty@.service
    lrwxrwxrwx. 1 root root 41 Aug 31 03:08 /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service -> /usr/lib/systemd/system/firewalld.service
    lrwxrwxrwx. 1 root root 46 Aug 31 03:08 /etc/systemd/system/dbus-org.freedesktop.networkManager.service -> /usr/lib/systemd/system/NetworkManager.service

    [root@localhost /]# find  /etc/ -perm u=rwx -exec ls -l {} \; //根据属主的权限来查看文件
    -rwx------. 1 root root 180 Jul 31  2013 /etc/cron.daily/logrotate
    total 0
    total 0
    total 68
    -rwxr-xr-x. 1 root root  8702 Mar 26 16:27 00_header
    -rwxr-xr-x. 1 root root   992 Oct 17  2014 00_tuned
    -rwxr-xr-x. 1 root root 10114 Mar 26 16:27 10_linux
    -rwxr-xr-x. 1 root root 10275 Mar 26 16:27 20_linux_xen
    -rwxr-xr-x. 1 root root  2559 Mar 26 16:27 20_ppc_terminfo
    -rwxr-xr-x. 1 root root 11169 Mar 26 16:27 30_os-prober
    -rwxr-xr-x. 1 root root   214 Mar 26 16:27 40_custom
    -rwxr-xr-x. 1 root root   216 Mar 26 16:27 41_custom
    -rw-r--r--. 1 root root   483 Mar 26 16:27 README
    [root@localhost /]# find  /etc/ -perm u=rwx -exec ls -l {} \; 2>/dev/null //添加错误重定向

    控制 find
    与 Linux 中的许多命令不同,find 不需要 -r 或 -R 选项即可下到子目录中。它默认情况下就这样操作。但是,有时您可能希望限制这一行为。因此,选项 -depth、-maxdepth 和 -mindepth 以及操作 -prune 就派上用场了.
    -maxdepth 和 -mindepth 选项允许您指定您希望 find 搜索深入到目录树的哪一级别.通过运行以下命令在目录树的前三个级别中查找日志文件,您可以看到 -maxdepth 的效果。使用该选项较之不使用该选项所生成的输出要少得多。
    [root@localhost /]# find / -maxdepth 3  -name '*.log'
    /tmp/yum.log
    /var/log/boot.log
    /var/log/yum.log

     

  • vim -->vi improved

    vim [options] [file]...
    模式切换
    默认为编辑模式
    编辑模式-->输入模式
    i:当前光标所在处
    I:在当前光标所在行行首
    a: 光标所在字符后方
    A:在当前光标所在行的行尾
    o:在当前所在行的下方新建
    O:在当前所在行的上方新建
    末行模式:
    :q!  强制退出
    :wq  保存退出
    :x  保存退出
    :wq! 强制保存退出
    :ZZ  保存退出
    编辑模式: cc  删除光标所在行,并进入插入模式
                     C   删除光标后面的字符
    可视化模式
    v:选择光标所在行的左侧的内容
    V:光标所在行整行都会选定
    编辑模式的翻屏命令
    Ctrl+f:向文件尾部翻一屏
    Ctrl+b:向文件首部翻一屏
    文本查找
    /Word
    ?word

    地址定界  startline ,endline   #:第n行  .:当前行  $:最后一行 %:全文
    相对定界: +#:从指定位置向下n行 -#:从指定位置向上n行
    文本替换操作
    s/要查找内容/要替换的内容/修饰符
    /:分隔符  如#,@
    g:全局替换
    i:不区分大小写
    要查找的内容:可以使用正则表达式
    要替换的内容:不可以使用正则表达式
    界面显示特性
        语法高亮开启和关闭:
        :syntax on/off
        搜索高亮的开启和关闭:
        :set hlsearch
        : set nohlsearch
        自动缩进
        :set autoindent
        : set noautoindent
    vim 全局配置文件 /etc/vimrc

     

  • bash环境配置:
     
    配置文件,生效范围划分,存在两类:
    全局配置:
    /etc/profile, /etc/profile.d/*.sh
    /etc/bashrc
    个人配置:
    ~/.bash_profile
    ~/.bashrc

  • 按功能划分,存在两类:
    profile类:为交互式登录的shell提供配置
    /etc/profile, /etc/profile.d/*.sh
    ~/.bash_profile

  •    功用:
        (1) 定义环境变量,例如PATH、PS1
        (2) 运行命令或脚本

  •   bashrc类:为非交互式登录shell提供配置
       /etc/bashrc
       ~/.bashrc

  •    功用:
        (1) 定义命令别名;
        (2) 定义本地变量;

  •  变量:内存空间,变量名
      类型:
       环境变量:作用范围当前shell进程及其子进程
       本地变量:作用范围当前shell进程
       局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)

  •    位置变量:$1, $2
       特殊变量:$?

  •   变量定义方式:
       bash内置变量:可直接调用,内置了许多环境变量,例如PATH等
       自定义变量:
        变量赋值:变量名=值

  •   bash弱类型:
       变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用;

  •     120:24bits
        120: 8bits

  •  定义本地变量:
      name=value

  •   查看:set

  •  定义环境变量:
      export name=value
      declare -x name=value

  •   查看:env, printenv, export

  •  撤消变量:
      unset name

  •  引用变量:
      ${name}, $name

  •  bash中的引用符号:
      '': 强引用,变量替换不会发生
      "":弱引用
      ``: 命令引用

  •  
     shell登录类型:
      交互式登录:
       直接通过终端进行的登录;
       通过su -l Username命令实现的用户切换;

  •   非交互式登录:
       图形界面下打开的命令行窗口;
       执行脚本;
       su Username;

  •  配置文件作用次序:
      交互式登录:
       /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

  •   非交互式登录:
       ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

  •  编辑配置文件定义的新配置如何生效?
      (1) 重新登录;
      (2) 让当前shell进程去重新读取指定的配置文件;
       source /PATH/TO/SOMEFILE
       . /PATH/TO/SOMEFILE

     

  • Linux文件系统上的特殊权限
     
     权限模型:
      u, g, o
       r, w, x

  •  进程的安全上下文:
      前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;
      (1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
      (2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
      (3) 进程拥的访问权限,取决其属主的访问权限:
       (a) 进程的属主,同文件属主,则应用文件属主权限;
       (b) 进程的属主,属于文件的属组,则应用文件属组权限;
       (c) 则应用其它权限;

  •  SUID:
      (1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;
      (2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID;

  •   权限设定:
       chmod u+s FILE...
       chmod u-s FILE...

  •   注意:
       s: 属主原本拥有x权限;
       S: 属主原本无x权限;

  •  SGID:
      默认情况下,用户创建文件时,其属级为此用户所属的基本组;
      一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组;

  •   权限设定:
       chmod g+s FILE...
       chmod g-s FILE...

  •  Sticky:
      对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件;

  •   权限设定
       chmod o+t FILE...
       chmod o-t FILE...

  •  SUID, SGID, STICKY
      000
      001
      010
      011
      100
      101
      110
      111

     

  • Linux磁盘管理
     硬盘:
      机械式硬盘
      SSD

  •  机械式:
      track
      sector: 512bytes
      cylinder: 分区的基本单位;

  •   MBR:Master Boot Record
       512bytes
        446: bootloader
        64: filesystem allocation table
         16: 标识一个分区
        2:55AA

  •  磁盘接口类型:
      IDE (ATA):133MB/s,/dev/hd
      SCSI: 640MB/s
      SATA:6Gbps
      SAS:6Gbps
      USB:480MB/s

  •   识别硬盘设备:/dev/sd
       标记不同的硬盘设备:/dev/sd[a-z]
       标记同一设备上的不同分区:/dev/sd[a-z][1-]
        1-4: 主或扩展分区标识
        5+:逻辑分区标识

  •   设备文件:特殊文件
       设备号:
        major, minor
         major: 设备类型
         minor: 同一类型下的不同设备

  •    “块”:block,随机设备
       “字符”:character,线性设备

  •    GPT

  •  分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;

  •  分区工具
      fdisk, parted, sfdisk

  •  fdisk工具的使用:
      最多支持在一块硬盘上的15个分区;

  •   分区管理子命令:
       p: 显示
       n: 创建
       d: 删除
       t: 修改分区ID
       l: 列出所有支持ID类型
       w: 保存退出
       q: 放弃修改并退出
       m: 获取帮助

  •   创建完成之后,查看内核是否已经识别新的分区:
       # cat /proc/partitions

  •    有三个命令可以让内核重读磁盘分区表:
        Centos 5: partprobe [DEVICE]
        CentOS 6,7:
         partx
         kpartx

  •     partx命令:
         partx DEVICE
         partx -a DEVICE
         partx -a -n M:N DEVICE
          M
          M:
          :N

  •     kpartx命令:
         kpartx -af DEVICE

     

  • Linux文件系统管理

  •  文件系统:
      VFS:Virtual File System

  •   Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap
      光盘:iso9660
      windows: fat32(vfat), ntfs
      Unix: ffs, ufs, jfs, jfs2
      网络文件系统:nfs, cifs
      集群文件系统:ocfs2, gfs2
      分布式文件系统:ceph,
       moosefs, mogilefs, hdfs, gfs, glusterfs

  •   (1) 日志型文件系统
       非日志型文件系统:ext2
       日志型文件系统:ext3

  •   (2) swap:交换分区


  •  创建文件系统:
      在分区上执行格式化(高级格式化)
       要使用某种文件系统,满足两个条件:
        内核中:支持此种文件系统
        用户空间:有文件系统管理工具


  •   创建工具:mkfs (make filesystem)
       mkfs -t type DEVICE

  •     mkfs.type DEVICE

  •    ext系列文件系统的专用管理工具:
        mke2fs -t {ext2|ext3|ext4} DEVICE
         -b BLOCK: 1024, 2048, 4096
         -L 'LABEL': 设定卷标

  •    blkid命令:
        blkid DEVICE
         LABEL, UUID, TYPE

 

6、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
:%s/^[[:space:]]//g

7、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;
:%s/^[[:space:]]/#/g

8、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;
:%s#/etc/sysconfig/init#/var/log#g
9、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;
%s/^#[[:space:]]\{1,\}//g
10、查找/var目录属主为root,且属组为mail的所有文件;
find /var -type f -user root -group mail -ls
11、查找/usr目录下不属于root、bin或hadoop的所有文件;
find /usr ! (-user root -a -user bin -a -user hadoop) -ls
12、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;
find /etc/  ! (-user root -a -user hadoop)  -mtime -7  -ls
13、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;
find / -nouser -o -nogroup -atime -7  -ls
14、查找/etc目录下大于20k且类型为普通文件的所有文件;
find /etc -type f -size +20k -ls
15、查找/etc目录下所有用户都没有写权限的文件;
find /etc/ !  -perm /222   -ls
16、查找/etc目录下至少有一类用户没有执行权限的文件;
find /etc/ !  -perm -111   -ls
17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;
find /etc/init.d/ -perm -u+x,-o+w  -ls
18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;
chmod u+s /tmp/cat
ls -lh /tmp/cat
19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;
chmod g=xs,o=t /test/data

 

--结束END--

本文标题: linux命令基础(3)

本文链接: https://www.lsjlt.com/news/187874.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux命令基础(3)
    find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下:find <指定目录> <指定条件> <指定动作>- <指定目录>: 所要搜索的目录及其所有子目录。...
    99+
    2023-01-31
    命令 基础 linux
  • Linux基础命令(3)
    十二 lsof命令简介lsof(list open files) 是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 如传输控制协议 (TCP) ...
    99+
    2023-01-31
    命令 基础 Linux
  • Linux基础篇之五基础命令 ---- 3
    在linux中,我们经常需要查找某些文件,以及文件所在目录等。那么我们需要用到一些基本的文件查找类命令。文件查找命令主要有以下几个:·which    查看命令或可执...
    99+
    2022-10-18
  • docker-3 基础命令
    创建镜像创建镜像的方法有三种:基于已有的容器创建基于本地模板导入基于dockerfile基于已有的容器创建主要使用docker commit 命令,命令格式:docker commit [OPTIONS] CONTAINER [REPOSI...
    99+
    2023-01-31
    命令 基础 docker
  • HP-UX基础命令3
    crontab -l 查看schedule列表crontab -e 编辑schedule列表   5    *    *    *    *    /opt/psb/bin/restart_logserv.sh               ...
    99+
    2023-01-31
    命令 基础 HP
  • Linux基础命令---more
    more将内容较长的文本文件内容分屏显示,支持定位关键字。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法more [-dlfpcsu] ...
    99+
    2023-06-05
  • Linux基础命令---head
    head显示文件开头的几行,默认显示10行,可以使用选项-n来指定行数。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法head [选项] &nbs...
    99+
    2023-06-06
  • Linux基础命令---gunzip
    gunzip解压缩被gzip压缩过的文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法gunzip [-acfhlLnNrtvV]  ...
    99+
    2023-06-05
  • Linux基础命令---bzcat
    bzcat解压缩被bzip2压缩过的文件,将文件解压到标准输出,此命令只有一个选项-s。该指令对压缩过的二进制文件没有意义,因为二进制文件没有可读性。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openS...
    99+
    2023-06-05
  • Linux基础命令---zcat
    zcat解压有gzip压缩的文件,将解压结果送到标准输出。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法zcat [-fhVL] 文件 ...
    99+
    2023-06-05
  • Linux基础命令---bunzip2
    bunzip2解压缩bzip2压缩过的文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法bunzip2 [-fkvsVL]  文件&n...
    99+
    2023-06-06
  • Linux基础命令---zip
    zipzip是一种最通用的文件压缩方式,使用于unix、msdos、windows、OS等系统。如果在编译zip时包含bzip 2库,zip现在也支持bzip 2压缩。当将大于4GB的文件添加到存档中时,zip会自动使用Zip 64扩展名,...
    99+
    2023-06-06
  • Linux基础命令---gzexe
    gzexe压缩可执行文件,在执行程序的时候可以自动实现解压。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法gzexe file 2、选项列表选项说...
    99+
    2023-06-06
  • Linux基础命令- history
    Linux基础命令- history 1.history 显示历史命令 作用:用于显示历史记录和执行过的指令命令 当登录shell或者是退出的时候会自动进行读取和存储 1.常用参数 语法:# history 选项 参数#参数-n ...
    99+
    2023-08-22
    linux 运维 服务器
  • Linux基础命令---apachectl
    apachectlapachectl指令是apache http服务器的前端控制程序,可以协助控制apache服务的守护进程httpd。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fed...
    99+
    2023-06-05
  • Linux基础命令---find
    file判断指定文件的文件类型,它依据文件内容判断,并不依据扩展名。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法file [选项]  ...
    99+
    2023-06-06
  • Linux基础命令---comm
    comm逐行比较两个已经排序过的文件。结果以3列显示:第1列显示只在file1出现的内容,第2列显示只在file2出现的内容,第3列显示同时出现的内容。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、open...
    99+
    2023-06-06
  • Linux基础命令---ls
    ls显示当前目录下的所有内容。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法ls [OPTION]... [FILE]... 2、选项...
    99+
    2023-06-06
  • Linux基础命令---chgrp
    chgrp改变文件或者目录所属的群组,使用参数“--reference”,可以改变文件的群组为指定的关联文件群组。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1...
    99+
    2023-06-06
  • Linux基础命令---mknod
    mknod创建块设备或者字符设备文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法mknod [选项]  设备名 ...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作