• 03、新手必须掌握的Linux命令


    Ⅰ. 常用系统工作命令

    1. echo 命令

       echo命令用于在终端输出字符串货变量提取后的值,格式为"echo [字符串 | $变量]"

     例:把指定字符串"LinxuHat"输出到终端屏幕的命令为:

    [root@linuxprobe Desktop]# echo LinuxHat

       该命令会在终端屏幕上显示如下信息:

    LinuxHat

       使用$变量的方式提取变量SHELL的值,并将其输出到屏幕上:

    [root@linuxprobe Desktop]# echo $SHELL

    /bin/bash

    2. date 命令

       date命令用于显示及设置系统的时间或日期,格式为"date [选项] [+指定的格式]"

    参数

    作用

    %t

    跳格

    %H

    小时(00..23)

    %I

    小时(01..12)

    %M

    分钟(00..59)

    %S

    秒(00..61)

    %j

    一年中的第几天 (001..366)

       按照默认格式查看当前系统时间的date命令如下所示:

    [root@linuxprobe Desktop]# date

    Tue Aug 13 17:36:08 CST 2019

       按照"年-月-日 小时:分钟:秒"的格式查看当前系统时间的date命令如下所示:

    [root@linuxprobe Desktop]# date "+%Y-%m-%d %H:%M:%S"

    2019-08-13 17:37:57

       将系统的当前时间设置为2019年9月1日9点0分的date命令如下所示:

    [root@linuxprobe Desktop]# date -s "20190901 9:00:00"

    Sun Sep  1 09:00:00 CST 2019

       再次使用date命令并按照默认的格式查看当前的系统时间,如下所示:

    [root@linuxprobe Desktop]# date

    Sun Sep  1 09:00:43 CST 2019

       date命令中的参数%j可用来查看今天是当年中的第几天

    [root@linuxprobe Desktop]# date "+%j"

    244

    3. reboot 命令

       reboot命令用于重启系统,其格式为reboot:

       由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启,其命令如下:

    [root@linuxprobe Desktop]# reboot

    4. poweroff 命令

       poweroff命令用于关闭系统,其格式为poweroff

       由于关闭计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启,其命令如下:

    [root@linuxprobe Desktop]# poweroff

    5. wget 命令

       wget命令用于在终端中下载网络文件,格式为"wget [参数] 下载地址"

    [root@linuxprobe Desktop]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf

    6. ps 命令

       ps命令用于查看系统中的进程状态,格式为"ps [参数]"

    l  -A 列出所有的行程(包括其他用户的进程)

    l  -u 用户以及其他详细信息

    l  -x 显示没有控制终端的进程

       进程有5种状态,分别为运行、中断、不可中断、僵死与停止

    · R(运行):进程正在运行或在运行队列中等待

    · S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态

    · D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断

    · Z(僵死):进程以及终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放

    · T(停止):进程收到停止信号后停止运行

    [root@linuxprobe Desktop]# ps -aux

    进程状态

     

    7. top 命令

       top命令用于动态地监视进程活动与系统负载等信息,其格式为top

       top命令相当于Windows任务管理器

    [root@linuxprobe Desktop]# top

    top命令的运行界面

     

       · 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)

       · 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数

       · 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等

       · 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量

       · 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

    8. pidof 命令

       pidof命令用于查询某个指定服务进程的PID值,格式为"pidof [参数] [服务名称]"

    [root@linuxprobe Desktop]# pidof sshd

    1805

    9. kill 命令

       kill命令用于终止某个指定PID的服务进程,格式为"kill [参数] [进程PID]"

    [root@linuxprobe Desktop]# kill 1805

    10. killall 命令

       killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:"killall [参数] [进程名称]"

    [root@linuxprobe Desktop]# pidof httpd

    13581 13580 13579 13578 13577 13576

    [root@linuxprobe Desktop]# killall httpd

    [root@linuxprobe Desktop]# pidof httpd

    [root@linuxprobe Desktop]#

    Ⅱ. 系统状态监检测命令

    1. ifconfig 命令

       ifconfig命令用于获取网卡配置与网络状态等信息,格式为"ifconfig [网络设备] [参数]"

    [root@linuxprobe Desktop]# ifconfig

     2. uname 命令

       uname命令用于查看系统内核与系统版本等信息,格式为"uname [-a]"

    [root@linuxprobe Desktop]# uname -a

    Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

       顺带一提,如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,其命令以及相应的结果如下:

    [root@linuxprobe Desktop]# cat /etc/redhat-release

    Red Hat Enterprise Linux Server release 7.0 (Maipo)

    3. uptime 命令

       uptime命令用于查看系统的负载信息,格式为"uptime"

    [root@linuxprobe Desktop]# uptime

     23:51:53 up 49 min,  2 users,  load average: 0.05, 0.15, 0.19

    4. free 命令

       free用于显示当前系统中内存的使用量信息,格式为"free [-h]"

    [root@linuxprobe Desktop]# free -h

        · total:内存总量

       · used:已用量

       · free:可用量

       · shared:进程共享的内存量

       · buffers:磁盘缓存的内存量

       · cached:缓存的内存量

    5. who命令

       who命令用于查看当前登入主机的用户终端信息,格式为"who [参数]"

    [root@linuxprobe Desktop]# who

       · 第1列:登录的用户名

       · 第2列:终端设备

       · 第3列:登录到系统的时间

    6. last命令

       last命令用于查看所有系统的登录记录,格式为"last [参数]"

    [root@linuxprobe Desktop]# last

     

    7. history命令

       history命令用于显示历史执行过的命令,格式为"history [-c]"

    说明:

    ① 使用-c参数则会清空所有的命令历史记录

    ② 可以使用"!编码数字" 的方式来重复执行某一次的命令

    [root@linuxprobe Desktop]# history

    8. sosreport命令

       sosreport命令用于手机系统配置及架构信息并输出诊断文档,格式为"sosreport"

    [root@linuxprobe Desktop]# sosreport

       · quit:此处敲击回车来确认收集信息

       · name:此处敲击回车来确认主机编号

       · for:此处敲击回车来确认主机编号

    Ⅲ. 工作目录切换命令

    1. pwd命令

       pwd命令用于显示用户当前所处的工作目录,格式为"pwd [选项]"

    [root@linuxprobe ~]# pwd

    /root

    2. cd命令

       cd命令用于切换工作路径,格式为"cd [目录名称]"

    例:切换到/etc目录中

    [root@linuxprobe ~]# cd /etc

    [root@linuxprobe etc]#

    例:切换到/bin目录中

    [root@linuxprobe etc]# cd /bin

    [root@linuxprobe bin]#

    例:返回到上一次的目录(即/etc目录)

    [root@linuxprobe bin]# cd -

    /etc

    [root@linuxprobe etc]#

    例:快速切换到用户的家目录

    [root@linuxprobe etc]# cd ~

    [root@linuxprobe ~]#

    3. ls命令

       ls命令用于显示目录中的文件信息,格式为"ls [选项] [文件]"

    [root@linuxprobe ~]# ls -al

    total 52

    dr-xr-x---. 17 root root 4096 Aug 13 23:40 .

    drwxr-xr-x. 17 root root 4096 Aug 14  2019 ..

    -rw-------.  1 root root 1032 Aug 14  2019 anaconda-ks.cfg

    -rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout

    -rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile

    -rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc

    drwx------. 10 root root 4096 Aug 13 23:40 .cache

    drwx------. 15 root root 4096 Aug 13 23:37 .config

    -rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc

    drwx------.  3 root root   24 Aug 13 17:40 .dbus

    drwxr-xr-x.  2 root root    6 Aug 13 23:40 Desktop

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Documents

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Downloads

    -rw-------.  1 root root   16 Aug 13 23:37 .esd_auth

    drwx------.  3 root root   19 Aug 13 23:40 .gnome2

    drwx------.  2 root root    6 Aug 13 23:40 .gnome2_private

    -rw-------.  1 root root  314 Aug 13 23:37 .ICEauthority

    -rw-r--r--.  1 root root 1083 Aug 13 17:43 initial-setup-ks.cfg

    drwx------.  3 root root   18 Aug 13 23:37 .local

    drwxr-xr-x.  4 root root   37 Aug 13 23:40 .mozilla

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Music

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Pictures

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Public

    -rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Templates

    drwxr-xr-x.  2 root root    6 Aug 13 23:37 Videos

       若想查看目录属性信息,则需要额外添加一个-d参数。

    例:查看/etc目录的权限与属性信息

    [root@linuxprobe ~]# ls -ld /etc

    drwxr-xr-x. 132 root root 8192 Aug 13 23:42 /etc

    Ⅳ. 文本文件编辑命令

    1. cat命令

       cat命令用于查看纯文本文件(内容较少),格式为"cat [选项] [文件]"

    [root@linuxprobe ~]# cat -n initial-setup-ks.cfg

     

    2. more命令

       more命令用于查看纯文本文件(内容较多的),格式为"more [选项]文件"

    [root@linuxprobe ~]# more initial-setup-ks.cfg

     

    3. head命令

       head命令用于查看纯文本文档的前N行,格式为"head [选项] [文件]"

    [root@linuxprobe ~]# head -n 20 initial-setup-ks.cfg

     

    4. tail命令

       tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为"tail [选项] [文件]"

    [root@linuxprobe ~]# tail -f /var/log/messages

    5. tr命令

       tr命令用于替换文本文件中的字符,格式为"tr [原始字符] [目标字符]"

    例:把anaconda文件的文本全部替换成大写

    [root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]

    6. wc命令

       wc命令用于统计指定文本的行数、字数、字节数,格式为"wc [参数] 文本"

    [root@linuxprobe ~]# wc -l /etc/passwd

    38 /etc/passwd

    7. stat命令

       stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文档名称"

    [root@linuxprobe ~]# stat anaconda-ks.cfg

      File: ‘anaconda-ks.cfg’

      Size: 1032              Blocks: 8          IO Block: 4096   regular file

    Device: fd00h/64768d Inode: 68915660    Links: 1

    Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)

    Context: system_u:object_r:admin_home_t:s0

    Access: 2019-08-14 00:27:15.065788018 +0800

    Modify: 2019-08-14 01:25:23.744928793 +0800

    Change: 2019-08-14 01:25:23.744928793 +0800

     Birth: -

    8. cut命令

       cut命令用于按"列"提取文本字符,格式为"cut [参数] 文本"

    [root@linuxprobe ~]# head -n 2 /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    [root@linuxprobe ~]# cut -d: -f1 /etc/passwd

    root

    bin

    daemon

    adm

    lp

    sync

    shutdown

    halt

    mail

    operator

    games

    ftp

    nobody

    dbus

    polkitd

    unbound

    colord

    usbmuxd

    avahi

    avahi-autoipd

    libstoragemgmt

    saslauth

    qemu

    rpc

    rpcuser

    nfsnobody

    rtkit

    radvd

    ntp

    chrony

    abrt

    pulse

    gdm

    gnome-initial-setup

    postfix

    sshd

    tcpdump

    linuxprobe

    9. diff命令

       diff命令用于比较多个文本文件的差异,格式为"diff [参数] 文件"

    [root@linuxprobe ~]# cat diff_A.txt

    [root@linuxprobe ~]# cat diff_B.txt

       使用diff --brief命令显示比较后的结果,判断文件是否相同:

    [root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt

       使用带有-c参数的diff命令来描述文件内容具体的不同

    [root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt

    Ⅴ. 文件目录管理命令

    1. touch命令

       touch命令用于创建空白文件或设置文件的时间,格式为"touch [选项] [文件]"

       · a  仅修改"读取时间(atime)"

       · m 仅修改"修改时间(mtime)"

       · d  同时修改atime与mtime

    [root@linuxprobe ~]# ls -l anaconda-ks.cfg

    -rw-------. 1 root root 1032 Aug 14  2019 anaconda-ks.cfg

    [root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg

    [root@linuxprobe ~]# ls -l anaconda-ks.cfg

    -rw-------. 1 root root 1079 Aug 14 00:40 anaconda-ks.cfg

    [root@linuxprobe ~]# touch -d "2017-05-04 15:30" anaconda-ks.cfg

    [root@linuxprobe ~]# ls -l anaconda-ks.cfg

    -rw-------. 1 root root 1079 May  4  2017 anaconda-ks.cfg

    2. mkdir命令

       mkdir命令用于创建空白的目录,格式为"mkdir [选项] 目录"

    [root@linuxprobe ~]# mkdir linuxprobe

    [root@linuxprobe ~]# cd linuxprobe

    [root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e

    [root@linuxprobe linuxprobe]# cd a

    [root@linuxprobe a]# cd b

    [root@linuxprobe b]#

    说明:结合-p参数来递归创建出具有嵌套叠层关系的文件目录

    3. cp命令

       cp命令用于复制文件或目录,格式为"cp [选项] 源文件 目录文件"

    说明:在Linux系统中,复制操作具体分为3种情况:

    ① 如果目标文件是目录,则会把源文件复制到该目录中

    ② 如果目标文件也是普通文件,则会询问是否要覆盖它

    ③ 如果目标文件不存在,则执行正常的复制操作

       · -a:相当于-pdr(p、d、r为上述参数)

       · -d:若对象为"链接文件",则保留该"链接文件"的属性

       · -i :若目标文件存在则询问是否覆盖

       · -p:保留原始文件的属性

       · -r :递归持续赋值(用于目录)

    [root@linuxprobe b]# touch install.log

    [root@linuxprobe b]# cp install.log x.log

    [root@linuxprobe b]# ls

    c  install.log  x.log

    [root@linuxprobe b]#

    4. mv命令

       mv命令用于剪切文件或将文件重命名,格式为"mv [选项] 源文件 [目标路径|目标文件名]"

    [root@linuxprobe b]# mv x.log linux.log

    [root@linuxprobe b]# ls

    c  install.log  linux.log

    [root@linuxprobe b]#

    5. rm命令

       rm命令用于删除文件或目录,格式为"rm [选项] 文件"

    [root@linuxprobe b]# rm install.log

    rm: remove regular empty file ‘install.log’? y

    [root@linuxprobe b]# rm -f linux.log

    [root@linuxprobe b]# ls

    c

    [root@linuxprobe b]#

    6. dd命令

       dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为"dd [参数]"

       · if:输入的文件名称

       · of:输出的文件名称

       · bs:设置每个"块"的大小

       · count:设置要复制"块"的个数

    [root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M

    1+0 records in

    1+0 records out

    587202560 bytes (587 MB) copied, 1.3667 s, 430 MB/s

    例:将光盘制作成ISO格式的镜像文件

    [root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso

    7. file命令

       file命令用于查看文件的类型,格式为"file 文件名"

    [root@linuxprobe ~]# file anaconda-ks.cfg

    anaconda-ks.cfg: ASCII text

    [root@linuxprobe ~]# file /dev/sda

    /dev/sda: block special

    Ⅵ. 打包压缩与搜索命令

    1. tar命令

       tar命令用于对文件进行打包压缩或解压,格式为"tar [选项] [文件]"

       · -c:创建压缩文件

       · -x:解开压缩文件

       · -t:查看压缩包内有哪些文件

       · -z:用Gzip压缩或解压

       · -j:用bzip2压缩或解压

       · -v:显示压缩或解压的过程

       · -f:目标文件名

       · -p:保留原始的权限与属性

       · -P:使用绝对路径来压缩

       · -C:指定解压到的目录

    说明:

    ① 一般使用" tar -czvf 压缩包名称.tar.gz 要打包的目录"来进行文件打包压缩操作

    ② 一般使用" tar -xzvf 压缩包名称.tar.gz"来进行文件解压操作

    例:压缩操作

    [root@linuxprobe ~]# tar -czvf etc.tar.gz /etc

    例:解压操作

    [root@linuxprobe ~]# tar -xzvf etc.tar.gz -C /root/etc

    2. grep命令

       grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为"grep [选项] [文件]"

       · -b:将可执行文件(binary)当作文本文件(test)来搜索

       · -c:仅显示找到的行数

       · -i:忽略大小写

       · -n:显示行号

       · -v:反向旋转—仅列出没有"关键词"的行

    [root@linuxprobe ~]# grep /sbin/nologin /etc/passwd

    3. find命令

       find命令用于按照指定条件来查找文件,格式为"find [查找路径] 寻找条件 操作"

       · -name:匹配名称

       · -perm:匹配权限(mode为完全匹配,-mode为包含即可)

       · -user:匹配所有者

       · -group:匹配所有组

       · -mtime -n +n:匹配修改内容的时间(-n指n天以内,+n指n天以前)

       · -atime -n +n:匹配访问文件的时间(-n指n天以内,+n指n天以前)

       · -ctime -n +n:匹配修改文件权限的时间(-n指n天以内,+n指n天以前)

       · -nouser:匹配无所有者的文件

       · -nogroup:匹配无所有组的文件

       · -newer f1 !f2:匹配比文件f1新但比f2旧的文件

       · --type b/d/e/p/l/f:匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)

       · -size:匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)

       · -prune:忽略某个目录

       · -exec `````` { } ;:后面可跟用于进一步处理搜索结果的命令

    例:获取到该目录中所有已host开头的文件列表

    [root@linuxprobe ~]# find /etc -name "host*" -print

    /etc/avahi/hosts

    /etc/host.conf

    /etc/hosts

    /etc/hosts.allow

    /etc/hosts.deny

    /etc/selinux/targeted/modules/active/modules/hostname.pp

    /etc/hostname

    例:在整个系统中搜索权限中包括SUID权限的所有文件

    [root@linuxprobe ~]# find / -perm -4000 -print

    例:在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录

    [root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ ;

    find: ‘/proc/44630/task/44630/fd/6’: No such file or directory

    find: ‘/proc/44630/task/44630/fdinfo/6’: No such file or directory

    find: ‘/proc/44630/fd/6’: No such file or directory

    find: ‘/proc/44630/fdinfo/6’: No such file or directory

    cp: cannot create special file ‘/root/findresults/’: No such file or directory

    cp: cannot overwrite non-directory ‘/root/findresults/linuxprobe’ with directory ‘/home/linuxprobe’

  • 相关阅读:
    破局人工智能:构建AI,与腾讯云一起探索语音应用场景
    破局人工智能:构建AI,与腾讯云一起探索语音应用场景
    浅谈 Objective-C Associated Objects
    一个封装了的选项卡效果js
    getElementById 用法的一个技巧
    用 Javascript 实现的“Dual listbox”(双向选择器)
    Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
    我为什么坚持写博客?
    内存模型
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/CSAH/p/11355658.html
Copyright © 2020-2023  润新知