zoukankan      html  css  js  c++  java
  • linux命令备忘

    linux命令备忘

    1、路径

    ls      列举当前目录下所有文件

         ls  -l     查看目录下所有文件,并显示是文件夹还是文件

         -h     显示文件大小

         -lh    列表形式展示文件大小

         -a     显示隐藏文件

    pwd     查看当前路径

    cd     跳转路径

         cd  -     快速返回打上一次路径

         cd  ~    进入当前用户的home目录

     

    权限前面的字母d  表示该目录为文件夹;

                             -   表示该目录为普通文件。

    touch 文件名   创建文件

        

    2、帮助信息

    ① 命令+ “--help”   

    ② man+命令

      

    3、通配符

    *.py      所有后缀名为.py的文件

    ?        代表任意一个字符

    [adc]    可匹配字符组中任意一个

    -          用于表示范围,必须配合[ ]使用

    [0-1]    任一匹配0,1,2中任一个

    反斜杠“”使通配符失去作用

    ls  *.a      查找文件名为*.a的文件

    参考:https://blog.csdn.net/yjz_sdau/article/details/52851166

    4、重定向     >

    ls   -alh  > text.txt       将查找到的结果保存到 text.txt 中,若该文件不存在则自动创建

    gedit   xxx.txt        打开文件xxx.txt 

    ls   -a    >>  text.txt    将查找到的结果添加到 text.txt 中,内容不覆盖

    1个 >  保存的内容会覆盖目标文件原内容,2个 >> 直接在文件内容后面添加

    参考:https://www.cnblogs.com/piperck/p/6219330.html 

    5、分屏    more

    cat   文件名    显示文件所有内容

    more   文件名     内容过多时,使用more命令,每次只显示一页,按空格键显示下一页,按 q 退出显示

    6、管道     |

    命令操作符是:”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入。

    管理命令的输出说明:

     

    【指令1】正确输出,作为【指令2】的输入 然后【指令2】的输出作为【指令3】的输入 ,【指令3】输出就会直接显示在屏幕上面了。通过管道之后【指令1】

    和【指令2】的正确输出不显示在屏幕上面

    【提醒注意】:

    ① 管道命令只处理前一个命令正确输出,不处理错误输出;

    ② 管道命令右边命令,必须能够接收标准输入流命令才行;

    例: ls   -ahl  |   more    查找到的结果暂存在管道  |  中, more 分屏从管道中拿数据并显示

    参考:https://blog.csdn.net/feng964497595/article/details/79767260

    7、目录操作

    ① 创建目录   

     mkdir 文件夹名     创建文件夹

     touch 文件名     创建文件

    ② 删除目录

     rmdir  文件夹名   删除文件夹(只能删空文件夹)

     rm     参数    -r    递归删除

                         -f    强制删除

     rm -rf   文件夹名   (删除非空文件,不可恢复)

    参考:https://www.cnblogs.com/lansetiankongblog/p/7851474.html

    8、创建链接文件

    即创建快捷方式    ln

    命令格式:      ln  源文件  链接文件     (硬链接)

                            ln  -s  源文件    链接文件     (软连接)

    软链接:删除源文件,则链接文件无效(链接指向源文件)

    硬链接:一份内容多个文件名(内容也记为多个,直到内容个数为0才会完全删除)

    补:   ls  -l   显示内容列表中,权限后面的数字代表该内容的个数 

     

    9、查看并合并文件内容

    cat  文件名     查看并显示文件内容

    cat  1.py  2.py  >  3.py     将1.py和2.py内容按先后顺序合并到3.py里

    10、文本搜索    grep

     参数  -n     在显示符合搜索内容的那一列之前,标示出该列的编号

    命令格式:    grep  [-选项]  '搜索内容串'  文件名     搜索xx文件中包含xx字符串的文本行

    例如:   grep  '000'  1.py     查找1.py中包含“000” 的文本行

                  grep -n  '000'  1.py     查找1.py中包含“000” 的文本行 ,并显示该行的行数

    搜索内容串(也可加通配符):   ' ^22 '     以22开头

                                                         ' 22$ '     以22结尾

    参考:http://man.linuxde.net/grep

    11、文件操作

    ① 查找文件   find

    命令格式: find  [查找路径] [查找条件] [处理动作]

     find ./  -name  文件名xx  -ls  查找文件名为xx的文件并以列表展示文件大小等信息

     -size  2M    等于2M的文件

             +2M   大于2M的文件

             -2M    小于2M的文件

     -type   f      文件类型为普通文件          

    注:若不指定路径,则默认在当前目录下查找  

    参考:https://blog.csdn.net/lyk_lalalala/article/details/80072856

    ② 拷贝文件   cp

    cp  文件名  目标目录

    例: cp  2.py  test/   将2.py拷贝到test文件夹中 (test/与2.py在同一级目录)

    拷贝文件夹需要加参数  -r

      cp  test  test2  -r    递归拷贝,将文件夹test拷贝到test2中

    参考:https://blog.csdn.net/u014542122/article/details/78901656  

    ③ 移动文件   mv

    mv  文件  目标目录

    例: mv 文件夹1   文件夹2   将文件夹1移动到文件夹2

    补: tree  显示当前目录结构

            tree  目录   显示指定目录结构

    参考:https://blog.csdn.net/ab_xue/article/details/80767638

    ④ 文件重命名   mv   rename

    mv  待修改文件/文件夹   目标文件/文件夹

    rename  arg1  arg2  arg3   

    arg1:旧的字符串

    arg2:新的字符串

    arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[ ]

    参考:https://blog.csdn.net/Sea_Shore/article/details/6102437

    ⑤ 归档管理   tar

    即打包

    tar  -cvf  test.tar  1.txt  2.txt  3.txt    将1,2,3这三个txt文件打包到test.tar 包中

    注:-f 必须放在所有参数最后面

    解包    tar   -xvf  包名

    参考:https://blog.csdn.net/qq_40232872/article/details/79159753

    ⑥ 文件压缩

    1) gzip  [选项]  包名

    -d   解压

    -r   压缩所有子目录

    打包并压缩    tar  -zcvf   xxx.tar.gz     文件1  文件2      把文件1和文件2压缩成xx.tar.gz

    解包并解压    tar  -zxvf  xx.tar.gz

    解压到指定路径     -C  + 路径       例:  tar  -zxvf   xx.tar.gz  -C  目标路径

    参考:http://man.linuxde.net/gzip

    2)bzip2     -j

    压缩:  tar  -jcvf   xx.tar.bz2   文件1  文件2

    解压:  tar  -jxvf   xx.tar.bz2 

    参考:http://man.linuxde.net/bzip2

      

    12、系统命令

    ① cal    当前日历

    ② date   当前时间

    ③ ps     查看进程信息 

          -a    显示终端上的所有进程              -x    显示没有控制终端的进程

          -r     只显示正在运行的进程             -u    显示进程的详细状态    

    结束进程     kill    PID     (PID为查找到的进程编号)

    强制结束进程    kill  -9    PID      

    ④ reboot   重启       shutdown   关机

    ⑤ top   查看动态进程     按 q 退出

    ⑥ df    查看磁盘空间        df  -lh

    ⑦ du  查看当前目录磁盘占用情况       du  -lh

    ⑧ ifconfig    查看网络配置

    13、远程连接网络   

    ssh  用户名@ip地址

    例: ssh  python@192.168.xx.xx     远程连接到用户名为python的主机

    14、用户管理

    ① 账户信息

    who     查看当前登录的账户信息

    whoami    查看我是谁

    ② 用户管理与权限

    1)添加用户(在 /home 下)    useradd         

    useradd  用户名  -m   添加用户并在 /home 下自动创建该用户目录

    cat   /etc/passwd  下可查看系统当前用户名

    2)设置用户密码     passwd

    passwd  用户名

    参考:https://www.cnblogs.com/Alanf/p/7994324.html

    3)删除用户    userdel

    userdel  -r  用户名    删除用户并删除 /home下目录

    4)查看用户组

    • cat  /etc/group
    • groupmod   +按3次tap键

    5)切换用户

    • su  用户名        切换到用户x(普通用户或root)
    • su -  用户名      切换用户同时切换到 /home 目录        su -   默认切换到root

      参考:https://www.cnblogs.com/tianyuchen/p/6141752.html

    6)添加/删除用户组

    groupadd   用户组名      添加用户组

    groupdel    用户组名      删除用户组

    7)查看用户所在组

    groups  用户名

    cat  /etc/group  |  'sudo'     查看用户组名为“sudo” 的内容

    8)修改用户所在用户组

    useradd  -g  用户组  用户        例: useradd  -g  aaa   ceshi      修改用户ceshi的默认组为aaa

    -a  -G   往其他组添加用户       例: useradd  -a  -G  bbb   ceshi    往bbb组中添加ceshi

    9)为创建的普通用户添加sudo权限

    sudo  useradd -a -G  adm

    sudo  useradd -a -G  sudo

    10)修改文件权限

    -rw-rw-r--     三组权限,第一个“ - ”表示普通文件

         第一组“ rw- ”为拥有者权限       u      user

         第二组“ rw- ”为同组者权限       g      groups

         第三组“ r-- ”为其他用户权限     o      other

    方法①:

         chmod  u+x   文件名     给拥有者加上 x(可执行)权限

         chmod  g-w   文件名     给同组者减去 w 权限

         chmod  o=w  文件名     给其他人修改权限为 w (r 权限没有了)

         chmod  a=rw  文件名    修改所有人权限为 rw

         chmod  u=w,g=x,o=r     分别修改拥有者权限为 w ,同组者为 x,其他人为 r   (逗号隔开)

       u=,g=,o=   所有人权限均为空

    方法②:

         数字法       r     代号4           w     代号2

                          x     代号1           -       代号0

        chmod  u=rwx,g=rw,o=x  文件名     等同于      chmod    761  文件名

           7=4+2+1    表示rwx     拥有者权限

           6=4+2        表示rw       同组者权限    

           1=1            表示x         其他人权限

    11)修改文件拥有者    chown

    chown   用户1   文件1     修改文件1 的拥有者为用户1

    12)修改文件所属组

    chgrp  aaa  1.py    将1.py的所属组改为aaa

    15、ftp服务器搭建

    ① 安装vsftpd服务器       yum  install  vsftpd    

       一路yes,最后提示安装成功。

    ② 配置vsftpd.conf       vi  /etc/vsftpd/vsftpd.conf

     将vsftpd.conf文件中的主要设置如下:

     

    ③ 启动vsftpd      service vsftpd  start

    ④ 设置vsftpd自启动  

     

    ⑤ 设置root用户可以ftp上传

     在/etc/vsftpd/目录下有两个文件:ftpusers和user_list,里面记录的用户无法使用通过ftp进行访问。删掉里面root的记录,然后通过:

     

     fedora 下面关闭selinux就可以了 

     

    ⑥ 重启vsftpd         service vsftpd  restart

    参考:https://blog.csdn.net/caoyuanll/article/details/38613303

    16、配置ssh服务

    ① 先确认是否已安装ssh服务:   rpm -qa | grep openssh-server

    若未安装ssh服务,可输入:   yum install openssh-server

    ② 修改配置文件        vi /etc/ssh/sshd_config

         Port 22    监听的端口号,默认是22,可以自定义。

      Protocol 2     支持的协议,默认就好,不用修改

      PermitRootLogin yes   是否允许root直接登录,最好设置为no

           MMaxAuthTries 6    最大登录数,默认是6,建议设置为3,防止别人密码穷举。

    ③ 修改完配置后,重启SSH服务:  systemctl start sshd.service

    ④ 登录ssh  用户名@ip地址

    例: ssh  python@192.168.xx.xx     ssh连接到用户名为python的主机

    17、远程拷贝scp 

    ① 本地复制到远程(上传)    scp  [-r]  文件名/文件夹名  远程用户名@ip地址:目标位置的绝对路径

          scp  a.txt  python@192.168.65.121:/home/test/   将本地的a.txt上传到远程目录/home/test/ 下

    ② 远程复制到本地(下载)    scp  [-r]   远程用户名@ip地址:目标位置的绝对路径   本地路径

          scp -r  python@192.168.65.121:/home/test/   ./     将远程目录/home/test/ 下的test文件夹下载到本地的当前目录

    18、vi 编辑器

    ① 进入vi编辑器

    命令

    描述

    vi filename

    如果filename存在,则打开;否则会创建一个新文件再打开。

    vi -R filename

    以只读模式(只能查看不能编辑)打开现有文件。

    view filename

    以只读模式打开现有文件。

    注:竖线(|)代表光标的位置;波浪号(~)代表该行没有任何内容。如果没有 ~,也看不到任何内容,那说明这一行肯定是有空白字符(空格、tab 缩进、换行符等)或不可见字符。

    ② 工作模式切换:

    • 在命令模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入文本输入模式;按 esc 键退回到命令模式。
    • 在命令模式下输入冒号(:)可以进入末行模式。输入完命令按回车,命令执行完后会自动退回末行模式。
    • 在末行模式下指令错误则返回命令模式。

    提示:如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。


    ③ 快捷操作

      1)命令模式(即打开文件后) 

       指令模式主要使用方向键移动光标位置进行文字的编辑,下面列出了常用的操作命令及含义。

    快速定位:  

     88G-----  快速定位到第88行

       1G或gg---    快速定位到文件的首行

        G-----     快速定位到文件末尾

    删除文本:

        d+方向键 --   删除文字

        dd -----   删除光标所在整行     例:3dd   从光标所在行算起删除3行

        X   -  - -  -  - -      删除光标往前的字符

        x    -  - -  -  - -     删除光标往后的字符

    复制粘贴:

        yy -----   整行复制    (2yy   从光标所在行开始复制2行    )

        p  -----    在光标所在行粘贴已复制的内容

        dd+p  ----  剪切粘贴

    替换修改:

        r ------  修改光标所在的字符

       %s/字符串1/字符串2/g     将文件中所有的字符串1修改为字符串2

       5,15s/main/MAIN/g    将文件夹中5-15行中的main修改为MAIN

    可视操作:

        v------    从光标所在位置开始,配合上下左右键选中文本,然后再配合d,y,<<,>>等操作使用

    撤销操作:

       u  ------  一步一步撤销操作    (ctrl+r  反撤销)

       >> -----文本右移  (<<   文本左移)

    查找操作:

    /print -----   查找包含print的字符串     再配合n(下一个),N(上一个)

       2)文本输入模式

       在指令模式下(Command Mode)按a/A键、i/I键、o/O键进入文本模式,文本输入模式的命令及其含义如下所示。

        a -----在光标后开始插入
        A -----在行尾开始插入
        i -----  从光标所在位置前面开始插入
        I -----  从光标所在列的第一个非空白字元前面开始插入
        o ----- 在光标所在列下新增一列并进入输入模式
        O -----在光标所在列上方新增一列并进入输入模式
        ESC ---   返回命令行模式

       3)末行模式

        末行模式主要进行一些文字编辑辅助功能,比如字串搜索、替代、保存文件等操作。主要命令如下

       :q -----结束 vi 程序,如果文件有过修改,先保存文件
       :q! ----强制退出Vi程序
       :wq ---- 保存修改并退出程序
       :set nu ---设置行号

       :17,27>>>  --整体向右缩进3个单位 

  • 相关阅读:
    NSClassFromString,NSSelectorFromString,isKingOfClass
    [ios2]10大iOS开发者最喜爱的类库
    [ios2]iphone编程中使用封装的NSLog来打印调试信息 【转】
    [ios2]蓝牙通信【转】
    [ios] Xcode使用设置相关-快捷键【转】
    iOS图片设置圆角
    iOS 时间戳转时间
    iOS 时间转时间戳
    iOS loading等待图
    iOS简便写法
  • 原文地址:https://www.cnblogs.com/xinxinyo/p/10394653.html
Copyright © 2011-2022 走看看