Linux命令--NOTE

目录

  • 1. 实用技能 (常用)
    • 1.1. 基本疑问 解答
      • 1.1.1. 多用户
      • 1.1.2. 系统安装时间
      • 1.1.3. 查看版本
      • 1.1.4. Linux服务的启停
      • 1.1.5. 网络配置
    • 1.2. 用户管理 & 密码更改
      • 1.2.1. 用户管理
      • 1.2.2. 更改密码
    • 1.3. 查看端口 及 进程/服务
      • 1.3.1. 端口
      • 1.3.2. 进程/服务
    • 1.4. log 日志查看
      • 1.4.1. last
      • 1.4.2. history
      • 1.4.3. tail、cat和 watch
        • 1.4.3.1. tail
        • 1.4.3.2. cat、tac
        • 1.4.3.3. watch
      • 1.4.4. 附录–log目录
    • 1.5. 其他
      • 1.5.1. options 全称
      • 1.5.2. 常用
  • 2. 文件管理
    • 2.1. 文件系统概述
      • 2.1.1. 颜色含义
    • 2.2. 命令概述
    • 2.3. 详解
      • 2.3.1. 文件 查看 & 处理 & 属性
        • 2.3.1.1. 文件查看
        • 2.3.1.2. 文件处理
        • 2.3.1.3. 文件权限属性
      • 2.3.3. rcp、scp、FTP、SFTP 区别
      • 2.3.4. 查找文件 find
      • 2.3.5. 删除 rm
  • 3. 备份 & 压缩
    • 3.1. 命令概述
    • 3.2. 命令详解
      • 3.2.1. 解压缩
        • 3.2.1.1. tar
        • 3.2.1.2. zip unzip
  • 4. 文档编辑
    • 4.1. 命令概述
    • 4.2. 命令详解
      • 4.2.1. grep
  • 5. 磁盘管理
    • 5.1. 命令概述
    • 5.2. 命令详解
      • 5.2.1. 磁盘使用
      • 5.2.2. 挂载、卸载
  • 6. 网络通讯
    • 6.1. 命令概述
    • 6.2. 命令详解
      • 6.2.1. ifconfig & nmap & ip
  • 7. 系统管理
    • 7.1. 命令概述
    • 7.2. 详解
      • 7.2.1. 进程查看 & 管理
        • 7.2.1.1. 进程查看
        • 7.2.1.2. 进程查杀 kill & pkill
      • 7.2.2. 系统状态 查看 & 管理
  • 8. 系统设置
    • 8.1. 命令概述
    • 8.2. 详解
      • 8.2.1. rpm & yum
        • 8.2.1.1. rpm
        • 8.2.1.2. yum
      • 8.2.2. 外挂yum & pip
        • 8.2.2.1. 挂载yum源 | 外挂yum源
        • 8.2.2.2. pip
      • 8.2.3. ps
  • 9. 其他
    • 9.1. 名词
    • 9.2. ssh
    • 9.3. Linux 任务设置
      • 9.3.1. 定时任务
      • 9.3.2.

参考

  1. Linux 命令大全–菜鸟教程
  2. 【PHP面试题】写出尽可能多的Linux命令。

1. 实用技能 (常用)

1.1. 基本疑问 解答

1.1.1. 多用户

  1. 多用户登录 Linux 原因:
    用户登录linux的本质是开启一个shell进程版,例如bash进程

  2. su & su -

    • su只是切换了root身份,但Shell环境仍然copy是普通用户的Shell;
    • su - 既切换用户,又切换 shell环境

1.1.2. 系统安装时间

  • 查看Linux系统的安装时间
    1. 第一种方法:
      先查看系统盘挂到哪个分区上,然后用 dumpe2fs 查看这个磁盘分区 创建的时间;
      # dumpe2fs /dev/sda3|grep -i created
      dumpe2fs 1.42.9 (28-Dec-2013)
      Filesystem created: Mon Apr 1 19:41:00 2019
      
    2. 第二种方法:
      查看 /boot 系统启动目录下的 grub 目录 或 lost+found 目录的时间 ,也可大致看出

1.1.3. 查看版本

  • 查看系统版本

    # 查看Linux内核版本命令(两种方法):
      cat /proc/version
      uname -a
    
    # 查看Linux系统版本的命令(3种方法):
      ## 即可列出  ==所有版本信息:适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。
        lsb_release -a
      ## cat /etc/redhat-release,这种方法只适合Redhat系的Linux:
        cat /etc/redhat-release
          # CentOS release 6.5 (Final)
      ## 3.适用于所有的Linux发行版。
        cat /etc/issue
    
  • 查看软件版本

    # gcc 
      gcc  -v
    # glibc  
      ## glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,
      ## 几乎其它任何运行库都会依赖于glibc。
      ldd --version
    
    

