zoukankan      html  css  js  c++  java
  • Linux常用命令及文件管理

    Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

    目录解释: .代表此层目录;  .. 代表父目录;-代表前一个目录;~代表是家目录。

    (1)ls命令(显示)

    -a:列出所有文件包括隐藏文件
    
    -l:以长格式输出
    
    -d:只列出目录本身而不列出目录内部的文件
    
    -R:连同子目录一同显示出来,递归显示
    
    -h:以字节大小显示,需配合-l一起使用
    
    -t:按mtime排序

    (2)cp命令(复制)

    -i:提示用户是否覆盖
    
    -f:删除旧的新建
    
    -r:连同子目录一起复制,包括子目录里子目录
    
    -v:显示过程
    
    -d:复制的是链接文件
    
    -u:只复制源比目标新或者目标没有的文件
    
    -p:连同档案的属性一起复制过去,而非使用预设属性
    
    –backup=numbered:复制前先备份原有的

    (3)mv命令(移动、改名)

    -i:交互
    
    -f:强制复制
    
    -r:连同子目录一起复制,包括子目录里子目录
    
    -v:显示过程
    

    (4)rm命令(删除)—危险命令

    -r:连同子目录一起删除
    
    -f:强制删除
    
    -v:显示过程
    
    -i:提示用户

    演示:

    cd   是切换目录的含义

    cd .  切换至当前面目录

    cd .. 切换至上一层父目录

    ls   列出当前目录的内容或指定目录

    ls -a 包含隐藏文件
    
    ls -l 显示额外的信息
    
    ls -d 只显示目录文件

     

    pwd  显示当前shell的绝对路径

    -P 显示真实物理路径
    
    -L 显示链接路径(默认)

    基名:basename  显示结尾最后一个文件路径名

    目录名:dirname   除了最后一个文件路径名不显示,其他的路径名都显示

    Ctrl+a 跳到字母前端
    
    Ctrl+e 跳到字母后端
    
    Ctrl+s 锁定屏幕
    
    Ctrl+q 取消锁屏
    
    Ctrl+u 删除前面的整行
    
    Ctrl+k 删除后面的整行
    
    alt+r   删除整行

    touch  创建空文件

    以下三种方法都可以创建以“-”开头的文件

    touch -- -a  
    
    touch ./ -a
    
    touch /data/-a

    创建”~”开头的文件

    touch ‘~liu’
    
    touch  ./ma

    rm  删除文件

    -i 交互式
    
    -f 强制删除
    
    -r 递归

    以下三种方法可以删除以“-”开头的文件

    rm  -rf -- -a 
    
    rm –rf ./ -- -a
    
    rm –rf /data/-a

     

    cp 复制

    -i:覆盖前提示 –n:不覆盖
    
    -r, -R: 递归复制目录及内部的所有内容
    
    -a: 归档,相当于-dR --preserv=all,保留文件的所有属性
    
    -v:显示复制的过程

    cp /data/f1  /boot/f2  将data目录下的f1文件复制到boot目录下,起名叫f2

    cp /etc/fstab    /etc/fstab. bak  单个文件复制fstab文件起名叫fstab.bak

     

    cp /etc/fstab  /etc/profile   .   多个文件复制,目标文件必须是目录

     

    复制目录时需要加一个-r

    如果复制的目录,复制到目标目录时,目录不存在,将创建的以复制的文件名为目录

    cp /boot/grub  /data/grub  -r

    如果复制到的目标路径存在同名文件,就会提示错误,无法复制

     

    如果有同名目录时,复制的目录就会成为目标文件夹的子目录

     

    mv 移动

    常用选项:

    -i: 交互式
    
    -f: 强制
    
    -b: 目标存在,覆盖前先备份

    mv /data/fstab  /boot/    将data 下的文件移动到 boot下

    mkdir 

    mkdir 创建目录

    -p: 存在于不报错,且可自动创建所需的各目录
    
    -v: 显示详细信息
    
    -m MODE: 创建目录时直接指定权限

    mkdir  -p  dir1/dir2  当dir1为空文件时就可以创建dir2,需要加上-p

    ln:  硬链接

    ln  f1  f11  给f1创建一个硬链接起名叫f11,文件属性和大小、时间都相同

    ln  -s:  软链接

    ln -s ../../../data/f2  /d1/d2/d3/f2-link  给f2创建一个软连接为f2-link

    f2所在的目录是 d3,其中f2第一个..对应的是d2,第二个..是d1,第三个..对应的是/

    软链接与硬链接区别:

    1、硬链接是同一个文件多个名字,软链接不是同一个文件
    
    2、硬链接不能跨分区、设备,软链接可以
    
    3、硬链接的连接数增长,软链接不增长
    
    4、节点编号:硬链接的节点编号相同,软链接不一样
    
    5、原始文件删掉,硬链接的文件可以访问,软链接的原始文件删掉,访问失效
    
    6、软连接的指向文件大小是路径的大小,硬链接的大小就是文件的大小
    
    7、硬链接不支持目录、软链接支持目录
    
    8、相对路径写法不一样,硬链接不能用相对路径,写相对路径就会找不到文件路径,而软链接可以使用相对路径

    使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z

    mkdir -p /tmp/{a1/{a,b},a2}

    输出结果:

    mkdir -p /tmp/{x,q}/{y,z} 

    输出结果:

    文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

    (1)   文件的元数据有inode号(索引节点号)、文件类型(普通文件、链接文件、目录文件、块设备文件、管道文件等)、ugo权限(user、group、other的rwx权限)、链接数(链接到这个文件的文件个数)、文件所属者(创建者)和所属组(创建者所属组)、时间戳(默认显示mtime)等信息。

    (2)   stat命令可以查看时间:

    三个时间戳:

    access time:访问时间,atime,读取文件内容
    
    modify time: 修改时间, mtime,改变文件内容(数据)
    
    change time: 改变时间, ctime,元数据发生改变

    touch [OPTION]... FILE...

    -a 仅改变 atime和ctime
    
    -m 仅改变 mtime和ctime
    
    -t [[CC]YY]MMDDhhmm[.ss]
    
    指定atime和mtime的时间戳
    
    touch –a file,可修改当前文件的访问时间
    
    touch  -m file,可修改当前文件的时间

    如:touch  f2 新建一个文件

    stat  f2  查看当前文件夹被访问时间 修改时间

     

    touch  -a  f2  修改访问时间

     

    touch  -m  f2  修改当前文件修改时间

     

    在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

    第一种方法: touch  /tmp/tfile-`date +%F-%T | tr “:” “-”`

    第二种方法: touch /tmp/tfile-`date "+%Y-%m-%d-%H-%M-%S"`

     

    复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

    mkdir  /tmp/mytest1  新建一个mytest1目录

    cp  -r  /etc/p*[^0-9]   /tmp/mytest1  然后复制到mytest1目录下

     

    创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack

    groupadd  tom
    
    groupadd  jack
    
    useradd  -u 5001 –d /tmp/tom –s /bin/zsh  -g  tom –G jack tom

    下面是显示指定的家目录和shell目录结果:getent passwd

     

    常用的用户以及文件管理命令有哪些,并演示命令以及用法。

    用户管理命令

    useradd -u指定uid

    -g指定主组
    
    -G指定附加组
    
    -c注释
    
    -d指定家目录(不用默认家目录)
    
    -s指定shell

    演示:

    groupadd  xiao

    groupadd  ma

    groupadd  liu

    groupadd  li

    useradd  -g li -G xiao,ma,liu sun    新建一个sun用户,li作为主组,xiao,ma,liu作为附加组。 

     

    usermod -u指定新的uid

    -g指定新的主组
    
    -G指定新的附加组(加-a保留原有附加组)
    
    -s指定新的shell
    
    -e YYYY-MM-DD:指定用户账号过期日期

    演示:

    useramod   -G wang liu  将liu加入到wang的附加组

    userdel -r删除家目录

    -f  强制删除用户,即使是正在登陆的用户
    
    id -u显示uid
    
    -g显示gid
    
    -G显示附加组id
    
    su username非登陆切换,不读取目标用户的配置文件
    
    su - username登陆式切换,会读取目标用户的配置文件

    passwd [OPTIONS] UserName: 修改指定用户的密码

    常用选项:

    -d:删除指定用户密码
    
    -l:锁定指定用户
    
    -u:解锁指定用户
    
    -e:强制用户下次登录修改密码
    
    -f:强制操作
    
    -n mindays:指定最短使用期限
    
    -x maxdays:最大使用期限
    
    -w warndays:提前多少天开始警告
    
    -i inactivedays:非活动期限
    
    --stdin:从标准输入接收用户密码
    
    echo "PASSWORD" | passwd --stdin USERNAME

    创建组

    groupadd [OPTION]... group_name

    -g GID: 指明GID号;
    
    -r: 创建系统组

    CentOS 6: ID<500

    CentOS 7: ID<1000

    修改和删除组

    组属性修改:groupmod

    groupmod [OPTION]... group
    
    -n group_name: 新名字
    
    -g GID: 新的GID

    组删除:groupdel

    groupdel GROUP

    更改组密码

    组密码:gpasswd

    gpasswd [OPTION] GROUP

    -a user 将user添加至指定组中
    
    -d user 从指定组中移除用户user
    
    -A user1,user2,... 设置有管理权限的用户列表

    newgrp命令:临时切换主组

    如果用户本不属于此组,则需要组密码

    更改和查看组成员

    演示:

    gpasswd  -a  wang  li   将li 作为wang的附加组

    groupmems [options] [action]

    options:

    -g, --group groupname 更改为指定组 (只有root)
    
    Actions:
    
    -a, --add username 指定用户加入组
    
    -d, --delete username 从组中删除用户
    
    -p, --purge 从组中清除所有成员
    
    -l, --list 显示组成员列表
    
    groups [OPTION].[USERNAME]... 查看用户所属组列表

    演示:

    groupmems  -a  liu -g  ma指定将ma 做为liu的附加组 

     

  • 相关阅读:
    Python随心记---数据类型
    Pycharm报错解决:error:please select a valid Python interpreter 及一些基本设置
    Python随心记--用户登录锁定
    Python随心记-continue 和 break的区别
    Python随心记
    PHP随笔-判断访问者的设备
    JFinal架构简介
    com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect。ecplise连接sqlserver失败,解决方案。亲测有效!!!
    什么是maven,jar包的查找过程?
    SVN:项目管理工具
  • 原文地址:https://www.cnblogs.com/struggle-1216/p/11657729.html
Copyright © 2011-2022 走看看