linux 常用命令

作者: WarpTens | 来源:发表于2016-06-18 12:29 被阅读305次

    文件管理

    列出文件

    ls  dirName
    
    -a 隐藏文件
    -l 完整信息
    

    显示文件内容

    cat fileName
    -b 显示行号
    

    统计单词数目

    wc fileName1 [fileName2] .....
    

    显示:
    84 151 665 gc.sh
    分别表示

    1. 文件总行数
    2. 单词数目
    3. 文件字节数,即文件大小
    4. 文件名

    复制文件 from 为 to

    cp from to
    

    移动文件 old 为 new (可以用来重命名)

    mv old new
    

    删除文件

    rm fileName1 [fileName2] ....
    
    -rf 删除目录
    

    查看文件差别

    diff file1 file2
    

    硬链接,删除一个仍然找得到

    ln fileName linkName
    

    符号链接,删除源,另一个找不到

    ln -s fileName linkName3
    

    目录

    进入主目录

    cd ~
    
    . # 当前目录
    .. # 上层目录
    
    

    创建目录

    mkdir dirName
    -p 创建父目录
    

    删除空目录

    rmdir dirName1 [dirName1] ...
    

    显示当前路径

    pwd
    

    文件权限

    文件访问模式

    读取 (r): 能读取文件信息,查看文件内容
    写入 (w): 可编辑文件,也可以删除文件内容
    执行 (x): 可将文件作为程序来运行

    目录访问模式

    读取 (r): 用户可查看目录中的文件
    写入 (w): 可在当前目录删除文件或者创建文件
    执行 (x): 遍历目录的权利。如 ls cd

    查看权限

    ls -l
    
        -rwxr-xr--  1 amrood   users 1024  Nov 2 00:10  myfile
    

    第一列:
    第一组字符(2-4) 文件所有者权限
    第二组字符(5-7) 文件所属用户组权限
    第三组字符(8-10) 其他用户权限

    改变权限

    符号 说明
    + 为文件或者目录增加权限
    - 删除文件或者目录的权限
    = 设置指定的权限
    a 所有用户
    o 其它用户
    g 用户组
    u 所属用户

    如:

    chmod a+x 1.c
    chmod o+wx,u-x,g=rx 1.c
    

    没有指定用户,默认为给所有用户

    数字表示权限

    数字 说明 权限
    0 没有任何权限 ---
    1 执行权限 --x
    2 写入权限 -w-
    3 执行权限和写入权限:1 (执行) + 2 (写入) = 3 -wx
    4 读取权限 r--
    5 读取和执行权限:4 (读取) + 1 (执行) = 5 r-x
    6 读取和写入权限:4 (读取) + 2 (写入) = 6 rw-
    7 所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 rwx

    如:

    chmod 1 1.c
    ls -l 1.c
    
        ---------x  1 yzr  staff  76  5 19 09:39 1.c
    
    chmod 777 1.c
    ls -l 1.c
    
        -rwxrwxrwx  1 yzr  staff  76  5 19 09:39 1.c
    

    更改所有者和用户组

    chown user fileList
    

    user 可以为用户名,或者用户id

    chgrp group fileList
    

    group 可以为群组名,或者id

    suid 和 sgid

    chmod u+s 1.c
    

    设置了 suid 位 的文件 ,执行位 x 变为 s
    linux 通过给程序设置 suid 位赋予普通用户特殊权限,如果运行一个有suid的权限的程序,那么会继承该程序所有者的权限.

    环境变量

    全局的配置

    /etc/profile
    

    设置 PATH 变量
    在终端输入一条命令的时候,shell会根据 PATH 变量查找该命令对应的程序, PATH 变量指明了该程序所在的路径

    PATH=/bin:/user/bin
    

    多条路径间用冒号 ':' 分隔

    显示变量

    echo $PATH
    

    PS1 和 PS2 变量

    PS1 命令提示符
    PS2 第二命令提示符

    常用环境变量

    变量 描述
    DISPLAY 用来设置将图形显示到何处。
    HOME 当前用户的主目录。
    IFS 内部域分隔符。
    LANG LANG可以让系统支持多语言。例如,将LANG设为pt_BR,则可以支持(巴西)葡萄牙语。
    PATH 指定Shell命令的路径。
    PWD 当前所在目录,即 cd 到的目录。
    RANDOM 生成一个介于 0 和 32767 之间的随机数。
    TERM 设置终端类型。
    TZ 时区。可以是AST(大西洋标准时间)或GMT(格林尼治标准时间)等。
    UID 以数字形式表示的当前用户ID,shell启动时会被初始化。

    管道和过滤器

    一个命令的输出作为另一个命令的输入,就是管道
    管道是linux 进程之间一种重要的通信机制,除了管道还有 共享内存,消息队列,信号,套接字等
    能够接受数据,过滤后再输出的工具称为 过滤器

    grep 命令

    grep pattern fileName
    
    -v 输出不匹配行
    -n 输出匹配行以及行号
    -l 输出匹配行所在文件名
    -c 输出匹配的总行数
    -i 不区分大小写匹配
    -r 递归查找
    

    如果没有为 grep 指定检索的文件,从标准输入读取

    sort 命令

    对文件各行排序

    sort fileName
    
    -n 按照数字大小排序,忽略空格或者tab
    -r 降序排序.默认为升序
    -f 不区分大小写
    +x 对第x列(0为起点)开始排序
    

    下面的例子通过管道将 ls、grep 和 sort 命令连起来使用,过滤包含“Aug”的行,并按照文件大小排序:

    ls -l | grep "Aug" | sort +4n
    

    pg 和 more 命令

    more 1.c
    cat 1.c | more
    

    分页显示, space 下一页, b 上一页

    tr 转换

    制表符转空格
    cat text | tr '\t' ' '
    压缩字符
    cat text | tr ' '

    cut 按列切分文本

    截取文件的第2列和第4列

    cut -f2,4 filename
    

    去文件除第3列的所有列

    cut -f3 --complement filename
    

    -d 指定定界符

    cat -f2 -d";" filename
    

    sed 文本转换

    find 命令

    
    find  pathname  -options  [ -print -exec -ok ...]
    
        pathname         #是find命令所查找的目录路径,例如.表示当前目录,/表示根目录
        -print           #表示find命令将匹配的文件输出到标准输出中
        -exec            #表示find命令对匹配的文件执行该参数给出的shell命令。相应命令的形式为 ‘cmd’ {} \;
        -ok              #它的作用和-exec一样,只是需要用户交互,更安全
    
    

    find 命令选项

    选项 解释
    -name 按照文件名查找文件
    -perm 按照权限查找文件
    -prune 使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略
    -user 按照文件属主来查找文件
    -group 按照文件数组来查找文件
    -mtime -n +n 按照文件的更改时间来查找文件
    -type 文件类型
    -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
    -fstype 表示查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息
    -mount 表示在查找文件时不跨越文件系统的mount点
    -follow 表示如果find命令遇到符号链接文件,就跟踪至链接所指向的文件
    -cpio 表示对匹配的文件使用cpio命令,将这些文件备份至磁带设备中

    type :
    b:表示块设备文件 block
    d:表示目录 directory
    c:表示字符设备文件 char
    p:表示管道文件 pipe
    l:表示符号链接文件 link
    f:表示普通文件 file

    ntime :
    -n 表示从此刻算起,文件的更改是在n天以内
    +n 表示文件的更改时间是在n天以前

    用例:

    # 查找当前用户主目录下的所有文件
    find ~
    
    # 在logs目录下查找更改时间在5日以前的文件并删除它们
    find /logs -mtime +5 -exec rm {} \;
    
    # 在当前目录中查找以.log结尾、更改时间在5日以上的文件,并删除,但在删除前给出提示
    find . -name “*.log” -mtime +5 -ok rm {} \;
    
    # 查找当前目录下644权限的文件
    find . -perm 644
    
    # 查找当前目录下大于5M的文件
    find . -size +5M
    
    

    进程管理

    创建后台进程 :
    在命令后面加 &

    ps 命令

    查看正在运行的进程

    ps
    -f 查看所有信息
    -x 显示无终端的进程
    -a 显示所有用户的所有进程
    -u 显示更多信息
    -e 显示所有进程
    
    描述
    UID 进程所属用户的ID,即哪个用户创建了该进程。
    PID 进程ID。
    PPID 父进程ID,创建该进程的进程称为父进程。
    C CPU使用率。
    STIME 进程被创建的时间。
    TTY 与进程有关的终端类型。
    TIME 进程所使用的CPU时间。
    CMD 创建该进程的命令。

    终止进程

    若程序运行在前台可用 kill 命令 或者 ctrl+c 终止

    如果在后台,先通过 ps 获取进程id,然后 kill 杀死进程

    kill pid
    -9 强制杀死进程
    
    • 父进程和子进程:
    • 僵尸进程:父进程在子进程之前被终止,子进程就成为了僵尸进程。 init 进程会成为所有孤儿进程的父进程
    • 常驻进程:一般式系统进程,以root权限运行在后台,可以处理其它进程请求

    任务和进程

    动态显示正在运行的进程

    top
    

    查看系统中正在运行的任务

    jobs
    

    后台任务调到前台

    fg %jobNumber
    

    前台任务掉到后台

    bg %jobNumber
    

    如果希望将当前任务转移到后台,可以先 Ctrl+z 暂停任务,再使用 bg 命令。任务转移到后台可以空出终端,继续输入其他命令

    网络通信工具

    ping 命令

    ping 命令会向网络上的主机发送应答请求,根据响应信息可以判断远程主机是否可用。

    ping hostName or ip-address
    

    如果主机没有响应,可以看到类似下面的信息:

    ping: unknown host giiiiigle.com
    

    ftp 工具

    ftp 是 File Transfer Protocol 的缩写,称为文件传输协议。通过 ftp 工具,能够将文件上传到远程服务器,也可以从远程服务器下载文件

    netstat 命令

    netstat

    常见参数

    a (all)显示所有选项,默认不显示LISTEN相关
    -t (tcp)仅显示tcp相关选项
    -u (udp)仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化成数字。
    -l 仅列出有在 Listen (监听) 的服務状态

    -p 显示建立相关链接的程序名
    -r 显示路由信息,路由表
    -e 显示扩展信息,例如uid等
    -s 按各个协议进行统计
    -c 每隔一个固定时间,执行该netstat命令。

    文件系统

    常见目录

    目录 说明
    / 根目录,只能包含目录,不能包含具体文件。
    /bin 存放可执行文件。很多命令就对应/bin目录下的某个程序,例如 ls、cp、mkdir。/bin目录对所有用户有效。
    /dev 硬件驱动程序。例如声卡、磁盘驱动等,还有如 /dev/null、/dev/console、/dev/zero、/dev/full 等文件。
    /etc 主要包含系统配置文件和用户、用户组配置文件。
    /lib 主要包含共享库文件,类似于Windows下的DLL;有时也会包含内核相关文件。
    /boot 系统启动文件,例如Linux内核、引导程序等。
    /home 用户工作目录(主目录),每个用户都会分配一个目录。
    /mnt 临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,例如挂载CD-ROM的cdrom目录。
    /proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。
    /tmp 临时文件目录,系统重启后不会被保存。
    /usr /user目下的文件比较混杂,包含了管理命令、共享文件、库文件等,可以被很多用户使用。
    /var 主要包含一些可变长度的文件,会经常对数据进行读写,例如日志文件和打印队列里的文件。
    /sbin 和 /bin 类似,主要包含可执行文件,不过一般是系统管理所需要的,不是所有用户都需要。

    df 命令

    查看磁盘空间使用情况(以千字节为单位

    df -k
    
    Filesystem      1K-blocks      Used   Available Use% Mounted on
    

    每一列的含义如下:

    说明
    Filesystem 代表文件系统对应的设备文件的路径名(一般是硬盘上的分区)。
    kbytes 分区包含的数据块(1024字节)的数目。
    used 已用空间。
    avail 可用空间。
    capacity 已用空间的百分比。
    Mounted on 文件系统挂载点。

    某些目录(例如 /devices)的 kbytes、used、avail 列为0,use列为0%,这些都是特殊(或虚拟)文件系统,即使位于根目录下,也不占用硬盘空间

    du 命令

    查看特定目录的空间使用情况

    du dirName
    -h 显示的更清晰
    

    挂载文件系统

    挂载是指将一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。 若要访问设备中的文件,必须将文件挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备

    查看当前系统所挂载的硬件设备

    mount
    

    一般约定,/mnt 为临时挂载目录,例如挂载CD-ROM、远程网络设备、软盘等。

    用户管理

    用户组

    groupadd gorupName
    

    修改用户组名

    groupmod -n newName oldName
    

    修改用户组id

    groupmod -g 545 gorupName
    

    删除

    groupdel gorupName
    

    用户

        useradd -d homedir -g groupname -m -s shell -u userid accountname
    

    含义
    -d homedir 指定用户主目录。
    -g groupname 指定用户组。
    -m 如果主目录不存在,就创建。
    -s shell 为用户指定默认Shell。
    -u userid 指定用户ID。
    accountname 用户名。

    修改密码
    passwd userName

    修改用户

        usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20
    

    删除用户

        userdel -r mcmohd20
    

    userdel 命令仅有一个选项 -r,用来删除用户主目录和本地邮件。
    为了便于恢复被误删的用户,可以忽略 -r 选项,保留用户主目录,之后确认无误可以随时删除主目录。

    相关文章

      网友评论

        本文标题:linux 常用命令

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