1.1.4. Linux服务的启停

  • Linux 服务的启停

    # 查看所有服务
    chkconfig --list
    # 查看服务状态
    service xxxx status
    # 服务启停
    service xxxx start/stop/restart
    
    
    #启动某服务 
    systemctl start   tomcat.service
    # 停止某服务
    systemctl stop   tomcat.service
    

    参考:Linux学习笔记(3)linux服务管理与启停(开机自启与自定义服务)

1.1.5. 网络配置

  • 网卡配置
    cd /etc/sysconfig/network-scripts
    

1.2. 用户管理 & 密码更改

1.2.1. 用户管理

  • 查看所有用户
    # 查看系统 所有用户
      cat /etc/passwd
      
    
  • 删除用户
    # 单个用户的删除
      userdel 用户名
      ## 删除用户 同时 删除文件
        userdel  -r    # (-r, --remove)	
          # 删除用户的家目录和邮件池(文件),包括它们自身。
          # 必须搜索和手动删除其他文件系统下的相关文件; 谨慎使用 -f 选项;
    # 删除多个用户
    
    
  • 其他命令
    id        // 可以显示真实有效的用户ID(UID)和组ID(GID)。
    usermod   // 用于修改用户的基本信息。
    useradd   // 用于 Linux中创建的新的系统用户。
    groupadd  // 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
    

1.2.2. 更改密码

  • 更改密码
    # 更改root密码
      sudo passwd root
    # 批量更改用户密码
      cat /etc/passwd | tail -100 |grep 'zx' |cut -d : -f 1 >/tmp/chpwd_zx
      vim /tmp/chpwd_zx
      ## 格式: 账号:密码
      chpasswd < /tmp/chpwd_zx
    

1.3. 查看端口 及 进程/服务

1.3.1. 端口

  1. 查看 端口使用
    #1. 查看到进程占用的端口号
    netstat -anp | grep pid
    # 查看80端口服务端socket占用状况 PID
    netstat -lpn | grep 80
      
    #2. 查看8000端口的使用情况
    lsof -i:8000 
    
    #3. 查看PID为46778的进程服务运行命令的 目录和命令等信息
    ll /proc/46778        # 查看服务目录  
    
    

1.3.2. 进程/服务

  • 查看服务及占用

    #1. 抓取shop服务 PID
    ps -ef |grep shop    
    
    #2. 查看shop服务占用的端口号  --最后一栏为 PID;  
    netstat -npl | grep shop      
    
    
  • 杀死 该用户的所有进程/服务

    #1. 结束所有username的进程(若无效,使用以下方法)
    killall -u username
    
    #2. ps  
    # ^username 表示从一行开始匹配 username;
    # xargs 就是用来把 cut 后的输出逐个以空白符分割后输给 kill。
    ps -ef | grep ^username | cut -c 10-15 | xargs kill -9    
    
    #3. pkill
    pkill -9 -u username       
    
  • 其他命令

    w       // 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
    top     // 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。
    ps      // 用于报告当前系统的进程状态。
    kill    // 用来删除执行中的程序或工作。
    pkill   // 可以按照进程名杀死进程。
    pstree  // 以 树状图 的方式展现进程之间的派生关系,显示效果比较直观。
    killall // 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。
    

1.4. log 日志查看

收集记录各种日志的查看方法;

1.4.1. last

用于显示用户最近登录信息;

last 

-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f <记录文件>  指定记录文件。
-n <显示列数>或-<显示列数>  设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息

last | grep reboot   # 重启
last | grep shutdown # 关机

## 注意:
  '|'# 管道符; 
        # 用于连接两个命令,将左侧的结果作为右侧命令的输入;

1.4.2. history

# 列出所有的历史记录:
history

# 只列出最近10条记录:
history 10 (注,history和10中间有空格)

# 使用命令记录号码执行命令,执行历史清单中的第99条命令
!n        #(!和n中间没有空格)

# 重复执行上一个命令
!!

# 执行最后一次以rpm开头的命令
# (!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
!rpm

# 逐屏列出所有的历史记录:
[zzs@linux]# history | more

# 立即清空history当前所有历史命令的记录
history -c

1.4.3. tail、cat和 watch

1.4.3.1. tail

  • tail

    1. 用于查看文件的内容, -f 常用于查阅正在改变的日志文件。
    tail [参数] [文件]  
    -f 循环读取
    -q 不显示处理信息
    -v 显示详细的处理信息
    -c<数目> 显示的字节数
    -n<行数> 显示文件的尾部 n 行内容
    --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
    -q, --quiet, --silent 从不输出给出文件名的首部
    -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
    
  • 常用命令

    ## tail   倒序查看
    tail  -n  10  test.log   # 查询日志尾部最后10行的日志;
    tail -n +10 test.log     # 查询10行之后的所有日志;
    tail -100f test.log      # 实时监控100行日志;
    
    ## head   正序查看
    head -n 10  test.log    # 查询日志文件中的头10行日志;
    head -n -10  test.log   # 查询日志文件除了最后10行的其他所有日志;
    
  • 查看 实时更新日志

    #1. 实时查看 日志更新
    tail -f /var/log/messages
    watch -d -n 1 cat /var/log/messages
      # -d表示高亮不同的地方,-n表示多少秒刷新一次。
    

