linux命令认识(含例子操作)-2017-2.16

Linux基本命令

    Linux是严格区分大小写

    命令的分类:

        内部命令                    Shell在内部代码中实现的命令

            man type                查看bash Shell自带的命令

        外部命令                    Shell以外的命令

        用type命令查看内部命令还是外部命令

            type cd                 提示cd is a shell builtin则说明是内部命令

            type mount              提示mount is /bin/bash 告诉外部命令的位置

    -------------------------------------------------------------

    帮助命令

        man                         注重于应用,也是最常用的帮助方法

            man 的帮助文档存放的位置

                /usr/share/man

            man 的帮助文档分类

                1                   普通用户命令
                2                   系统核心调用的函数工具
                3                   常用的一些函数与函数库
                4                   设备文件的说明
                5                   配置文件与一些其它格式的文件
                6                   游戏相关
                7                   网络协议相关
                8                   管理员可操作的命令
                9                   系统内核相关的文件

            在 man 帮助里:

                /c                  搜索c关键字
                n                   下一个关键字
                N                   上一个关键字
                q                   退出


        info                        注重于介绍,不常用

            帮助文档存放位置

                /usr/share/info

            进入帮助界面

                ?                   info命令帮助
                空格键              向下翻一页
                tab                 在结点之间移动,有结点的地方通常会以*显示,将光标移动结点位置按回车可进入结点
                b                   移动光标到该文章的第一个结点处
                e                   移动光标到该文章的最后一个结点处
                n                   前往下一个info页
                p                   前往上一个info页
                u                   向上移动一层
                s(/)                在info里搜索
                h                   显示帮助菜单
                q                   退出

    -------------------------------------------------------------

    目录命令

        pwd                         查看当前所在目录的路径

        cd                          切换当前所在目录

            绝对路径

                cd /root/Desktop    指从根目录开始的路径

            相对路径

                cd root/            指以当前目录开始的路径

            .                       代表当前所在目录

            ..                      代表当前的父目录

            -                       代表上一次所在的目录

            ~                       代表当前登录用户的家目录


        mkdir                       创建一个目录

            mkdir test              在当前目录下创建test目录
            mkdir /tmp/test         在根目录下tmp目录里创建test目录
            mkdir file{1..100}      在当前目录下创建file1到file100的目录,这里会创建100个目录
            mkdir "file{1..100}"    在当前目录下创建file{1..100}目录,这里只创建一个目录
            mkdir -p a/b/c          在当前目录下创建a/b/c目录树


        rmdir                       只能删除空目录

            rmdir test              删除当前目录的test目录,test必须是空目录
            rmdir /tmp/test         删除/tmp下的test目录
            rmdir file{1..100}      删除file1到file100的目录
            rmdir "file{1..100}"    删除file{1..100}目录


    -------------------------------------------------------------

    文件命令

        ls                          列出当前文件夹下的所有文件

            ls -a                   列出当前目录下所有文件,包含隐藏文件

            ls -l                   以详细列表形式列出当前目录下的所有文件

            ls -R                   列出当前目录所有文件,包含子目录内所有文件
            drwxr-xr-x  1   root    root    2062 2011-01-04 file1

            文件类型和文件权限 文件的硬链接数 文件所属用户  文件所属用户组  文件大小  文件的最后修改日期  文件名

            文件类型:

                c                   字符设备
                b                   块设备
                l                   符号链接
                s                   socket文件
                p                   管道文件
                d                   文件夹
                -                   普通文件

            常用搭配:

                ls -al              显示所有文件包括隐藏文件列表
                ls -lt              显示按日期时间排序后的文件列表
                ls -lh              显示计算大小为KB为单位的文件列表
                ls -dl              显示文件夹详细列表


        touch                       新建文件

            touch file              创建file空文件,如果file存在则更新file的存取和修改时间
            touch -c file           如果file不存在,则不创建文件
            touch -r file1 file     更新file时间和file1相同
            touch -a file           更新file的存取时间
            touch -m file           更新file的修改时间
            touch file{2,3,4}       同时创建file2,file3,file4三个空文件
            touch "file{2,3,4}"     创建file{2,3,4}一个空文件


        cp                          复制文件

            cp file dirs/           把file文件复制到dirs目录下
            cp -r dir1/ dir2/       把dir1目录复制到dir2目录下
            cp -a file dirs/        把file文件复制到dirs目录下,保留文件的原来属性
            cp  -rf dir1/ dir2/     强制复制文件夹,不提示
            cp -rvf dir1/ dir2/     把dir1目录复制到dir2目录下,并且显示复制过程


        mv                          移动和重命名文件

            mv file dirs/           把file文件移动到dirs目录下
            mv file file2           把file文件重命名为file2
            mv -u dir1/* dir2/      把dir1目录下所有文件移动到dir2目录下,并且根据文件时间来决定要不要移动


        rename                      批量文件重命名

            rename .conf .html *.conf  把所有后缀以.conf的文件名里出现.conf就改成.html


        rm                          删除文件

            rm file*                删除所有file打头的文件
            rm -i file*             提示是否确定删除
            rm -f file*             不提示,强行删除
            rm -r dir2              删除目录

    -------------------------------------------------------------

    文件阅读命令

        cat                         文件查看命令

            cat /etc/passwd         查看/etc/passwd内容

            cat -n /etc/passwd      查看/etc/passwd内容并且编号

            cat -b /etc/passwd      查看/etc/passwd内容并且给非空行编号

        more

            more /etc/passwd        逐屏查看/etc/passwd文件内容

        less

            less /etc/passwd        查看/etc/passwd文件内容,和more不同的是可以上下滚动

        head

            head /etc/passwd        查看/etc/passwd前10行内容

            head -n 30 /etc/passwd  查看/etc/passwd前30行内容

        tail

            tail /etc/passwd        查看/etc/passwd后10行内容

            tail -n 30 /etc/passwd  查看/etc/passwd后30行内容

            tail -f /etc/passwd     实时查看/etc/passwd文件内容


    重定向

        标准输入    代码 0      默认设备为键盘
        标准输出    代码 1      默认设备为屏幕
        错误输入    代码 2      默认设备为屏幕

        ls  /etc/passwd > output.txt    标准正确输出重定向到output.txt
        ls  /etc/shadow >> output.txt   标准正确输出追加重定向到output.txt
        ls  dddddd 2> error.txt         标准错误输出重定向到error.txt
        ls  dddddd 2> /dev/null         标准错误输出重定向到黑洞
        ls ddddd /etc/passwd &> /dev/null   标准正确输出标准错误输出全都重定向到黑洞

    管道

        cat /etc/passwd | less          |之前的命令执行的结果做|后命令的参数

==========================================

用户管理
    用户分类

        管理员                      user id一定为0,务必唯一
        系统用户                    伪用户,user id 1-499,默认是不允许登录系统,用于给予某些服务运行时候所用的身份
        普通用户                    user id 500-60000, 通过手工或都命令建立起来的用户,默认可以进行登录系统

    用户管理

        用户相关配置文件

            /etc/passwd
            /etc/shadow

            vim /etc/passwd

                第一列:用户名
                第二列:密码    x代表密码存放在/etc/shadow里,如果去掉x就代表此用户没有密码
                第三列:uid 用户ID值操作系统是不认识用户名,只认uid
                第三列:gid,用户组的ID
                第五列:描述项
                第六列:指定家目录
                第七列:指定bash

            vim /etc/shadow

                第一列:用户名
                第二列:真实的密码,经过加密的,以*或都!号开头的不能登录
                第三列:上一次修改密码的时间,linux以1970年1月1日到现在的天数来算的
                第四列:修改密码后几天内不允许再修改, 0代表不限制
                第五列:多少天内必须修改密码,99999代表不限制
                第六列:过期前几天给你一个警告信息
                第七列:密码过期后的一个宽限时间
                第八列:这里可以写一个实际的账号过期天数,也是以1970年1月1日到现在来算的,多用于收费系统
                第九列:保留,留着以后功能扩展

        用户命令相关配置文件,保存useradd命令创建用户使用的默认值

            /etc/default/useradd
            /etc/login.defs


        用户相关命令

            useradd/adduser
            userdel/deluser
            usermod
            passwd

            useradd a                   创建一a用户
            useradd -g kyo a            新建a用户并且把a用户添加进kyo用户组
            userdel a                   删除a用户
            userdel -r a                删除a用户并且删除a的家目录和邮件目录
            passwd a                    修改a用户密码
            passwd -l a                 临时关闭用户,或修改/etc/shadow第二个字段加*
            passwd -u a                 释放临时关闭用户
            usermod                     修改用户信息
                -u                      修改UID
                -g                      修改GID
                -d                      指它家目录
                -s                      指用bash
            usermod -G kyo a            把a用户添加进kyo用户组


        用户信息相关的命令
            chfn                        修改一个用户相关的信息
            finger                      查看一个用户相关的信息


    组管理

        相关配置文件

            /etc/group
            /etc/gshadow

            vim /etc/group
                第一列:组名
                第二列:密码,x代表密码在/etc/gshadow
                第三列:gid
                第四列:代表属于这个组的用户名

            vim /etc/gshadow
                第一列:组名
                第二列:密码
                第三列:组管理员
                第四列:组成员

        相关命令

            groupadd                添加一新用户组
            groupdel                删除一用户组
            groupmod                修改用户组信息
            gpasswd                 修改用户组密码
            gpasswd -a a root       把a用户放进root用户组
            gpasswd -A a root       把a用户放进root用户组并当管理员
            gpasswd -d a root       把a用户从root用户组里删除
            newgrp root             把当前用户临时添加进root用户组,重新登录失效
            id                      显示用户的ID和组ID

    用户身份切换

        su - a                      完全切换,不继承上一个用户的环境变量,即sbin目录下的命令用不了
        su   a                      不完全切换,继承上一个用户的环境变量,可以用sbin目录下的命令


    手工创建用户

        第一步:在/etc/passwd添加一行信息
            bean:x:534:603::/home/bean:/bin/bash
        第二步:在/etc/shadow添加一行信息
            grub-md5-crypt 创建md5密码,把密码替换下面两个!!位置
            bean:!!:15035:0:99999:7:3::
        第三步:在/etc/group添加组的信息
            bean:x:603:
        第四步:在/etc/gshadow添加组的密码信息
            bean:!::
        第五步:创建家目录
            mkdir /home/bean
        第六步:把用户的环境变量文件复制到家目录
            cp /etc/skel/.bash* /home/bean
            chown bean:bean /home/bean/ -R
            chmod 700 /home/bean/ -R
        第七步:创建用户的邮件文件
            touch /var/mail/bean
            chown bean:bean /var/mail/bean
            chmod 660 /var/mail/bean

================================================================================
Linux权限
    ls -l

        -   rw-             r--           r--     1 root root 4383 2011-03-01 01:37 readme.txt
            所属用户权限u 所属用户组权限g 其它人权限o

        r                           read 读权限
            针对文件夹,具有r权限,就代表具有对这个文件夹进行列表的权限
            针对文件,具有r权限,就代表具有读取这个文件的内容的权限

        w                           write 写权限
            针对文件夹,具有w权限,代表具有他能在此文件夹里创建修改等操作
            针对文件,具有w权限,代表具有修改此文件内容的权限

        x                           execute 执行权限
            针对文件夹,具有x权限,代表可以切换到此文件夹
            针对文件,具有x权限,代表可以运行它,文件必须是可执行或脚本等


    二进制转八进制:

        000     0       ---
        001     1       --x
        010     2       -w-
        011     3       -wx
        100     4       r--
        101     5       r-x
        110     6       rw-
        111     7       rwx

        rwx, r-x, r-x
        7    5      5

    -------------------------------------------------------------

    chmod                           修改权限的命令

        chmod u+x,g+r,o-r file      修改file文件用户权限加上可执行权限,用户组也加上读权限,其它用户减去读权限
        chmod u=rwx,g=rw,o=r file   修改file文件用户权限为可读可写可执行,用户组为可读可写权限,其它用户为读权限
        chmod 755 file              修改file文件用户权限为可读可写可执行权限,用户组为可读可执行权限,其它用户也为可读可执行权限
        chmod 755 dirs -R           修改dirs目录里所有文件的用户权限为可读可写可执行权限,用户组为可读写执行权限,其它用户也为可读可执行权限

    -------------------------------------------------------------

    chown                           修改文件用户所属

        chown tom file              修改file文件所属用户为tom
        chown tom:jack file         修改file文件的所属用户为tom,所属用户组为jack
        chmod jack.root dirs -R     修改dirs目录里所有文件所属用户为jack,所属用户组为root


    -------------------------------------------------------------

    umask                           默认创建文件或文件夹权限掩码

        管理员默认umask为022
        普通用户默认umask为002

        默认创建文件夹权限是777,而掩码设置为022,则要减去掩码,默认创建文件夹权限则变成755
        默认创建文件权限是666,而掩码设置为022,则减去掩码,默认创建文件权限为644


    -------------------------------------------------------------

    特权位                          针对命令文件,设定setuid、setgid

        针对命令文件设定setuid、setgid

            没加特权位之前,命令运行的时候所采用的身份是运行者的身份
            添加了特权位之后,命令运行的时候采用的身份不再是运行者的身份,而是命令本身的所属者
            例:passwd touch

        针对目录设定setgid

            设定了组的特权位后,在该文件夹下创建子文件或子目录,它们自动继承文件夹的所属组的身份,子目录会继承目录的特权位


        chmod u+s/g+s  file         给file设置特权位
        chmod u-s/g-s  file         给file取消特权位


    -------------------------------------------------------------

    粘贴位                          防止其它用户删除文件,针对其它用户,管理员和本人可以删除,针对目录有效,文件没有用

        chmod o+t dirs              给dirs目录设置粘贴位


    -------------------------------------------------------------

    文件特殊属性

        lsattr                      查看文件特殊属性

        chattr                      添加或修改文件特殊属性

            chattr +i file          添加i属性,管理员也不得更改
            chattr +a file          只能追加内容,不得修改内容,如果有i属性,先取消才能加a属性
            chattr -i/-a file       取消文件特殊属性


-------------------------------------------------------------------------------
系统基本命令
    file                                查看文件类型

    uname                               查看系统基本信息

        -r                              内核版本
        -s                              什么内核
        -o                              什么操作系统
        -n                              什么发行版
        -m                              什么平台
        -a                              查看所有信息

    cal                                 打印日历
        cal 2005                        打印2005年日历

    bc                                  支持超大数的文本计算器
        quit                            退出

    date                                时间日期命令

        +%Y                             年
        +%m                             月
        +%d                             日
        +%H                             小时
        +%M                             分
        +%S                             秒
        ......

    echo                                打印字符串

        -n                              不换行
        -e                              支持\t\n等

    shutdown -r                         重启
    suutdown -c                         取消计划中的关机或重启
    shutdown -p                         直接关闭电源
    shutdown -h                         关机
    shutdown -h 30 "30秒后就要关机"     计划关机并给所有终端提示

    init                                改变系统运行级别

        0                               关机
        1                               单用户模式,没有用户和密码验证
        2                               不带网络的文本模式
        3                               带网络的文本模式
        4                               保留
        5                               带图形界面的模式
        6                               重启电脑

    runlevel                            查看当前运行级别

    sync                                同步磁盘

    cat /etc/issue                      查看linux系统发行版本信息

    w                                   更详细的显示在线情况

        21:55:44 up  1:49,  5 users,  load average: 0.38, 0.35, 0.23
        USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
        root     tty7     :0               20:06    1:49m  1:52   0.12s gnome-session
        root     pts/2    :0.0             20:24   33.00s  0.10s  0.10s bash
        root     pts/3    :0.0             21:37   11:18   0.02s  0.02s bash

        用户名  登录终端    从哪里登录过来  登录时间

        踢掉一个远程登录过来的用户

            ps -aux | grep pts/5        pts/5是远程登录的终端,查看终端对应的PID

            kill -9 3236                3236是上面查到的pts/5的PID


命令类别:
    内部命令    集成于SHELL程序的命令
    外部命令    独立可执行文件的命令
        区别方法:
            which 命令
                如果有路径代表外部命令,找不到则代表内部命令

            type 命令
                如果结果显示is a shell builtin代表是内部命令,否则为外部命令

帮助命令:
    man 外部命令
        获取外部命令的帮助信息
        q  退出  h 获取man手册帮助信息
        man手册分1 ~ 8的章节
            1    基本命令帮助信息
            2    系统调用函数帮助信息
            3    标准库函数帮助信息
            5    配置文件帮助信息
            8    系统管理员命令帮助信息

    help 内部命令
        获取内部命令的帮助信息

文件操作命令: rm mv cp touch vim gedit
目录相关命令: cd pwd mkdir rm ls
文件阅读命令: head tail cat more less
    head         查看指定文件头部行数内容
        head -n 5 file
            列出文件前5行内容
    tail         查看指定文件尾部行数内容
    cat            查看文件所有内容
    more        一行一行查看文件内容
            q    结束查看
            enter    查看下一行
    less        可控性更强的查看文件命令

bash SHELL提供:
        重定向
                0 标准输入
                1 标准输出
                2 错误输出
            输出重定向: > 1> 2> >> 1>> 2>>
            输入重定向: < <<

        管道    |
            把|前面的命令的输出给后面命令进行解析

----------------------------------------------------
用户管理 (用户为了权限存在)
    超级管理员 root  0
    系统用户   1 - 499 / 999 用于系统服务的用户
    普通用户   500 / 1000 以上

    用户相关配置(超级管理员才可以修改):
        /etc/passwd    用户信息
        /etc/shadow    用户密码信息
        /etc/group    用户组信息
        /etc/gshadow    用户组密码信息

    用户相关命令:
        id     获取当前登录用户信息
        su    切换用户
        useradd/adduser 添加用户
        userdel 删除用户
            默认不删除用户家目录,-r会删除家目录
            userdel -r 用户名
        passwd     修改用户密码

权限:
    查看文件详细信息
        ls -l    文件
        -rw-rw-r--. 1 kyo kyo 4633 2月  16 11:18 env.txt
        -rw-rw-r--            文件类型及权限
         1                    硬链接数
        kyo                    属用户
        kyo                    所属用户组
        4633                文件大小(字节)
        2月  16 11:18        最后修改时间
        env.txt                文件名

        -rw-rw-r--            文件类型及权限
        第一个字符代表文件类型
            -        普通文件
            d        目录
            l        软链接
            p        管道文件
            s        套接字文件
            c        字符设备文件
            b        块设备文件

        后九个字符代表权限(三个字符为一段)
            rw-        (u)所属用户对此文件的操作权限
            rw-        (g)所属用户组对此文件的操作权限
            r--        (o)其它用户对此文件的操作权限

            r         读
                针对文件, 有r才能对此文件读取内容
                针对目录, 有r才能列表目录里内容
            w        写
                针对文件,有w才能对此文件进行编辑
                针对目录, 有w才能才能到此目录里创建或删除文件或子目录
            x        可执行
                针对文件,有x才能运行文件
                针对目录,有x才能切换进去(cd切换不进去)
    修改权限: chmod
        chmod u=rwx,g=r--,o=--- file
        chmod u+x,g-w,o+r file
        权限的数字表示方式(八进制)
            ---    000 0
            --x       001 1
            -w-       010 2
            -wx    011 3
            r--       100 4
            r-x       101 5
            rw-       110 6
            rwx    111 7

        chmod 755 目录/ -R
            将目录及目录里所有文件都修改权限为755

    修改所属用户及组: chown
        chown 用户名:用户组 file -R

粘贴位(只针对其它用户对文件夹设置权限 setVTX)
    作用: 防止其它用户删除
    chmod 777 目录/
    chmod o+t 目录/
        用户只能删除自己的东西

    ls查看粘贴位: 目录如果有执行权限显示t, 否则显示T

特权位(setuid setgid)
    只能给所属用户与所属用户组设置
    默认可执行文件运行的权限为当前登录用户
    有了特权位可执行文件运行的权限为文件的所属用户
    用户特权:
            chmod u+s 可执行文件
    用户组特权:
            chmod g+s 可执行文件


文件特殊属性:
        lsattr        查看文件的特殊属性
        chattr        修改文件的特殊属性




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值