linux(四)

作者: alonwang | 来源:发表于2016-08-16 16:57 被阅读36次

    命令

    pwd : print working directory
    

    有可选参数

    -P,如果当前目录是链接会显示出真是路径

    cd : change directory
    

    这个是最基本的

    mkdir
    

    创建目录有可选参数

    -m 设置权限,不使用默认权限

    -p 递归创建多重目录

    rmdir

    删除目录(仅为空目录)可选参数

    -p 递归删除目录

    ls
    

    列出文件或目录信息.

    选项与参数:
    -a      :全部的文件,连同隐藏文件(  开头为 .   的文件)    一起列出来(常用)
    -A      :全部的文件,连同隐藏文件,但不包括  .   与   ..  这两个目录
    -d      :仅列出目录本身,而不是列出目录内的文件数据(常用)
    -f      :直接列出结果,而不进行排序  (ls 默认会以文件名排序!)
    -F      :根据文件、目录等信息,给予附加数据结构,例如:
                            *:代表可可执行文件; /:代表目录; =:代表    socket  文件; |:代表    FIFO    文件;
    -h      :将文件大小以人类较易读的方式(例如  GB, KB  等等)列出来;
    -i      :列出 inode   号码,inode    的意义下一章将会介绍;
    -l      :长数据串行出,包含文件的属性与权限等等数据;(常用)
    -n      :列出 UID 与   GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!)
    -r      :将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小;
    -R      :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;
    -S      :以文件大小大小排序,而不是用文件名排序;
    -t      :依时间排序,而不是用文件名。
    --color=never       :不要依据文件特性给予颜色显示;
    --color=always  :显示颜色
    --color=auto            :让系统自行依据设置来判断是否给予颜色
    --full-time             :以完整时间模式    (包含年、月、日、时、分)   输出
    --time={atime,ctime}    :输出 access  时间或改变权限属性时间 (ctime)而非内容变更时间 (modification   time)
    

    cp
    

    复制文件或目录

    选项与参数:
    -a      :相当于    -dr --preserve=all  的意思,至于  dr  请参考下列说明;(常用)
    -d      :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身;
    -f      :为强制(force)的意思,若目标文件已经存在且无法打开,则移除后再尝试一次;
    -i      :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
    -l      :进行硬式链接(hard    link)的链接文件创建,而非复制文件本身;
    -p      :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用);
    -r      :递回持续复制,用于目录的复制行为;(常用)
    -s      :复制成为符号链接文件 (symbolic   link),亦即“捷径”文件;
    -u      :destination    比   source  旧才更新    destination,或   destination 不存在的情况下才复制。
    --preserve=all  :除了 -p  的权限相关参数外,还加入    SELinux 的属性,    links,  xattr   等也复制了。
    最后需要注意的,如果来源文件有两个以上,则最后一个目的文件一定要是“目录”才行!
    

    .

    rm
    

    移除文件或目录

    -f 强制删除
    -r 递归删除
    

    文件内容查阅

    • cat 由第一行开始显示文件内容
    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
    • nl 显示的时候,顺道输出行号!
    • more 一页一页的显示文件内容
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    • head 只看头几行
    • tail 只看尾巴几行
    • od 以二进制的方式读取文件内容!

    PATH

    环境变量,存放命令目录.如果有同名命令,执行先搜索到的命令

    添加目录到PATH
    PATH="${PATH}:目录路径(绝对相对都行)"

    umask

    文件默认权限

    rw- rw- rw-
    

    目录默认权限

    rwx rwx rwx
    

    创建时的默认权限.显示的是拿掉的权限,例如

    0022
    

    后三位表示权限,这时创建出的文件权限为

    (rw- rw- rw-)-(--- -w- -w-)=rw- r-- r--
    

    创建出的目录权限为
    (rwx rwx rwx)-(--- -w- -w-)=rwx r-x r-x

    设置umask

    umask 011
    

    设置umask位--- --x --x

    特殊权限

    chattr [+-=][para]
    

    增加/取消/等于para权限

    常用参数(都需要root权限)

    • i

    让一个文件不能被删除、改名、设置链接也无法写入或新增数据!
    *a
    这个文件将只能增加数据,而不能删除也不能修改数据

    其中i笔者搞wordpress时为了解决ftp问题用到过,当时并不知道是什么原理.

    lsattr
    

    显示特殊权限,具体信息就找男人(man)

    查找命令

    查找PATH中命令位置

    which [-a] command
    

    查找[全部]命令位置

    查找文件

    whereis [-bmus] filename/dirname
    

    仅在主要目录中查找

    选项与参数:

    -l              :可以列出   whereis 会去查询的几个主要目录而已
    -b              :只找 binary  格式的文件
    -m              :只找在说明文档    manual  路径下的文件
    -s              :只找 source  来源文件
    -u              :搜寻不在上述三个项目当中的其他特殊文件
    

    .

    locate [-ir] keyword

    在数据库中查询

    选项与参数:

    -i      :忽略大小写的差异;
    -c      :不输出文件名,仅计算找到的文件数量
    -l      :仅输出几行的意思,例如输出五行则是  -l  5
    -S      :输出 locate  所使用的数据库文件的相关信息,包括该数据库纪录的文件/目录数量等
    -r      :后面可接正则表达式的显示方式
    

    .

    find    [PATH]  [option]    [action]
    

    基本用法

    find / passwd
    

    全盘搜索passwd


    linux主要目录,基于FHS

    目录 应放置文件内容
    第一部份:FHS要求必须要存在的目录
    /bin 系统有很多放置可执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin下面的指令可以被root与一般帐号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令.
    /boot 这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机菜单与开机所需配置文件等等,Linux kernel常用的文件名为:vmlinuz,如果使用的是grub2这个开机管理程序, 则还会存在/boot/grub2/这个目录喔!
    /dev 在Linux系统上,任何设备与周边设备都是以文件的型态存在于这个目录当中的。 你只要通过存取这个目录下面的某个文件,就等于存取某个设备啰~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/loop, /dev/sd等等
    /etc 系统主要的配置文件几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改。FHS建议不要放置可可执行文件(binary)在这个目录中喔。比较重要的文件有: /etc/modprobe.d/,/etc/passwd, /etc/fstab, /etc/issue 等等。另外 FHS 还规范几个重要的目录最好要存在 /etc/ 目录下喔:/etc/opt(必要):这个目录在放置第三方协力软件 /opt 的相关配置文件 /etc/X11/(建议):与 X Window 有关的各种配置文件都在这里,尤其是 xorg.conf 这个 X Server 的配置文件。 /etc/sgml/(建议):与 SGML 格式有关的各项配置文件 /etc/xml/(建议):与 XML格式有关的各项配置文件
    /lib 系统的函数库非常的多,而/lib放置的则是在开机时会用到的函数库, 以及在/bin或/sbin下面的指令会调用的函数库而已。 什么是函数库呢?你可以将他想成是“外挂”,某些指令必须要有这些“外挂”才能够顺利完成程序的执行之意。 另外 FSH 还要求下面的目录必须要存在:/lib/modules/:这个目录主要放置可抽换式的核心相关模块(驱动程序)喔!
    /media media是“媒体”的英文,顾名思义,这个/media下面放置的就是可移除的设备啦! 包括软盘、光盘、DVD等等设备都暂时挂载于此。常见的文件名有:/media/floppy, /media/cdrom等等。
    /mnt 如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录中。在古早时候,这个目录的用途与/media相同啦!只是有了/media之后,这个目录就用来暂时挂载用了。
    /opt 这个是给第三方协力软件放置的目录。什么是第三方协力软件啊? 举例来说,KDE这个桌面管理系统是一个独立的计划,不过他可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下了。 另外,如果你想要自行安装额外的软件(非原本的distribution提供的),那么也能够将你的软件安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下呢!
    /run 早期的 FHS 规定系统开机后所产生的各项信息应该要放置到 /var/run 目录下,新版的 FHS 则规范到 /run 下面。 由于 /run 可以使用内存来仿真,因此性能上会好很多!
    Linux有非常多指令是用来设置系统环境的,这些指令只有root才能够利用来“设置”系统,其他使用者最多只能用来“查询”而已。 放在/sbin下面的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统可执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, mkfs等等。
    /srv srv可以视为“service”的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。 常见的服务例如WWW, FTP等等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面。 不过,系统的服务数据如果尚未要提供给网际网络任何人浏览的话,默认还是建议放置到 /var/lib下面即可。
    /tmp 这是让一般使用者或者是正在执行的程序暂时放置文件的地方。 这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要数据不可放置在此目录啊! 因为FHS甚至建议在开机时,应该要将/tmp下的数据都删除唷!
    第二部份:FHS建议可以存在的目录
    /home 这是系统默认的使用者主文件夹(home directory)。在你新增一个一般使用者帐号时, 默认的使用者主文件夹都会规范到这里来。比较重要的是,主文件夹有两种代号喔:~:代表目前这个使用者的主文件夹 ~dmtsai :则代表 dmtsai 的主文件夹!
    /lib<qual> 用来存放与 /lib 不同的格式的二进制函数库,例如支持 64 位的 /lib64 函数库等
    /root 系统管理员(root)的主文件夹。之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的主文件夹,所以我们会希望root的主文件夹与根目录放置在同一个分区中。

    事实上FHS针对根目录所定义的标准就仅有上面的咚咚,不过我们的Linux下面还有许多目录你也需要了解一下的。 下面是几个在Linux当中也是非常重要的目录喔:

    目录 应放置文件内容
    /lost+found 这个目录是使用标准的ext2/ext3/ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。不过如果使用的是 xfs 文件系统的话,就不会存在这个目录了!
    /proc 这个目录本身是一个“虚拟文件系统(virtual filesystem)”喔!他放置的数据都是在内存当中, 例如系统核心、行程信息(process)、周边设备的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊!比较重要的文件例如:/proc/cpuinfo, /proc/dma,/proc/interrupts, /proc/ioports, /proc/net/* 等等。
    /sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录核心与系统硬件信息较相关的信息。 包括目前已载入的核心模块与核心侦测到的硬件设备信息等等。这个目录同样不占硬盘容量喔!

    其实现在记这些东西也没什么用

    相关文章

      网友评论

        本文标题:linux(四)

        本文链接:https://www.haomeiwen.com/subject/qmvpsttx.html