Linux03

1、调用vi
    vi filename    打开或创建一个文件
    vi        打开一个新文件, 最后才取名
我对vi这个命令的了解吧,它可以打开一个文件然后编辑这个文件,不过vi编辑文件只能用键盘,而且很多地方和平常我们编辑文档不一样,所以,看下面吧,下面有所有命令的介绍.(我总觉得这玩意反人类)

2、    
    1,命令模式下-->切换到编辑模式(以下命令都会使vi模式从命令模式转到编辑模式)
    i    在光标当前位置插入
      I    行首(光标转到行首)
    a    在光标所在位置后插入
      A    行尾
    o    在光标所在行下插入一空行
      O    在光标所在行上插入一空行
    
    <Esc>    退出命令状态
    0      光标回到这一行的开始
    $    光标移动到这一行的结束
        

    直接命令 (命令模式)
    :命令    (底行模式)

      删除
    x    删除一个字符
    dw    删除当前词(没办法识别所有的英文单词,是连续多个字母,当碰到标点符号时,为一个词)
    3dw    删除三个词
    dd    删除当前行(从光标所在行开始)
    5dd    删除五行(从光标所在行开始)
    :5,10d  (底行模式:5到10行删除)
      change text:
    r    替换一个字符
    cw    替换一个单词
    cc    替换一行
    C    替换从光标至行尾
      copy text :
    yw        拷贝词(光标放在一个单词的开始位置)(p:在光标的下个位置黏贴;P:在光标的上个位置)
    yy        拷贝行(或Y)
    p       当前行下粘贴
    :1,2 co 3  拷贝行1,行2在行3之后
    :4,5 m 6   移动行4,行5在行6之后

      save quit text:
    :w        存盘
    :w newfile    存成新文件
    :wq         存盘退出Vi(或ZZ,或:x先检测有没有改变,如果没有改变,不存盘)
    :q!         强行退出不存盘
    ~    改变大小写
    J    把当前行和下一行连起来
    u    废除刚才的编辑操作(undo)(存盘退出,不能废除)
    :set nu    显示行代码 (:set nonu)
    :21    光标停在指定行
    21G    光标停在指定行 (G 到文件尾,1G 到文件头)
    GG    光标停留在末尾行
    
    :/串    从当前行往下查找
    :?串    从当前行往上查找
    n    查找继续

    :r file2    在光标所在位置插入另一个文件
    :1,$s/旧串/新串/g    替换全文(或 :$s/旧串/新串/g)
          $:表示最后一行

3、id:查用户的信息
    id root
    id -a root







  需要在管理员 权限下操作
  添加用户
    adduser 用户名
  移动到组
    usermod -g sudo tom
     把tom移动到sudo组(只是简简单单的将其移动到了一个组,但是它就不在它原本的组里了)
  追加一个组
    gpasswd -a tom sudo(为这位用户追加一个组,在它原本所拥有的组内,它又多了一个)
  删除一个组
    gpasswd -d tom sudo(给这位用户删除一个组)
  删除用户
    sudo userdel -r tom(如果用户之前用usermod移动过位置,则它原本所属组则无法被此命令删除)
     -r 把家目录都删除
 

4、 显示当前已登录本系统的所有用户信息
    users 显示当前登入的账户(系统当前登录的账户)
    who  用来查询目前有那些人在线上。
    w    用来查询目前有那些人在线上,同时显示出那些人目前的工作。
    who am i . 显示登入系统时候的账户(Ubuntu显示不出来....)
    whoami   . 显示当前使用的用户

7、find:根据指定的条件从文件系统中搜寻指定的文件或目录,然后做处理
     7.1:通过文件名查找
    find 路径 -name "fileName" 会显示出这个文件的路径,如果不加路径的话,它会从此时的相对路径找

     7.2:通过时间查找
    find 路径 -mtime 10 (数字可以换)
        查找10天前修改的文件

    find 路径 -mtime +10 十天以外
    find 路径 -mtime -10 十天以内
    问
    :
      -mtime:修改时间 打开保存。
    -atime:访问时间 more    ls -lu
    -ctime:改变状态 修改权限的时候 ls -lc

      通过用户查找: -user
    find 路径 -user test
      同文件大小查找:-size
        find ./ -size 30c
·     通过权限查找
    find ./ -perm 777
      通过文件类型查找
      find ./ -tpye f -atime +365 -exec rm {} ;(选项可以多选,这就是个例子)
    
      注:
    -type
    注:普通文件的- 使用f代替
    -exet 执行
    {} 用来接收前面参数

  find ./ -name "*.html" -print | xargs perl -p -i.bak -e "s/oldString/newString/g;"    

       将./目录下所有后缀为html的文件中“/oldString” /newString”;其中xargs为一个命令,
       然后作为perl的参数. 这个功能非常强大.

    xargs:把前面的内容整理为参数,将前面结果作为后面命令(perl)的参数

    perl:对文件内容进行处理
    -p :把参数列表中的每一个文件都遍历处理,一个一个处理
    -i.bak:对文件进行处理之前,先备份
        index.bak 之后再处理
    -e :excut 执行后面的命令
    s/oldString/newString/g:将一个文件中的字符进行替换,替换之前进行备份


