• Centos目录及其常用处理命令


    Centos目录及其常用处理命令

    1、Centos之常见目录作用介绍[1]

    我们先切换到系统根目录 / 看看根目录下有哪些目录

    [root@localhost ~]# cd /

    [root@localhost /]# ls

    bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

    boot  etc  lib   media  opt  root  sbin  sys  usr

    [root@localhost /]# 

    这里首先看下 根目录/ 下的 bin 和 sbin;

    在user下也有bin和sbin

    [root@localhost /]# ls usr/

    bin  games    lib    libexec  sbin   src

    etc  include  lib64  local    share  tmp

    [root@localhost /]# 

    根目录下的bin和sbin,usr目录下的bin和sbin,

    这四个目录都是用来保存系统命令的。

    bin: 

    bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

    /usr/bin:

    主 要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。 

    /sbin: 

    主 要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

    /usr/sbin:

    放置一些网路管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等

    bin目录下的命令普通用户和root用户都可以执行,

    但是sbin下的命令只有root用户可以执行;

    /boot目录,是启动目录,存的是启动相关的文件

    该目录下不要乱存东西;

    /dev设备文件保存目录

    /etc配置文件保存目录

    /home普通用户的家目录

    /lib系统库保存目录

    /mnt系统挂载目录

    /media挂载目录

    /root超级用户的家目录

    /tmp临时目录

    /proc直接写入内存的,虚拟文件系统

    /sys直接写入内存的,虚拟文件系统

    /var系统相关文档内容


    2、Centos中查询目录中内容命名ls[2]

    QQ鎴�浘20170613174345.jpg

    首先解释下这块, root代表当前登录用户,localhost代表主机名, ~代表当前主机目录,#代表用户权限 #表示超级用户,$表示普通用户;

    查询目录中内容命令 ls  (list缩写)

    格式 ls [选项]  [文件或目录]

    选项:

      -a 显示所有文件,包括隐藏文件

      -l  显示详细信息

      -d 查看目录属性

      -h 人性化显示文件大小

      -i  显示inode

    超级用户root默认的当前目录是 root目录 

    我们可以用pwd命名(Print Working Directory 打印当前工作目录)看到

    QQ鎴�浘20170613175137.jpg

    我们打印下当前目录下文件信息:

    [root@localhost ~]# ls

    anaconda-ks.cfg

    只有一个文件

    假如我们要列出所有文件  用 ls -a 把隐藏文件也显示出来

    [root@localhost ~]# ls -a

    .   anaconda-ks.cfg  .bash_logout   .bashrc  .tcshrc

    ..  .bash_history    .bash_profile  .cshrc

    多了一些文件

    我们也可以看其他目录的文件:

    [root@localhost ~]# ls /etc/

    adjtime                   modprobe.d

    aliases                   modules-load.d

    aliases.db                motd

    alternatives              mtab

    anacrontab                my.cnf

    asound.conf               my.cnf.d

    audisp                    NetworkManager

    audit                     networks

    同样也可以看具体某个文件

    [root@localhost ~]# ls -l /etc/vconsole.conf

    -rw-r--r--. 1 root root 37 6月  10 05:23 /etc/vconsole.conf

    我们用 -l 或者 -la 组合 列出详细信息;

    [root@localhost ~]# ls -l

    总用量 4

    -rw-------. 1 root root 1237 6月  10 05:24 anaconda-ks.cfg

    [root@localhost ~]# ls -la

    总用量 24

    dr-xr-x---.  2 root root  135 6月  11 21:13 .

    dr-xr-xr-x. 17 root root  224 6月  10 05:23 ..

    -rw-------.  1 root root 1237 6月  10 05:24 anaconda-ks.cfg

    -rw-------.  1 root root    0 6月  11 21:13 .bash_history

    -rw-r--r--.  1 root root   18 12月 29 2013 .bash_logout

    -rw-r--r--.  1 root root  176 12月 29 2013 .bash_profile

    -rw-r--r--.  1 root root  176 12月 29 2013 .bashrc

    -rw-r--r--.  1 root root  100 12月 29 2013 .cshrc

    -rw-r--r--.  1 root root  129 12月 29 2013 .tcshrc

    [root@localhost ~]# 

    这里第一列 比如 dr-xr-xr-x.  代表文件类型以及所有者,所属组以及其他者权限

    第一位d代表文件类型 常见的有   - 文件 d目录 | 软件链接文件

    后面9位 每3位一个组 分别是 所有者u 所属组g 以及 其他者o的权限

    权限分三种 r读  w写   x执行

    比如  dr-xr-xr-x  这个目录 所有者 所属组 以及其他者 都有 读和执行权限;

    比如  -rw------- 这个文件  所有者有读写权限 所属组以及其他者没有权限;

    第二列 那个数字  是 硬链接次数 后面再说;

    第三列 root  是 所有者;

    第四列 root 是 所属组;

    第五列 是文件大小;假如看不惯  可用 ls -lh 

    [root@localhost ~]# ls -lh

    总用量 4.0K

    -rw-------. 1 root root 1.3K 6月  10 05:24 anaconda-ks.cfg

    第六列的日期是该文件最后一次修改时间;

    最后一列 是文件名称;

    查看目录属性 要加 -d

    [root@localhost ~]# ls -ld /etc/

    drwxr-xr-x. 78 root root 8192 6月  13 15:50 /etc/

    [root@localhost ~]# 

    查看文件的inode属性 类似 主键 唯一识别文件的Id 用 -i

    [root@localhost ~]# ls -li

    总用量 4

    33574979 -rw-------. 1 root root 1237 6月  10 05:24 anaconda-ks.cfg

    [root@localhost ~]# 

    33574979 就是inode属性


    3、Centos之目录处理命令[3]

    linux中 关于目录 有几个重要概念

    一个是 / 根目录  还有一个当前用户的家目录 比如 root用户的家目录是 /root  普通用户的家目录是/home/xxx 下

    root登录 默认家目录 是root 我们这里先用 cd .. 进入 / 根目录

    [root@localhost ~]# cd ..

    [root@localhost /]# 

    然后我们看下 根目录  / 下有哪些目录 

    [root@localhost /]# ls 

    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

    [root@localhost /]# 

    我们用 cd 回到家目录

    [root@localhost /]# cd

    [root@localhost ~]# 

    创建目录命令  mkdir (make directories)

    比如在/root 下建一个 书籍目录

    [root@localhost ~]# mkdir 书籍

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍

    [root@localhost ~]# 

    假如我们要递归创建目录和文件

    [root@localhost ~]# mkdir 书籍2/java编程思想

    mkdir: 无法创建目录"书籍2/java编程思想": 没有那个文件或目录

     发现失败了 默认不准递归创建 要递归创建的话 家-p

    [root@localhost ~]# mkdir -p 书籍2/java编程思想

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍  书籍2

    [root@localhost ~]# ls /root/书籍2/

    java编程思想

    [root@localhost ~]# 

    切换所在目录,cd (change directory)

    简化操作

    cd ~     进行当前用户的家目录

    cd 

    cd - 进入上次目录

    cd .. 进入上一级目录

    cd . 进入当前目录

    我们先进入 /root/书籍2/ 目录

    然后cd ~ 回到家目录 /root/

    然后 cd - 进入上次目录 也就是 /root/书籍2/ 目录

    再cd.. 进入 /root/目录

    cd .没啥意义(注意cd后面要加个空格);

    [root@localhost ~]# cd /root/书籍2/

    [root@localhost 书籍2]# cd ~

    [root@localhost ~]# cd -

    /root/书籍2

    [root@localhost 书籍2]# cd ..

    [root@localhost ~]# cd.

    -bash: cd.: 未找到命令

    [root@localhost ~]# cd .

    [root@localhost ~]# 

    目录补全以及命名补全  tag键

    比如 切换目录 /usr 假如记不清楚 直接 /u 然后 tag键,则自动补全;

    [root@localhost ~]# cd .

    [root@localhost ~]# cd /usr/

    [root@localhost usr]# 

    比如要输入一些命令 useradd 假如记不清出了 

    直接输入 user 然后tab键 

    [root@localhost ~]# user

    useradd     userdel     usermod     usernetctl  users

    [root@localhost ~]# useradd 

    会把所有user开头的命令都显示出来;

    pwd命令(print working directory)打印工作目录

    就是打印当前位置

    [root@localhost ~]# pwd

    /root

    [root@localhost ~]# 

    删除空目录: rmdir (remove empty directories)

    rmdir [目录名]

    我们删除root下的空目录 书籍 试下

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍  书籍2

    [root@localhost ~]# rmdir 书籍/

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍2

    [root@localhost ~]# 

    发现没问题

    我们删除 书籍2目录时,

    [root@localhost ~]# rmdir 书籍2/

    rmdir: 删除 "书籍2/" 失败: 目录非空

    [root@localhost ~]# 

    报错了,因为 书籍2 目录 非空;

    这里的话 假如要删除 书籍2 目录 我们需要先把书籍2里面的文件或者目录先删除,然后才能删除书籍2目录,

    这个是非常不现实的,所以 rmdir命令了解即可,以后基本不用的。

    删除文件或目录:rm  (remove)

    rm -rf [文件或目录]

    选项: 

    -r 删除目录

    -f 强制

    我们用 touch命令新建一个空文件

    然后用rm命令删除

    [root@localhost ~]# touch java牛

    [root@localhost ~]# ls

    anaconda-ks.cfg  java牛  书籍2

    [root@localhost ~]# rm java牛

    rm:是否删除普通空文件 "java牛"?n

    [root@localhost ~]# ls

    anaconda-ks.cfg  java牛  书籍2

    [root@localhost ~]# rm java牛

    rm:是否删除普通空文件 "java牛"?y

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍2

    [root@localhost ~]# 

    删除文件会提醒是否删除,输入n 不删除 输入y 删除;

    假如我们删除 书籍2 目录

    [root@localhost ~]# rm 书籍2/

    rm: 无法删除"书籍2/": 是一个目录

    报错,假如要用rm删除目录,必须 加 -r

    [root@localhost ~]# rm -r 书籍2/

    rm:是否进入目录"书籍2/"? y

    rm:是否删除目录 "书籍2/java编程思想"?y

    rm:是否删除目录 "书籍2/"?y

    [root@localhost ~]# ls

    anaconda-ks.cfg

    依然提示我们是否要删除,假如有一万个文件 那得输入y到手麻;

    我们用 mk -rf 来强制删除 无需提醒

    [root@localhost ~]# mkdir -p 书籍2/java编程思想

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍2

    [root@localhost ~]# rm -rf 书籍2/

    [root@localhost ~]# ls

    anaconda-ks.cfg

    [root@localhost ~]# 

    这样方便很多  直截了当;以后用删除 就用 rm -rf 命令即可;

    复制命令:cp   (copy)

    cp [选项] [源文件或目录] [目标目录]

    选项:

    -r 复制目录

    -p 连带文件属性复制

    -d 若源文件是链接文件,则复制链接属性

    -a 相当于 -pdr

    我们复制下文件

    [root@localhost ~]# ls

    anaconda-ks.cfg

    [root@localhost ~]# cp anaconda-ks.cfg /tmp/abc

    [root@localhost ~]# ls

    anaconda-ks.cfg

    [root@localhost ~]# ls /tmp/

    abc

    ks-script-p0Ci4J

    systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r

    systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt

    systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy

    systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX

    systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0

    systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl

    yum.log

    把 root下的anaconda-ks.cfg复制到了 tmp下 并且重名为 abc

    假如 cp anaconda-ks.cfg /tmp/abc 不加文件名 则新文件名称不变

    [root@localhost ~]# cp anaconda-ks.cfg /tmp/

    [root@localhost ~]# ls /tmp/

    abc

    anaconda-ks.cfg

    ks-script-p0Ci4J

    systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r

    systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt

    systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy

    systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX

    systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0

    systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl

    yum.log

    假如复制目录:

    [root@localhost ~]# ls

    anaconda-ks.cfg

    [root@localhost ~]# mkdir -p 书籍2/java编程思想

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍2

    [root@localhost ~]# cp 书籍2/ /tmp/

    cp: 略过目录"书籍2/"

    我们需要加 -r

    [root@localhost ~]# cp -r 书籍2/ /tmp/

    [root@localhost ~]# ls /tmp/

    abc

    anaconda-ks.cfg

    ks-script-p0Ci4J

    systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r

    systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt

    systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy

    systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX

    systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0

    systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl

    yum.log

    书籍2

    这里我们用 ls -l  或者缩写命令 ll 来看下 文件的详细信息:

    QQ鎴�浘20170618103556.jpg

    时间不一样;第二个是复制文件的当前时间;

    假如我们需要把目录或者文件的属性一起复制 我们加 -a命名;

    11.jpg

    剪切或改名命令:mv  (move)

    mv [原文件或目录] [目标目录]

    我们把 root下的 书籍2 剪切到 tmp 下 并且重命名

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍2

    [root@localhost ~]# mv 书籍2 /tmp/书籍2哈哈

    [root@localhost ~]# ls

    anaconda-ks.cfg

    [root@localhost ~]# ls /tmp/

    abc

    anaconda-ks.cfg

    ks-script-p0Ci4J

    systemd-private-12ece3aaa1eb44678dbf684dbccbc32f-vmtoolsd.service-xjTV7r

    systemd-private-3588b18d27f94b80849d22621ef2defb-vmtoolsd.service-wmk7Jt

    systemd-private-90f54554da784e52aeb890d207e41094-vmtoolsd.service-I8F1Yy

    systemd-private-d5f08625d54e4ed3a0faa9b9fb944db5-vmtoolsd.service-4rHPpX

    systemd-private-f68c251a6a6c46ac94b4c1e73090ef59-vmtoolsd.service-S6J6U0

    systemd-private-f7cb736915b24ef2b72faee1ec860c6d-vmtoolsd.service-ldpfcl

    yum.log

    书籍2

    书籍2哈哈

    假如在同一个目录 那就是重新命令操作了

    [root@localhost ~]# ls

    anaconda-ks.cfg

    [root@localhost ~]# mkdir -p 书籍2/java.pdf

    [root@localhost ~]# ls

    anaconda-ks.cfg  书籍2

    [root@localhost ~]# mv 书籍2/ 牛逼/

    [root@localhost ~]# ls

    anaconda-ks.cfg  牛逼

    [root@localhost ~]# ls 牛逼/

    java.pdf

    [root@localhost ~]# 

     
    原文出处:

    [1] Java1234_小锋, Centos之常见目录作用介绍, http://blog.java1234.com/blog/articles/296.html
    [2] Java1234_小锋, Centos中查询目录中内容命名ls, http://blog.java1234.com/blog/articles/294.html
    [3] Java1234_小锋, Centos之目录处理命令, http://blog.java1234.com/blog/articles/295.html

  • 相关阅读:
    洛谷P3384 【模板】树链剖分
    hdu3518 Boring counting(后缀数组)
    CSL 的密码(后缀数组)
    洛谷P3809 【模板】后缀排序
    洛谷P2387 [NOI2014]魔法森林(LCT)
    洛谷P3366 【模板】最小生成树(LCT)
    Stanford机器学习课程(Andrew Ng)
    操作系统存储器管理选择题精练
    实验12:Problem I: 成绩排序
    实验12:Problem H: 整型数组运算符重载
  • 原文地址:https://www.cnblogs.com/suyufei/p/12830195.html
Copyright © 2020-2023  润新知