Linux学习笔记 Day 2~3

发布时间:2019-07-12 10:00:01编辑:auto阅读(1337)

    继续整理周末课程的Linux学习笔记。

    vim编辑器

    最受欢迎的是emacs,vim是vi的增强版本,特点是编辑内容时有颜色变化。命令:vim /etc/passwd

    三种模式:
    1. 普通模式-->可视模式
    2. 编辑模式
      2.1 插入模式:按i即可进入编辑,在光标前开始插入,esc退出
      2.2 替换模式:
    3. 命令行模式

       定位移动:
    j:下
    K:上
    l:右
    h:左
    ^:行首
    0:行尾
    H:页首
    M:页中
    L:页尾
    gg:篇首
    GG:篇尾
    w:跳到下一单词(按特殊字符匹配)
    b:上一单词(按特殊字符匹配)
    W:跳到一单词(按空格匹配)
    B:下一单词(按空格匹配)
    e:下一单词尾
    E:句尾
    f+字母:向后查找
    F+字母:向前查找
    t:字符前一位---?
    T:字符后一位---?
    zt:将本行提屏首
    zb:将本行提屏尾
    zz:将本行提中间

    按v进入可视模式,然后jklh选中某段或某行,然后zf创建折行,zc折叠,zo打开。

    %跳到对应括号位置。

    ctrl+u:向上移半屏
    ctrl+f:向下移整屏
    ctrl+b:向上整屏
    ctrl+d:向下半屏
    ctrl+o:跳到上次光标位置
    ctrl+i:跳回
    ctrl+":两次光标间切换

    m+字母:创建标记
    "+字母:返回创建的标记位置

     

    简单搜索:/ -->输入命令,查到结果后
    n:下一个单词
    N:上一个单词


    :noh  不高亮
    支持正则表达式,如:ab..(通配符)以ab开头,*代表所有
    /\<yum:以yum开头的单词
    /\<yum\>:完全跟yum匹配的单词
    /\>ed:以ed结尾


    操作命令:
    x:删除当前字符
    u:还原删除
    ctrl+r:重做上次操作
    r:按一下,再输,可更换当前字符
    R:进入替换模式
    dw:删除下一个字符
    d0:当前光标前面的全部删除
    d^:删除到本行首
    dd:删一行
    D/d$:删除光标本行后面
    cw和dw一样删除一单词,并进入插入模式 
    y:复制(v然后jklh选定)
    yy:复制一行
    p:粘贴到当前光标之后
    P:粘贴到当前光标之前
    i:当前光标前开始编辑
    I:当前光标行首开始编辑
    a:当前光标后开始编辑
    A:当前光标行尾开始编辑
    .:重复上次命令操作,如79.,输入79次上次的操作
    V:按行选定
    v:按字选定
    ctrl+v:按列选
    xp:交换当前两个字符位置
    s:删除当前光标位置字符开始插入
    S:删除当前行开始插入
    o:当前行下新建空行开始插入
    O:当前行上新建空行开始插入

    可结合使用,如可加计数器,例子:100dd:删除100行,命令可加数字,指定重复次数,33dd:删除33行;20j:向下移动20行。

    file /bin/ls -l :可区分文件类型

    命令行模式,输入:
    w:保存
    q:退出
    wq:保存退出
    q!:强制退出
    w!:强制保存
    wq!:强制保存并退出

    ctrl+g:查看底部信息
    set number:设行号,去除
    set nonum:底部文件信息
    set ruler:显示行位,列位,底部信息
    set hlsearch:设置搜索时字符高亮
    set incsearch:跟踪搜索
    set tabstop=4:设置tab键空格数
    set autoindent:自动对齐
    set mouse:支持鼠标复制
    set mouse=a:鼠标滚动
    options:得到set帮助
    !+命令:可看别的信息,如::! ls, 切换回屏,查看此命令信息
    r!:cat /etc/shadow:把shell命令的结果显示到当前编辑窗口
    qall:全部退出
    wqall:全部保存退出
    40:有行号的时候,如按40可跳到对应的行数
    s/nologin/test:替换光标所在行的nologin为test
    %s/nologin/test:替换全文的nologin为test
    20,29 s/nologin/test:20-29行的nologin替换为test
    vim /etc/vimrc:这个是vim配置文件,vim /usr/share/vim/vim70/plugin/gzip.vim /root/.vim/plugin  (.点开头表示隐藏文件)


    同时打开两个文件 vim test2 /etc/passwd
    :next

    分屏
    vsplit:竖分屏开
    split:横屏
    qall:退出全部
    ctrl+ww:切换
    ctrl+wjklh:上下左右换屏

     

    2. 用户管理
    root的uid=0,uid=1~499为用户,uid=500~ 为普通用户
    useradd/adduser:创建用户
    userdel:删除一个用户
    userdel -r:强制删除用户
    passwd a:为用户a设定密码
    usermod:修改用户信息

    vim /etc/passwd:vim查看用户信息,下图是对相应字段的解析


    vim /etc/shadow:查看用户密码信息

    关于下图,14991,上次修改密码的时间,计算方式为从1970年1月1日起到目前有几天。可通过这条命令计算得出:echo $(($(date +%s)/86400))。7,密码过期时间,30-7=23,表示密码过期前23天提示密码。


    groupadd:添加用户组
    groupdel:删除用户组
    groupmod:修改用户组信息


    vim /etc/group/
    vim /etc/gshadow

    gpasswd -a b root:将b加入root组
    gpasswd -d b root:将b从root组删除
    newgrp root:将当前用户加入root组
    id a:查用户a的属什么组
    su - b:完全切换到b用户


    #grub-md5-crypt:使用md5设密码


    ls -l

    drwxr-xr-x 3 root root  4096 Jan 17 21:36 Desktop

    -:一般文件
    l:链接文件
    d:目录文件
    b:块设备文件
    c:字符型设备文件
    s:网络类型文件
    p:管道文件

    r:只读
    w:可写
    x:可执行
    -:无权限


    对应的2进制,如下图:


    修改用户权限
    chmod +x 2.txt:将2.txt赋予可执行权限
    chmod -x share:文件夹去除执行权限
    chmod 777 share:文件夹加读/写/执行的权限
    chmod u=rx- aa:为aa加读写的用户权限
    chmod u=rwx,g=rx:用户权限读/写/执行,组权限读/执行
    chmod 755 /share/ -R:将share下所有文件及目录权限改成755

     

    umask:默认=0022,及0777-0022=0755,默认新建文件权限为755,可通过umask 0222来修改这个默认值。

    每个终端都有独立的配置文件,更改只对当前终端生效。


    手动创建用户的过程,=useradd

    1. vim /etc/passwd
    2. vim /etc/shadow
    3. vim /etc/group
    4. vim /etc/gshadow
    5. mkdir home/a
    6. cp /etc/share/.bash*/home/a
    7. chown a:a /home/a/ -R
    8. chmod 700 /home/a/ -R
    9. touch /var/mail/a
    10. chown a:mail /var/mail/a
    11. chmod 664 /var/mail/a

     

    一些常用的快捷方式:

    Ctrl+c:退出
    ctrl+Z:后台暂停
    ctrl+a:直接返回本行首字母
    ctrl+e:返回尾字母
    ctrl+f:一个个字母往下
    ctrl+u:删除光标前所有字符
    ctrl+k:删除光标后所有字符
    ctrl+l:清屏


    which passwd:查找文件passwd的目录位置

    ls -l /usr/bin/passwd


    设置特权位,给某些用户加特权
    chmod u+s ls:针对用户uid设
    chmod a:a ls:针对名设
    chmod g+s ls:针对组设置


    查权限时,若发现:
    -r-s-- (有s表示有特权位,大写S表示无权限执行,小s表示有权限执行)


    粘贴位,防止别的用户删除权限(文件+文件夹设置权限)
    chmod o+t bb:一般针对目录设置
    chmod 777 bb

    查权限时,若发现:
    rwxrwxrwt (t表示无法删除用户,小t有执行,大T无权执行)


    a属性,可往里面追加,
    chattr +a:无法删,无法改,但可追加


    i属性无法删除
    chattr +i ddd
    lsattr:查看是否有加特权属性

     

    环境变量
    启动 /etc/bashrc
             /profile


    查看环境变量:
    set
    env | grep aa
    export aa:将私有环境变量导出,使env也能看

    echo $LANG=en_US.UTF-8:英文

    cp ../dir/aa .:(..上一级目录,.当前目录)

    help alias:能查看即是内部命令
    typr alias:能查看即是内部命令

    命令别名:
    alias ping='ping 1.2.3.4':将ping命名为ping1.2.3.4,设置后只对当前终端生效
    unalias ping:取消别名

    改了后要其生效,重新打开,或./root/.bashrc或source ./root/.bashrc

    长存命令别名的几个文件:
    /root/.bashrc
         /.bash_profile
         /.bash_logout
         /.bash_history


    查看输入过的命令:history

    输出:echo 'date' >> /var/log/test


    uname -r / -s / -m / -a:查看当前系统的所有信息
    cal:日历
    bc:计算器,退出q
    echo:打印结果
    echo -n:输出结果无换行符
    echo -n test ; echo ddd :同一终端执行多条命令 (写脚本时有用)
    ls ddd && echo hello:&&符表示前面若有错误,后面不执行
    echo $((30+20)):计算

    date +%Y:输出年,date +%Y:%M, date +%Y%m%d
    mkdir `date +%F` :按当前日期创建文件夹(反引号,tab键上面)


    关机命令:
    reboot
    halt
    poweroff:关机很快,不保存
    init 0:关机 /1:关用户 /2:不带网络的文本模式 /3:带网络的文本模式 /4: /5:图形模式  /6:重启

    runlevel:查看当前运行级别

    shutdow -r -h -p


    终端乱码: 执行reset,例:cat /bin/ls   cat /etc/issue


    sync:同步数据,如u盘等时用,防止数据没copy完,在使用cp或cat命令之后


    运行命令:./:当前目录下,/mnt/sahre/test:相对路径下


    gedit:gedit &:程序改后台运行,ctrl+c退出,ctrl+z暂停,jobs查看暂停程序,fg返回,fg %1/2/3:指定启动哪个暂停的 程序

关键字