美文网首页
Linux系统操作

Linux系统操作

作者: 刘xin_8 | 来源:发表于2018-11-15 20:54 被阅读0次

    Linux系统发行版本

    1. Redhat
    2. Ubuntu
    3. CentOS
    4. Fedora
    5. Debian
    6. openSUSE

    基础命令

    Linux系统的命令通常都是如下所示的格式:

    命令名称 [命名参数] [命令对象]
    
    1. 获取登录信息 - w / who / last

      [root@izwz97tbgo9lkabnat2lo8z ~]# w
       23:31:16 up 12:16,  2 users,  load average: 0.00, 0.01, 0.05
      USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
      root     pts/0    182.139.66.250   23:03    4.00s  0.02s  0.00s w
      jackfrue pts/1    182.139.66.250   23:26    3:56   0.00s  0.00s -bash
      [root@izwz97tbgo9lkabnat2lo8z ~]# who
      root     pts/0        2018-04-12 23:03 (182.139.66.250)
      jackfrued pts/1        2018-04-12 23:26 (182.139.66.250)
      [root@izwz97tbgo9lkabnat2lo8z ~]# who am i
      root     pts/0        2018-04-12 23:03 (182.139.66.250)
      
    2. 查看自己使用的Shell - ps

      Shell也被称为“壳”,它是用户与内核交流的翻译官,简单的说就是人与计算机交互的接口。目前很多Linux系统默认的Shell都是bash(Bourne Again SHell),因为它可以使用Tab键进行命令补全、可以保存历史命令、可以方便的配置环境变量以及执行批处理操作等。

      [root@izwz97tbgo9lkabnat2lo8z ~]# ps
        PID TTY          TIME CMD
       3531 pts/0    00:00:00 bash
       3553 pts/0    00:00:00 ps
      
    3. 查看命令的说明 - whatis

      [root@izwz97tbgo9lkabnat2lo8z ~]# whatis ps
      ps (1)        - report a snapshot of the current processes.
      [root@izwz97tbgo9lkabnat2lo8z ~]# whatis python
      python (1)    - an interpreted, interactive, object-oriented programming language
      
    4. 查看命令的位置 - which / whereis

      [root@izwz97tbgo9lkabnat2lo8z ~]# whereis ps
      ps: /usr/bin/ps /usr/share/man/man1/ps.1.gz
      [root@izwz97tbgo9lkabnat2lo8z ~]# whereis python
      python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
      [root@izwz97tbgo9lkabnat2lo8z ~]# which ps
      /usr/bin/ps
      [root@izwz97tbgo9lkabnat2lo8z ~]# which python
      /usr/bin/python
      
    5. 查看帮助文档 - man / info / apropos

      [root@izwz97tbgo9lkabnat2lo8z ~]# ps --help
      Usage:
       ps [options]
       Try 'ps --help <simple|list|output|threads|misc|all>'
        or 'ps --help <s|l|o|t|m|a>'
       for additional help text.
      For more details see ps(1).
      [root@izwz97tbgo9lkabnat2lo8z ~]# man ps
      PS(1)                                User Commands                                PS(1)
      NAME
             ps - report a snapshot of the current processes.
      SYNOPSIS
             ps [options]
      DESCRIPTION
      ...
      [root@izwz97tbgo9lkabnat2lo8z ~]# info ps
      ...
      
    6. 切换用户 - su

      [root@izwz97tbgo9lkabnat2lo8z ~]# su hellokitty
      [hellokitty@izwz97tbgo9lkabnat2lo8z root]$
      
    7. 以管理员身份执行命令 - sudo

      [jackfrued@izwz97tbgo9lkabnat2lo8z ~]$ ls /root
      ls: cannot open directory /root: Permission denied
      [jackfrued@izwz97tbgo9lkabnat2lo8z ~]$ sudo ls /root
      [sudo] password for jackfrued:
      calendar.py  code  error.txt  hehe  hello.c  index.html  myconf  result.txt
      

      说明:如果希望用户能够以管理员身份执行命令,用户必须被添加到sudoers名单中,该文件在 /etc目录下。

    8. 登入登出相关 - logout / exit / adduser / userdel / passwd / ssh

      [root@izwz97tbgo9lkabnat2lo8z ~]# adduser hellokitty
      [root@izwz97tbgo9lkabnat2lo8z ~]# passwd hellokitty
      Changing password for user jackfrued.
      New password:
      Retype new password:
      passwd: all authentication tokens updated successfully.
      [root@izwz97tbgo9lkabnat2lo8z ~]# ssh hellokitty@1.2.3.4
      hellokitty@1.2.3.4's password:
      Last login: Thu Apr 12 23:05:32 2018 from 10.12.14.16
      [hellokitty@izwz97tbgo9lkabnat2lo8z ~]$ logout
      Connection to 1.2.3.4 closed.
      [root@izwz97tbgo9lkabnat2lo8z ~]#
      
    9. 查看系统和主机名 - uname / hostname

      [root@izwz97tbgo9lkabnat2lo8z ~]# uname
      Linux
      [root@izwz97tbgo9lkabnat2lo8z ~]# hostname
      izwz97tbgo9lkabnat2lo8z
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat /etc/centos-release
      CentOS Linux release 7.4.1708 (Core) 
      
    10. 重启和关机 - reboot / init 6 / shutdown / init 0

    11. 查看历史命令 - history

    ```source-shell
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# history
    ...
    452  ls
    453  cd Python-3.6.5/
    454  clear
    455  history
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# !454
    ```
    
    > 说明:查看到历史命令之后,可以用`!历史命令编号`来重新执行该命令;通过`history -c`可以清除历史命令。
    

    实用程序

    文件和文件夹操作

    1. 创建/删除目录 - mkdir / rmdir

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# mkdir abc
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# mkdir -p xyz/abc
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# rmdir abc
      
    2. 创建/删除文件 - touch / rm

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# touch readme.txt
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# touch error.txt
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# rm error.txt
      rm: remove regular empty file ‘error.txt’? y
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# rm -rf xyz
      
      • touch命令用于创建空白文件或修改文件时间。在Linux系统中一个文件有三种时间:
        • 更改内容的时间 - mtime。
        • 更改权限的时间 - ctime。
        • 最后访问时间 - atime。
      • rm的几个重要参数:
        • -i:交互式删除,每个删除项都会进行询问。
        • -r:删除目录并递归的删除目录中的文件和目录。
        • -f:强制删除,忽略不存在的文件,没有任何提示。
    3. 切换和查看当前工作目录 - cd / pwd

      说明:cd命令后面可以跟相对路径(以当前路径作为参照)或绝对路径(以/开头)来切换到指定的目录,也可以用cd ..来返回上一级目录。

    4. 查看目录内容 - ls

      • -l:以长格式查看文件和目录。
      • -a:显示以点开头的文件和目录(隐藏文件)。
      • -R:遇到目录要进行递归展开(继续列出目录下面的文件和目录)。
      • -d:只列出目录,不列出其他内容。
      • -S/-t:按大小/时间排序。
    5. 查看文件内容 - cat / head / tail / more / less

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# wget http://www.sohu.com/ -O sohu.html
      --2018-06-20 18:42:34--  http://www.sohu.com/
      Resolving www.sohu.com (www.sohu.com)... 14.18.240.6
      Connecting to www.sohu.com (www.sohu.com)|14.18.240.6|:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 212527 (208K) [text/html]
      Saving to: ‘sohu.html’
      100%[==================================================>] 212,527     --.-K/s   in 0.03s
      2018-06-20 18:42:34 (7.48 MB/s) - ‘sohu.html’ saved [212527/212527]
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat sohu.html
      ...
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# head -10 sohu.html
      <!DOCTYPE html>
      <html>
      <head>
      <title>搜狐</title>
      <meta name="Keywords" content="搜狐,门户网站,新媒体,网络媒体,新闻,财经,体育,娱乐,时尚,汽车,房产,科技,图片,论坛,微博,博客,视频,电影,电视剧"/>
      <meta name="Description" content="搜狐网为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。" />
      <meta name="shenma-site-verification" content="1237e4d02a3d8d73e96cbd97b699e9c3_1504254750">
      <meta charset="utf-8"/>
      <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# tail -2 sohu.html
      </body>
      </html>
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# less sohu.html
      ...
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat -n sohu.html | more
      ...
      
    6. 拷贝/移动文件 - cp / mv

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# mkdir backup
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cp sohu.html backup/
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cd backup
      [root@iZwz97tbgo9lkabnat2lo8Z backup]# ls
      sohu.html
      [root@iZwz97tbgo9lkabnat2lo8Z backup]# mv sohu.html sohu_index.html
      [root@iZwz97tbgo9lkabnat2lo8Z backup]# ls
      sohu_index.html
      
    7. 查找文件和查找内容 - find / grep

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# find / -name "*.html"
      /root/sohu.html
      /root/backup/sohu_index.html
      [root@izwz97tbgo9lkabnat2lo8z ~]# find . -atime 7 -type f -print
      [root@izwz97tbgo9lkabnat2lo8z ~]# find . -type f -size +2k
      [root@izwz97tbgo9lkabnat2lo8z ~]# find . -type f -name "*.swp" -delete
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# grep "<script>" sohu.html -n
      20:<script>
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# grep -E \<\/?script.*\> sohu.html -n
      20:<script>
      22:</script>
      24:<script src="//statics.itc.cn/web/v3/static/js/es5-shim-08e41cfc3e.min.js"></script>
      25:<script src="//statics.itc.cn/web/v3/static/js/es5-sham-1d5fa1124b.min.js"></script>
      26:<script src="//statics.itc.cn/web/v3/static/js/html5shiv-21fc8c2ba6.js"></script>
      29:<script type="text/javascript">
      52:</script>
      ...
      

      说明:grep在搜索字符串时可以使用正则表达式,如果需要使用正则表达式可以用grep -E或者直接使用egrep

    8. 链接 - ln

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls -l sohu.html
      -rw-r--r-- 1 root root 212131 Jun 20 19:15 sohu.html
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ln /root/sohu.html /root/backup/sohu_backup
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls -l sohu.html
      -rw-r--r-- 2 root root 212131 Jun 20 19:15 sohu.html
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ln /root/sohu.html /root/backup/sohu_backup2
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls -l sohu.html
      -rw-r--r-- 3 root root 212131 Jun 20 19:15 sohu.html
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ln -s /etc/centos-release sysinfo
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls -l sysinfo
      lrwxrwxrwx 1 root root 19 Jun 20 19:21 sysinfo -> /etc/centos-release
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat sysinfo
      CentOS Linux release 7.4.1708 (Core)
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat /etc/centos-release
      CentOS Linux release 7.4.1708 (Core)
      

      说明:链接可以分为硬链接和软链接(符号链接)。硬链接可以认为是一个指向文件数据的指针,就像Python中对象的引用计数,每添加一个硬链接,文件的对应链接数就增加1,只有当文件的链接数为0时,文件所对应的存储空间才有可能被其他文件覆盖。我们平常删除文件时其实并没有删除硬盘上的数据,我们删除的只是一个指针,或者说是数据的一条使用记录,所以类似于“文件粉碎机”之类的软件在“粉碎”文件时除了删除文件指针,还会在文件对应的存储区域填入数据来保证文件无法再恢复。软链接类似于Windows系统下的快捷方式,当软链接链接的文件被删除时,软链接也就失效了。

    9. 压缩/解压缩和归档/解归档 - gzip / gunzip / xz / tar

      [root@iZwz97tbgo9lkabnat2lo8Z ~]# wget http://download.redis.io/releases/redis-4.0.10.tar.gz
      --2018-06-20 19:29:59--  http://download.redis.io/releases/redis-4.0.10.tar.gz
      Resolving download.redis.io (download.redis.io)... 109.74.203.151
      Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80... connected.
      HTTP request sent, awaiting response... 200 OK
      Length: 1738465 (1.7M) [application/x-gzip]
      Saving to: ‘redis-4.0.10.tar.gz’
      100%[==================================================>] 1,738,465   70.1KB/s   in 74s
      2018-06-20 19:31:14 (22.9 KB/s) - ‘redis-4.0.10.tar.gz’ saved [1738465/1738465]
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls redis*
      redis-4.0.10.tar.gz
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# gunzip redis-4.0.10.tar.gz
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls redis*
      redis-4.0.10.tar
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# tar -xvf redis-4.0.10.tar
      redis-4.0.10/
      redis-4.0.10/.gitignore
      redis-4.0.10/00-RELEASENOTES
      redis-4.0.10/BUGS
      redis-4.0.10/CONTRIBUTING
      redis-4.0.10/COPYING
      redis-4.0.10/INSTALL
      redis-4.0.10/MANIFESTO
      redis-4.0.10/Makefile
      redis-4.0.10/README.md
      redis-4.0.10/deps/
      redis-4.0.10/deps/Makefile
      redis-4.0.10/deps/README.md
      ...
      [root@iZwz97tbgo9lkabnat2lo8Z ~]# ls redis*
      redis-4.0.10.tar
      redis-4.0.10:
      00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
      BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
      CONTRIBUTING     INSTALL  README.md  runtest-cluster  src
      
    10. 其他工具 - sort / uniq / diff / tr / cut / paste / file / wc

    [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat foo.txt
    grape
    apple
    pitaya
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat bar.txt
    100
    200
    300
    400
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# paste foo.txt bar.txt
    grape   100
    apple   200
    pitaya  300
            400
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# paste foo.txt bar.txt > hello.txt
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# cut -b 4-8 hello.txt
    pe      10
    le      20
    aya     3
    0
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# cat hello.txt | tr '\t' ','
    grape,100
    apple,200
    pitaya,300
    ,400
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# wget https://www.baidu.com/img/bd_logo1.png
    --2018-06-20 18:46:53--  https://www.baidu.com/img/bd_logo1.png
    Resolving www.baidu.com (www.baidu.com)... 220.181.111.188, 220.181.112.244
    Connecting to www.baidu.com (www.baidu.com)|220.181.111.188|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 7877 (7.7K) [image/png]
    Saving to: ‘bd_logo1.png’
    100%[==================================================>] 7,877       --.-K/s   in 0s
    2018-06-20 18:46:53 (118 MB/s) - ‘bd_logo1.png’ saved [7877/7877][root@iZwz97tbgo9lkabnat2lo8Z ~]# file bd_logo1.png
    bd_logo1.png: PNG image data, 540 x 258, 8-bit colormap, non-interlaced
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# wc sohu.html
      2979   6355 212527 sohu.html
    [root@iZwz97tbgo9lkabnat2lo8Z ~]# wc -l sohu.html
    2979 sohu.html
    

    相关文章

      网友评论

          本文标题:Linux系统操作

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