zoukankan      html  css  js  c++  java
  • Linux基础命令-文件与目录

    Linux基础命令-文件与目录

    参考:《鸟哥linux私房菜》五-七章,17/12/5复习,18/01/15复习


    • 文件权限

    rwx421:用户,用户组,其他

    umask查看默认权限:0002,即对其他用户拿掉了w权限,也可直接umask -S显示具体权限
    chgrp

    chown zuo:zuo filename

    chmod +664 testfile//-rw-rw-r--

    chmod u=rwx,go=rw testfile

    chmod +x testfile

    +号是添加权限,无加号直接指定权限,-R 递归

    对目录来说:r可打印,w可修改目录下任何文件,x可进入成为工作目录

    eg: cp dir1/file dir2/ 需要的最少权限:dir1 x;file r;dir2 w,x

    • 目录操作

    cd

    pwd

    mkdir:-p递归创建 -m指定权限

    rmdir

    ls:-R 递归列出所有文件; -S按从大到小; -t 时间从新到旧 ;-r 反向

    cp:-p 复制属性;-r 递归复制 ;-d复制链接文件;-a 相当于pdr;-u 新的才复制;-l创建硬链接,-s软链接

    rm -rf /

    • 文件内容

    cat:-n行号;-A显示看不见的字符

    tac

    nl

    more

    less:最常用

    head -n 10;-10只打印不包括后面10行

    tail -n 10;-10不包括前面10行

    非纯文本类型:od -a,默认读取; c ,d,o,x,ascii,十进制,八进制,16进制

    file 查看文件类型

    • 文件时间

    mtime modification time内容更改

    ctime status time状态更改,如权限,属性

    atime access time文件内容被读取

    查看时间:ll --time=ctime filename;默认为mtime

    更改时间:touch -m/a 更改修改时间/访问时间为当前时间

    -d ‘’2 days ago‘’;-t 指定时间,[[CC]YY]MMDDhhmm[.ss]
    ctime不可修改,不能复制

    • 文件隐藏属性

    chattr + a filename,只能增加内容;+i,不能删改

    lsattr

    • 文件特殊权限
    1. SetUID

    -rwsr-xr-x 1 root root 27832 Jun 10 2014 /usr/bin/passwd

    当s出现在文件所有者的x权限上时,称为SUID

    仅对二进制程序有效;执行者需要有x权限;临时获得拥有者权限,如普通用户修改passwd

    1. Set GID

    当s出现在用户组的x权限上时,称为SGID

    可用于目录;执行者需要有x权限;临时获得用户组的支持

    1. Sticky Bit(SBID)

    drwxrwxrwt 9 root root 4096 Dec 5 01:46 /tmp

    当t出现在其他的x权限上时

    仅用于目录;使用者需要有wx权限;仅有本用户和root能删除该文件

    可用chmod设置上述三种权限421,即7777;另外大写S或T表示文件拥有者也无x权限,即空命令

    • 环境变量

    echo $PATH

    PATH="$PATH":/opt/typora

    • 查找
    1. which

    根据PATH查找执行文件

    1. whereis

    数据库中查找文件

    1. locate

    updatedb更新数据库;可模糊匹配;-i 忽略大小写;-r 正则式匹配

    1. find

    find |PATH| |OPTION| |file|

    • 时间参数

    -mtime n,n天前的那天

    -mtime +n,n天之前(不含n天)

    -mtime -n,n天之内(含n天)

    -newer file,比file更新

    • 用户有关

    -user name

    -group name

    -nouser

    • 权限名称有关

    -name filename

    -size +/- 100c;c为bytes,k为KB,M为MB,G为GB

    -type TYPE;TYPE有如下几种:f一般文件,b/c设备文件,d目录,l链接文件,s套接字,p管道

    -perm mode;权限正好为mode的文件;-mode超集,必须全部包括mode;+mode子集,包含任一mode

    -exec 加其他命令find /tmp -newer test1 -exec ls -l {} ;

    • 目录配置

    FHS标准

    第三方软件一般在/usr/src 或/opt

    内核源码在/usr/src

    /

    /bin - 用户二进制文件
    在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
    例如:ps、ls、ping、grep、cp8

    /sbin

    通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令

    /etc - 配置文件

    hosts:设备名称(或域名)到ip地址的解析,相当于本地存在的dns功能。

    /dev - 设备文件
    这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0

    /proc - 进程信息
    这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。

    /var - 变量文件
    这个目录下可以找到内容可能增长的文件。包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

    /tmp - 临时文件
    包含系统和用户创建的临时文件。当系统重新启动时,这个目录下的文件都将被删除。

    /usr - unix software resourse
    包含二进制文件、库文件、文档和二级程序的源代码。
    /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。
    /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。
    /usr/lib中包含了/usr/bin和/usr/sbin用到的库。
    /usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。

    /home - HOME目录
    所有用户用home目录来存储他们的个人档案。
    例如:/home/john、/home/nikita

    /boot - 引导加载程序文件
    内核的initrd、vmlinux、grub文件位于/boot下。例如:initrd.img-2.6.32-24-generic

    /lib - 系统库
    包含支持位于/bin和/sbin下的二进制文件的库文件.
    库文件名为 ld或lib.so.*例如:ld-2.11.1.so,libncurses.so.5.7

    /opt - 可选的附加应用程序
    包含从个别厂商的附加应用程序。

    /mnt - 挂载目录
    临时安装目录,系统管理员可以挂载文件系统。

    /media - 可移动媒体设备
    用于挂载可移动设备的临时目录。
    举例来说,挂载CD-ROM的/media/cdrom,windows也通常挂在在这里

    /srv - 服务数据
    包含服务器特定服务相关的数据。
    例如,/srv/cvs包含cvs相关的数据。


    练习:建立两个账号tmp1和tmp2,支持同一个用户组project,需要共同拥有/srv/ahome目录的开发权,且该目录不允许其他用户访问

    //创建用户及用户组
    [root@localhost /]# groupadd project     
    [root@localhost /]# useradd -G project tmp1
    [root@localhost /]# useradd -G project tmp2
    //建立目录及权限
    [root@localhost /]# cd /srv   
    [root@localhost srv]# mkdir ./ahome
    [root@localhost srv]# chgrp project /srv/ahome
    [root@localhost srv]# chmod 770 ahome
    [root@localhost srv]# ll -d ahome
    drwxrwx--- 2 root project 4096 Dec  5 05:36 ahome
    //tmp1创建文件但是tmp2不能访问
    [root@localhost srv]# su tmp1
    [tmp1@localhost srv]$ cd ahome/
    [tmp1@localhost ahome]$ ls
    [tmp1@localhost ahome]$ touch testfile
    [tmp1@localhost ahome]$ su root
    Password: 
    [root@localhost ahome]# su tmp2
    [tmp2@localhost ahome]$ ll testfile
    -rw-rw-r-- 1 tmp1 tmp1 0 Dec  5 05:38 testfile//注意tmp2用户相当于其他,只有r权限
    //添加SUGID权限
    [tmp2@localhost ahome]$ su root
    Password: 
    [root@localhost ahome]# chmod 2770 /srv/ahome
    //验证
    [root@localhost ahome]# su tmp1
    [tmp1@localhost ahome]$ touch file
    [tmp1@localhost ahome]$ ll
    total 0
    -rw-rw-r-- 1 tmp1 project 0 Dec  5 05:39 file//注意用户组变为project
    [tmp1@localhost ahome]$ su root
    Password: 
    [root@localhost ahome]# su tmp2
    [tmp2@localhost ahome]$ ll 
    total 0
    -rw-rw-r-- 1 tmp1 project 0 Dec  5 05:39 file
    
    
  • 相关阅读:
    Kubernetes实战总结
    Kubernetes实战总结
    Kubesnetes实战总结
    Kubernetes实战总结
    【转载】Nginx、HAProxy、LVS三者的优缺点
    Kubernetes实战总结
    【解决】 Streaming server stopped unexpectedly: listen tcp: lookup localhost on 114.114.114.114:53: no such host
    Kubernetes实战总结
    (转载)常用正则表达式大全——包括校验数字、字符、一些特殊的需求
    css选择器参考手册
  • 原文地址:https://www.cnblogs.com/yueshangzuo/p/7988882.html
Copyright © 2011-2022 走看看