8、grep:从管道或文件中搜寻所满足条件的行
    过滤
    eg: grep root /etc/passwd
        从passwd 文件中 过滤 root关键字,把所在行显示
    eg: ls -la | grep -i "被查找的字符串"
    
    -i 忽略大小写
    -v 查找不匹配的行

9、wc:从文件或管道中统计
    行数、
    字符个数、
    单词个数
    wc [options] filename(s)
    -l 行数
    -w 字数
    -c 字符数
    more a.txt | wc -l

10、ps:用来查看系统中正在运行的进程的信息
    什么是进程:一个程序的运行过程
    
    ps -e :查看正在运行的进程(运行过程中、就绪状态下的)
    ps -f:详细信息
    eg:
    wood             2709           2571        0 05:07   
    当前进行开启的用户   PID进程自己的id   PPID进程的父进程 C  启动时间  
    pts/2  00:00:00  cat
    tt     运行多久  哪个程序文件启动的进程

    tt:表示该进程是从哪个控制台启动的。
        可以是 pts/num或者?pts/0 0号控制台启动的
        ?:不是用户启动的,是系统运行时自动启动的进程

   eg : ps -ef
    看到进程的详细内容
    主要就是查看pid

   eg : ps -auwx
    看到更加详细的内容
kill pid
   杀死进程
   kill -9 pid
   强杀进程
sleep 让进程进入休眠状态
pkill 进程名 :pkill  sleep
    通过进程名杀死进程

11、ping ip   看看网络通不通。

ifconfig 查看ip
  在文件中配置ip
  /etc/network/interfaces
  https://blog.csdn.net/u011077672/article/details/71123319
 

12、telnet
  - telnet服务器模拟一个终端允许你连接并工作于一个远端系统上
    - 使用TCP/IP连接于另一个系统
13、ftp
    使用 ftp 复制或传送文件:
       ftp有服务器端和客户端

    ftp(File Transfer Protocol)允许用户对远地主机复制文件,用户毋须考虑操作系统类型,即能向或从任何具有 TCP/IP 的系统复制文件。 ftp命令允许复制目录中的一个文件或所有文件,但不能复制多层 次目录。使用ftp时, 必需在远地主机上设有帐户。 当 ftp 注册到远地系统时,并未得到 shell ,而是通过 ftp 命令解释程序同远地主机进行通讯。
    cd        lcd
     服务器cd    本地cd
    bin,asc 需要设置上传方式和下载方式
       bin : 字节上传
       asc :字符上传
    put 上传文件
    get 下载文件
        注:只能下载和上传 文件,
        不能下文件夹,也不能传文件夹
    mput
    mget
    
    prompt 不出现确认的提示信息

    bye  退出ftp 远程服务器
14、环境变量 path
    whereis ls 看看ls在哪
    echo $PATH 查看当前的PATH

    设置/修改临时环境变量:
      变量名=value
        全局修改: 下面文件中存放 全局环境变量内容
      /etc/profile 所有用户有效
      ~/.bashrc    当前用户有效
    
重点:
    在控制台中直接输入命令能执行
    原因是因为在PATH中配置了对应可执行文件的所在路径

15、path:命令的默认搜索路径
    想知道所执行的命令到底在那个目录下?
    which vi 搜索vi所在的路径(在path下搜索,搜索到就停止)
    whereis vi 搜索vi所在的路径(在path下搜索,搜索到继续搜索,直到找到所有的vi)
16、History
    $ set HISTORY=30    设置最多允许保存前三十个已执行命令的记录
    $ history        显示历史记录信息
    $ history 5        显示第五条历史记录信息
    $ !n            重复执行第n条历史命令
    $ !!            重复执行上一条历史命令
17、别名:针对于系统中已经存在的命令,给它取个别名
    bash:alias h(别名)=history(原始命令)
    $ alias home=’cd;ls’

    alias 显示所有设置的别名
    unalias copy 取消所设置的别名
    (有无取消所有设置的别名)
18、初始化文件:包含命令和变量的设置,当shell启动时就执行
    对初始化文件再操作系统中分为两级:
    1、系统级(一旦修改,对所有的用户都起作用)
        /etc/profile
    2、用户级(只针对于特定的用户有效)
        /home/user/(用户的家目录下)
       ~/.bashrc


原文地址:https://www.cnblogs.com/mcmx/p/11246962.html