注:

  1. 该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容;
    若终止输出,按 Ctrl+C 即可。

  2. 除此之外还有more, less ,dmesg|more;

    # 这样就分页打印了,通过点击空格键翻页
    cat -n test.log |grep "debug" |more     
    

1.4.3.2. cat、tac

用于连接文件并打印到标准输出设备上。
tac :倒序查看;

cat [-AbeEnstTuv] [--help] [--version] fileName

cat /var/log/syslog 
cat /var/log/*.log
cat -n test.log |grep "debug"   # 查询关键字的日志

可以用于制作镜像文件;

1.4.3.3. watch

watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。
watch 监测一个命令的运行结果。

  • watch
    -n:指定指令执行的间隔时间(秒);
    -d:高亮显示指令输出信息不同之处;
    -t:不显示标题。
    
    ## 常用
    watch uptime
    watch -t uptime
    watch -d -n 1 netstat -ntlp
    watch -d 'ls -l | fgrep goface'     # 监测goface的文件
    watch -t -differences=cumulative uptime
    watch -n 60 from            # 监控mail
    watch -n 1 "df -i;df"       # 监测磁盘inode和block数目变化情况
    
    

1.4.4. 附录–log目录

linux日志文件说明:
– 系统不同,目录名称可能不同;

  • 目录
    /var/log/message   # 系统启动后的信息和错误日志,包含mail、corn、daemon、kern和auth等;
    /var/log/secure    # 与安全相关的日志信息
    /var/log/maillog   # 与邮件相关的日志信息
    /var/log/cron      # 与定时任务相关的日志信息
    /var/log/spooler   # 与UUCP和news设备相关的日志信息
    /var/log/boot.log  # 守护进程启动和停止相关的日志消息
    /var/log/wtmp      # 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
    
    /var/log/lastlog   # 记录所有用户的最近信息。
      # 非文本文件,可以使用lastlog进行查看。
    /var/log/yum.log   # 包含使用yum安装软件包的信息。
    

1.5. 其他

1.5.1. options 全称

  • 常用小写options
    # all 所有
    -a
    # directory 目录,domain name 域名
    -d
    # fource 强制,filename 文件名
    -f
    # halt 关停
    -h
    # inquiry 询问,install 安装
    -i
    # keep 保持
    -k
    # list 列出,listen 监听,login-shell 登陆核的方式
    -l
    # mode 模式
    -m
    # line number 行号,internet protocol 即 ip 地址
    -n
    # parents 父节点
    -p
    # query 查询
    -q
    # recur 递归,reboot 重启,remove 移除
    -r
    # tcp 一种连接方式
    -t
    # update 更新,udp 一种连接方式,user 用户
    -u
    # version 版本,verbose 冗长信息
    -v
    # yes 过程中 yes
    -y
    

1.5.2. 常用

  • 常用工具
    ssh     // 是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
    screen  // 是一款由GNU计划开发的用于命令行终端切换的自由软件。
    clear   // 用于清除当前屏幕终端上的任何信息。
    who     // 显示当前登录系统的用户信息。
    date    // 显示或设置系统时间与日期。
    
  • 软件包管理
    yum       // 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
    rpm       // rpm软件包的管理工具。
    apt-get   // Debian Linux发行版中的APT软件包管理工具。
                所有基于Debian的发行都使用这个包管理系统。
                deb包可以把一个应用的文件包在一起,大体如同 Windows上的安装文件。
    
  • 快捷操作
    ctrl + r      //搜索最近输入的相关命令; 先按快捷键,再输入关键字;
    
    

2. 文件管理

2.1. 文件系统概述

2.1.1. 颜色含义

不同颜色文件代表不同类型的文件,具体如下:

  • 蓝色:目录
  • 绿色:可执行文件
  • 红色:压缩文件
  • 浅蓝色:链接文件
  • 白色:普通文件
  • 黄色:设备文件

2.2. 命令概述

命令 解释
cat
chattr
chgrp
chmod
chown 改变某个文件或目录的所有者和所属的组;
cksum
cmp
diff
diffstat
file
find 用来在指定目录下查找文件。
git
gitview
indent
cut
ln
less
locate 用来查找文件或目录。
lsattr
mattrib
mc
mdel
mdir
mktemp
more
mmove
mread
mren
mtools
mtoolstest
mv 为文件或目录改名、或将文件或目录移入其它位置。 ----重命名
od
paste
patch
rcp scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
scp 用于 Linux 之间复制文件和目录。 scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
rm
slocate
split
tee
tmpwatch
touch
umask
which
cp 复制文件或目录; 递归复制:cp -rf code/DBUTILS/ dbuitlds
whereis
mcopy
mshowfat
rhmask
awk
read
updatedb

2.3. 详解

2.3.1. 文件 查看 & 处理 & 属性

2.3.1.1. 文件查看

  • 常用命令
    head // 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
    tail // 用于输入文件中的尾部内容。tail命名默认在屏幕上显示指定文件的末尾10行。
    more // 用来浏览文件档案的内容(只能向前浏览)。
    less // 用来浏览文字档案的内容,允许用户向前或向后浏览文件。
            使用该命令时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
    

2.3.1.2. 文件处理

  • 常用命令

    unlink // 用于系统调用函数 unlink 去删除指定的文件。
    rename // 用字符串替换的方式批量改变文件名。
    cat    // 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
    touch  // 有两个功能:
              一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;
              二是用来创建新的空文件。
    ln     // 用来为文件创建连接,连接类型分为硬连接和符号连接两种,
              默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项(注意:符号链接文件不是一个独立的文件;
              它的许多属性依赖于源文件,所以给符号链接文件设置存取权限时没有意义的);
    
  • 使用实例

    
    
    
    
    # ln  ======    
      ## 源文件:指定连接的源文件。如果使用-s选项创建符号连接,则“源文件”可以是文件或者目录。
          ## 创建硬连接时,则“源文件”参数只能是文件;
      ## 目标文件:指定源文件的目标连接文件;   -- 目的地,要用的地方;
      ln [参数][源文件或目录][目标文件或目录]
        ## 执行该命令后,/usr/mengqc/mub1代表的路径将存放在名为/usr/liu/abc的文件中。
        ln -s /usr/mengqc/mub1 /usr/liu/abc    ## 软连接 使用最多; -s 软连接;
            ## 注意后面的“/” 是将目录里所有的文件链接过去,必须加上,否则,建立的目录显示颜色异常,还不能正常访问,如cd 进不去
          #: 使用 ==上一级目录== 将需要的文件夹连接到该目录下
    
    
    

2.3.1.3. 文件权限属性

  • 常用命令
    setfacl     // 用来变更文件或目录的权限。
    chmod       // 设置文件访问控制列表。
    chgrp       // 用来改变文件或目录所属的用户组。
    chown       // 改变某个文件或目录的所有者和所属的组,
                  该命令可以向某个用户授权,使该用户变成指定文件的所有者、或者改变所属的组。
                  (用户可以是用户或者是用户ID,用户组可以是组名或组ID。
                  文件可以是由空格分开的文件列表,在文件名中可以包含通配符)【只有文件主和超级用户才可以使用该命令】;
        格式:
          chown [-cfhvR] [--help] [--version] user[:group] file...
          chown -R user[:group]  file/dir
        options:
          -R : 处理指定目录以及其子目录下的所有文件;
    

2.3.2. 目录格式 & 目录操作

  • 目录中含空格
    1.使用转义字符“\”
    2.将路径名加双引号"" 或 单引号‘’
      cd /home/work/test\ path #正确
      cd /home/work/“test path” #正确
    

注意:

  1. rm -rf 目录 若中间有空格,一定要转换,否则完蛋

2.3.2.1. 目录操作

  • 常用命令
    cd  // 用来切换工作目录至 dirname。
    mv  // 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
    rm  // 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。
    pwd   // 以绝对路径的方式显示用户当前工作目录。
    tree  // 以树状图列出目录的内容。
    cp    // 用来将一个或过个源文件或者目录复制到指定的目的文件或目录。
    ls    // 用来显示目录列表,在 Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以区分不同类型的文件。
    

2.3.3. rcp、scp、FTP、SFTP 区别

  • 区别

    FTP 基于 TCP 来传输文件,明文传输用户信息和数据。
    
    SFTP 基于 SSH 来加密传输文件,可靠性高,可断点续传。
    SCP 是基于 SSH 来加密拷贝文件,但要知道详细目录,不可断点续传
    
  • 具体分析

    ## scp、rcp
      Linux scp 命令用于 Linux 之间复制文件和目录。  
      scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
      scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
    
      ### 示例
        格式:  scp [可选参数] file_source file_target
        ## 本地 复制到 远程;
          scp local_file remote_username@remote_ip:remote_folder 
          或者 
          scp local_file remote_username@remote_ip:remote_file 
          或者 
          scp local_file remote_ip:remote_folder 
          或者 
          scp local_file remote_ip:remote_file 
        ## 远程 复制到 本地
          ## scp 远程  本地
          scp [email protected](或 IP):/home/root/others/music /home/space/music/1.mp3 
          scp -r www.runoob.com:/home/root/others/ /home/space/music/
    
    ## ftp
      是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,
      它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。
      相比于HTTP,FTP协议要复杂得多。
      复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;
        另一个是数据链路,用来上传或下载数据。
      FTP是基于TCP协议的,因此iptables防火墙设置中只需要放开指定端口(21 + PASV端口范围)的TCP协议即可。 
    
    ## sftp(Secure File Transfer Protocol):
      安全文件传送协议。可以为传输文件提供一种安全的加密方法。
      SFTP与 FTP有着几乎一样的语法和功能。SFTP为SSH的一部份,是一种传输文件到服务器的安全方式。
      在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,
        SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,
        所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
      SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。
      但是,由于这种传输方式使用了加密/解密技术,所以 传输效率比普通的FTP要低得多。
    
      ### 其他功能
        管理文件(包括查看/搜索目录,创建文件夹和组织文件,删除或重命名文件等),sftp是优秀的协议。
    

参考:

  1. 详解Linux中sftp

2.3.4. 查找文件 find

  • find
    # 在/home目录下查找以.txt结尾的文件名
      find /home -name "*.txt"
    # 同上,但忽略大小写
      find /home -iname "*.txt"
      find . -name  "***"        ## 在当前目录中查找;
    

2.3.5. 删除 rm

  • rm
    # 参数
      -i 删除前逐一询问确认。
      -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。  
        -- 无法删除文件夹;
      -r 将目录及以下之档案亦逐一删除。
    

3. 备份 & 压缩

3.1. 命令概述

  • 概述
    命令 解释 命令 解释
    ar bunzip2
    bzip2 bzip2recover
    gunzip unarj
    compress cpio
    dump uuencode
    gzexe gzip
    lha restore
    tar 建立,还原备份文件的工具程序 uudecode
    unzip zip
    zipinfo

3.2. 命令详解

3.2.1. 解压缩

3.2.1.1. tar

  • 用途

    • 用于备份文件;
    • tar是用来建立,还原备份文件的工具程序,它可以加入,解压备份文件内的文件。
  • 使用

    # 格式
      tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>]
          [-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>]
          [-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve]
          [--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete]
          [--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read]
          [--new-volume-script=<Script文件>][--newer-mtime][--no-recursion][--null]
          [--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order]
          [--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files]
          [--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals]
          [--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...]
      
    # 部分options
      -c或--create 建立新的备份文件。
      -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 
      -f<备份文件>或--file=<备份文件> 指定备份文件。
      -t或--list:列出备份文件的内容;
      -v或--verbose 显示指令执行过程。
      -x或--extract或--get 从备份文件中还原文件。
      -z或--gzip或--ungzip 通过gzip指令处理备份文件;
    
    # 实例
      ## 解压 == .tar.gz ==
        tar -xzvf test.tar.gz 
      ## 压缩
        tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
      ## 列出压缩文件内容
        tar -tzvf test.tar.gz 
    
      ## 解压 == .tar ==
        tar -xzf all.tar.gz
        tar xf csdn.tar -C /home/quantum6/work          --解压到指定目录;
    

    参考:grep命令

3.2.1.2. zip unzip

  • 解释
    # options 参数
      -d<目录>:指定文件解压缩后所要存储的目录;
      -n:解压缩时不要覆盖原有的文件;
      -r    递归处理,将指定目录下的所有文件和子目录一并处理。
    
    # 压缩 
      # 将mysql文件夹压缩成mysql.zip
        zip -r mysql.zip mysql 
      # 将文件夹abc和文件def.txt压缩成一个压缩包abcdef.zip
        zip -r abcdef.zip abc def.txt 
    
    # 解压缩 ==
      ## 解压到 /tmp 且不覆盖原有文件; -d
        unzip -n test.zip -d /tmp
      
    

4. 文档编辑

4.1. 命令概述

  • 概述
    命令 解释 命令 解释
    col colrm
    comm csplit
    ed egrep
    ex fgrep
    fmt grep 用于查找文件里符合条件的字符串。
    fold ispell
    jed joe
    join look
    mtype pico
    rgrep sed
    sort spell
    tr expr
    uniq wc
    let

4.2. 命令详解

4.2.1. grep

  • 用途:

    • 用于查找文件里符合条件的字符串。
    • 查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。
    • 若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
  • 格式 & 用法

    # 格式
      grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
    
    # OPTIONS 
      -a 或 --text : 不要忽略二进制的数据。
      -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
      -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
      -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
      -c 或 --count : 计算符合样式的列数。
      -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
      -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
      -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
      -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
      -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
      -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
      -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
      -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
      -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
      -i 或 --ignore-case : 忽略字符大小写的差别。
      -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
      -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
      -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
      -o 或 --only-matching : 只显示匹配PATTERN 部分。
      -q 或 --quiet或--silent : 不显示任何信息。
      -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
      -s 或 --no-messages : 不显示错误信息。
      -v 或 --revert-match : 显示不包含匹配文本的所有行。
      -V 或 --version : 显示版本信息。
      -w 或 --word-regexp : 只显示全字符合的列。
      -x --line-regexp : 只显示全列符合的列。
      -y : 此参数的效果和指定"-i"参数相同。
    
    # 实例
    
    

5. 磁盘管理

包含 磁盘管理 磁盘维护 相关命令;

5.1. 命令概述

  • 概述

    命令 作用 命令 作用
    cd 切换当前工作目录; mount 用于挂载Linux系统外的文件;
    df 文件系统的磁盘使用情况 mmount 挂入MS-DOS文件系统;
    dirs 显示目录堆叠中的记录;??? rmdir 删除空的目录;
    du 显示指定的目录或文件的大小; rmt 通过进程间通信远程控制磁带机
    edquota 预设会使用vi来编辑使用者或群组的磁盘配额设置; stat 显示inode内容;
    eject 退出抽取式设备 tree 以树状图列出目录的内容;
    mcd mtools工具指令,MS_DOS文件系统中切换工作目录; umount 卸载文件系统;
    mdeltree 删除 MSDOS 格式档案及目录; ls 列出目前工作目录所含之文件及子目录;
    mdu 显示MS-DOS目录所占用的磁盘空间; quotacheck 检查磁盘的使用空间与限制;
    mkdir 创建子目录 quotaoff 关闭磁盘空间限制
    mlabel 设定此磁盘的标签; lndir 源目录底下的文件和子目录统统建立起相互对应的符号连接;
    mmd 在MS-DOS文件系统中建立目录。 repquota 关闭磁盘空间限制
    mrd 删除MS-DOS文件系统中的目录。 quotaon 开启磁盘空间限制
    mzip 设置Zip或Jaz磁盘驱动区的保护模式以及执行退出磁盘的动作;
    pwd 立刻得知您目前所在的工作目录的绝对路径名称;
    quota 查询磁盘空间限制,得知已使用的空间;
  • 其他

    mount     // 用户加载文件系统到指定的加载点。
    umount    // 用于卸载已经加载的文件。
    fsck      // 用于检查并且试图修复文件系统中的错误。
    df        // 用于显示磁盘分区上的可使用的磁盘空间。
    du        // 对文件和目录磁盘使用的空间的查看。  
    

5.2. 命令详解

5.2.1. 磁盘使用

  • df
    文件系统的磁盘使用情况;

    # 生成可读格式的磁盘使用信息;
      df -h
    
    
    
  • ls
    列出目前工作目录所含之文件及子目录;
    ls [-alrtAFR] [name...]

  1. cd
    切换工作目录;
    可使用 * 补全目录、文件名称;
    

5.2.2. 挂载、卸载

  • 文件系统
    # 将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下
      mount -o loop /tmp/image.iso /mnt/cdrom
    
    # 卸载
      # umount -v /dev/sda1          通过设备名卸载  
        /dev/sda1 umounted  
      # umount -v /mnt/mymount/      通过挂载点卸载  
        /tmp/diskboot.img umounted 
    

6. 网络通讯

6.1. 命令概述

  • 概述

apachectl arpwatch dip getty
mingetty uux telnet uulog
uustat ppp-off netconfig nc
httpd ifconfig minicom mesg
dnsconf wall netstat ping
pppstats samba setserial talk
traceroute tty newaliases uuname
netconf write statserial efax
pppsetup tcpdump ytalk cu
smbd testparm smbclient shapecfg

  • 其他
    # 网络应用
      curl   // 是一个利用URL规则在命令行下工作的文件传输工具。
      telnet // 用于登录远程主机,对远程主机进行管理。
      mail   // 命令行的电子邮件发送和接收工具。
      elinks // 能实现一个纯文本界面的WWW浏览器,操作方式与"lynx"类似。
    # 网络测试
      ping     // 用于测试主机之间网络的连通性。
      netstat  // 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
      host     // 常用的分析域名查询工具,可以用来测试域名系统工作是否正常。
    # 网络配置
      hostname // 用于显示和设置系统的主机名称。
      ifconfig // 被用于配置和显示Linux内核中网络接口的网络参数。
    

6.2. 命令详解

6.2.1. ifconfig & nmap & ip

  • NetWork 配置

    # 配置生效的问题
    ## ifconfig配置的网络只是当前临时有效,   当计算机重启之后就失效了
    
    ## 2)网络配置永久有效,在/etc/sysconfig/network-scripts/下修改网络接口配置文件:
    a、service network restart 重启服务;
    b、重启计算机
    
  • 测试 局域网已用IP

    • Linux

      # 如果系统没有安装nmap命令,首先安装一下
      yum install -y namp
      
      # 进行ping扫描,打印出对扫描做出响应的主机:  
      nmap -sP 192.168.1.0/24    # 24: 子网掩码:255.255.255.0
      nmap -sP 192.168.0.*
      
      # 仅列出指定网络上的每台主机,不发送任何报文到目标主机: 
      nmap -sL 192.168.1.0/24  
      
      # 探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS 22,23,25,80):  
      nmap -PS 192.168.1.234  
      
      # 使用UDP ping探测主机:
      nmap -PU 192.168.1.0/24  
      
      # 使用频率最高的扫描选项(SYN扫描,又称为半开放扫描),它不打开一个完全的TCP连接,执行得很快: 
      nmap -sS 192.168.1.0/24
      
      1. 在网络寻找所有在线主机
    • windows

      arp -a  # 局域网内与该电脑通信的主机
      

      参考

      1. 在windows命令行批量ping局域网内IP

7. 系统管理

7.1. 命令概述

  • 概述
    命令 解释 命令 解释
    chfn useradd 可用来建立用户帐号, passwd 设定密码,userdel 删除帐号。
    date exit
    finger fwhios
    sleep suspend
    groupadd 创建一个新的工作组,新工作组的信息将被添加到系统文件中。 groupdel
    groupmod halt
    kill last
    lastb login
    logname logout
    ps nice
    procinfo top 实时显示 process 的动态;
    pstree reboot
    rlogin rsh
    sliplogin screen
    shutdown rwho
    su 变更为其他使用者的身份; sudo
    gitps free 显示内存状态。
    swatch tload
    logrotate uname
    chsh userconf
    userdel 删除用户 userdel -r haha usermod
    vlock who
    whoami whois
    newgrp 登入另一个群组。 renice 重新指定一个或多个行程(Process)的优先序(一个或多个将根据参数而定)。
    skill 送个讯号给正在执行的程序,预设的讯息为 TERM (中断) w 显示目前登入系统的用户信息。
    id 用于显示用户的ID,以及所属群组的ID。

7.2. 详解

7.2.1. 进程查看 & 管理

7.2.1.1. 进程查看

7.2.1.2. 进程查杀 kill & pkill

# kill -9 PID
kill -9 123456
TERM(或数字9)表示“无条件终止”;

7.2.2. 系统状态 查看 & 管理

  • top
  • free
    # top
      ## 显示更新十次后退出
        top -n 10
      ## 
    # free : 显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
      ## 
    

8. 系统设置

8.1. 命令概述

命令 解释 命令 解释
reset clear
alias dircolors
aumix bind
chroot clock
crontab declare
depmod dmesg
enable eval
export pwunconv
grpconv rpm
insmod kbdconfig
lilo liloconfig
lsmod minfo
set modprobe
ntsysv mouseconfig
passwd pwconv
rdate resize
rmmod grpunconv
modinfo time
setup sndconfig
setenv setconsole
timeconfig ulimit
unset chkconfig 检查,设置系统的各种服务。
apmd hwclock
mkkickstart fbset
unalias SVGATextMode
gpasswd

8.2. 详解

8.2.1. rpm & yum

  • 区别
    rpm适用于所有环境,而yum要搭建本地yum源才可以使用!yum是上层管理工具,
    自动解决依赖性,而rpm是底层管理工具。

8.2.1.1. rpm

  • 参数

    参数 含义
    -a 查询所有套件;
    -b <完成阶段><套件档>+或-t <完成阶段><套件档>+ 设置包装套件的完成阶段,并指定套件档的文件名称;
    -c 只列出组态配置文件,本参数需配合"-l"参数使用;
    -d 只列出文本文件,本参数需配合"-l"参数使用;
    -e <套件档>或–erase<套件档> 删除指定的套件
    -f <文件>+ 查询拥有指定文件的套件;
    -h或–hash 套件安装时列出标记;
    -i 显示套件的相关信息;
    -i <套件档>或–install<套件档> 安装指定的套件档;
    -l 显示套件的文件列表;
    -p <套件档>+ 查询指定的RPM套件档;
    -q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
    -R 显示套件的关联性信息;
    -s 显示文件状态,本参数需配合"-l"参数使用;
    -U <套件档>或–upgrade<套件档> 升级指定的套件档;
    -v 显示指令执行过程;
    -vv 详细显示指令执行过程,便于排错。
  • 使用实例

    # 安装软件
      rpm -ivh your-package.rpm
    # 卸载软件
      ## 包名可以包含版本号等信息,但是不可以有后缀.rpm
      rpm -e proftpd-1.2.8-1
      rpm -e proftpd-1.2.8
      rpm -e proftpd-
      rpm -e proftpd
    # 查找所有安装过的包含某个字符串sql的软件包
      rpm -qa | grep sql
      
    

8.2.1.2. yum

  • 概述

    • yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
    • 基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系
      并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
    • yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
  • 源的使用

    • 联网用源;
      # 搜索包:
        yum search 包
      # 安装
        yum install -y 包名
      # 查询
        rmp -qa | grep lsb
      
      
  • 命令

    | 命令                               | 解释                                  |
    | :--------------------------------- | :------------------------------------ |
    | **yum  install  ?softwarename**    | 安装                                  |
    | **yum  repolist**                  | 列出设定yum源的信息                   |
    | yum  remove  ??softwarename        | 卸载                                  |
    | **yum  list  ????softwarename**    | 查看软件源中是否有此软件              |
    | yum  list all                      | 列出所有软件名称                      |
    | yum  list installd                 | 列出已经安装的软件名称                |
    | yum  list available                | 列出可以用yum安装的软件名称           |
    | yum  clean all                     | **清空yum缓存**                       |
    | yum makecache                      | 建立 缓存                             |
    | yum  search  ???softwarename       | 根据软件信息搜索软件名字              |
    | yum  whatprovides ??filename       | 在yum源中查找包含filename文件的软件包 |
    | yum  update                        | 更新软件                              |
    | yum  history                       | 查看系统软件改变历史                  |
    | yum  reinstall  ?softwarename      | 重新安装                              |
    | yum  info   ?softwarename          | 查看软件信息                          |
    | yum  groups list                   | 查看软件组信息                        |
    | yum  groups info ????softwaregroup | 查看软件组内包含的软件                |
    | yum  groups install ?softwaregroup | 安装组件                              |
    

8.2.2. 外挂yum & pip

8.2.2.1. 挂载yum源 | 外挂yum源

  • 本地yum

    # == 创建及挂载 ==
      # 创建挂载目录
        mkdir -p /mnt/yum
      # 然后输入挂载命令(把iso镜像文件挂载到/var/rhelImage目录)
        mount -o loop /home/rhel-server-6.8-x86_64-dvd.iso /mnt/yum
      # 查看挂载信息(这个时候可以看到挂载的目录了)
        mount
    
    # == 配置 ==
      ## 目录
        cd /etc/yum.repos.d/
      ## vim ***.repo          ## ***  编辑配置文件;
      [base]
      name=redhat7
      baseurl=file:///mnt/yum
      gpgcheck=0
      enabled=1
    
    # == yum 缓存的清空与重建
      yum clean all
      yum makecache  
    
  • 网络yum

    [ResilientStorage]        # []必须有,内容随便
    name=ResilientStorage     # 名字随便
    baseurl=https:.......     # 网址信息
    enabled=1                 # 启用与否
    gpgcheck=0                # 公私钥匹配;  
    

    注:

    1. 网络yum与本地yum的配置信息差异:baseurl 不同;
    2. .repo中可以包含多个 yum源;
  • 多个源的使用顺序问题

    如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个?
    

    yum配置文件: /etc/yum.conf

    • pkgpolicy:包的策略。一共有两个选项,newest和last;
      • 如果是newest,则yum会安装最新的那个版本。

      • 如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。

      • 如果包在两个yum源中都有,会在下面的文件中按顺序:
        /var/cache/yum/x86_64/6/timedhosts.txt

  • 查找yum源中的软件

    # 查找软件
      # 1
        yum list python\*pip
      # 2
        yum list | grep php
    # 安装软件
      yum install xxx
    

8.2.2.2. pip

8.2.3. ps


9. 其他

9.1. 名词

  1. loop
    loop设备(回环设备)是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后, 就像一个磁盘或光盘一样使用。

9.2. ssh

ssh root@主机ip(或主机域名)   该条命令指使用root用户来登录远程主机
ssh root@主机ip + 命令         不登录主机,仅在主机执行一个命令

9.3. Linux 任务设置

9.3.1. 定时任务

  • 常用命令
    # contab
      contab -e       // 创建定时任务
      * * * * * 命令  // 分、时、日、月、周(每过多长时间去执行,根据我们所设置的分、时、日、月、周)
    # at 命令
      # at 2:00 tomorrow  // 在明天的两点去执行
      at>/home/Jason/do_job // 执行结果是这种格式的
      at>Ctrl + D // 退出
      总体意思,明天两点执行 do_job,最终退出
    
    注:at 命令 是一次性执行,不是循环执行,也不是周期性执行。
    

9.3.2.

你可能感兴趣的:(Linux)