Linux Shell学习笔记(1):必须掌握的七大类命令

文章目录

一、执行帮助文档命令(man)

常见执行Linux命令的格式是这样的:

命令名称 [命令参数] [命令对象]

比如:

find /home -name *.txt 

命令意思很简单,查找home下文件后缀名是txt的文件

1. man(查看帮助文档)

main命令用于查看命令的帮助文档

man ls

运行命令在shell终端就会输出 ls 命令的文档信息,包括介绍以及参数等等。

LS(1)                                                                  User Commands                                                                 LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

       --author
              with -l, print the author of each file

       -b, --escape
              print C-style escapes for nongraphic characters

       --block-size=SIZE
              scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes; see SIZE format below

       -B, --ignore-backups
              do not list implied entries ending with ~

       -c     with  -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise:
              sort by ctime, newest first

       -C     list entries by columns

       --color[=WHEN]
              colorize the output; WHEN can be 'always' (default if omitted), 'auto', or 'never'; more info below

       -d, --directory
              list directories themselves, not their contents

输出内容应该很长,可以使用鼠标滚轮向下滑动,或者是按空格键。按q退出帮助文档
当然,你也可以使用命令 man man查看man命令自己的帮助文档,这也是可以的。
输出的帮助文档有很多,也许不知道从何看起,如上输出ls命令的部分帮助文档中,有NAME、SYNOPSIS、DESCRIPTION等大写英文单词,具体含义参照下表(包含主要结构名称,部分命令可能含有结构名称):

结构名称代表含义
NAME命令名称
SYNOPSOS参数的大致使用方法(格式)
DESCRIPTION介绍
EXAMPLES演示(例子)
OVERVIEM默认功能
DEFAULTS具体的可用选项
OPTIONS具体可用选项
ENVIRONMENT环境变量
FILES用到的文件
SEE ALSO相关资料
HISTORY维护历史与联系方式

具体的内容对照相应的输出会更加形象,你可以在你的虚拟机、linux系统的PC或者是云端Linux服务器中运行一下查看一下。

二、 常用系统工作命令(echo、date、reboot、poweroff、wget、ps 、top、pidof、kill、killall)

1. echo(输出命令)

用于在终端输出字符串或者是变量提取后的值echo [字符串|$变量]

2. date(设置系统时间或者格式)

显示或者设置系统的时间,格式:date [-选项] [+指定的格式]
具体的选项可以使用man命令进行查看

3. reboot(重启)

重启计算机(系统),格式:reboot

4. poweroff(关机)

关闭系统(计算机),格式:poweroff

reboot和poweroff命令都涉及了计算机硬件资源的管理权限,所以必须拥有root权限才能运行这两个命令

5. wget (从网站中获取)

个人感觉这个命令算是作用比较大了,wget命令的作用是在终端中下载网络文件。格式:wget [参数] 网址
|参数|作用 |
|–|--|
| -b | 后台下载模式 |
| -P| 下载到指定目录 |
| -t|最大尝试次数 |
| -c| 断点续传 |
| -p|下载页面所有资源,包括图片、视频等 |
| -r | 递归下载 |
这些参数不用死记硬背,要么就是用的多了,自然就记住了,要么就找点法子,其实参数都是英文单词的缩写,后台下载(background -b),最大尝试次数(-t times)断点续传(-c continue),下载到指定目录(-P emmmm,我没想到),递归下载(-r recursion)

6. ps(查看系统进程)

查看系统中进程的状态,格式:ps [参数]
一般ps命令和管道符配合使用效果很好,配合管道符,可以抓取某个指定服务进程相对应的PID码

参数作用
-a显示所有进程,包括其他用户
-u用户以及其他想详细信息
-x显示没有控制终端的进程

Linux系统中有五种常见的进程状态,运行(R)、终端(S)、不可中断(D)、僵死(Z)、停止(T)

7. top (动态监视负载)

用于动态监视进程活动与负载等信息,格式:top
top命令很强大,能够动态查看运维状态,应该算是运维工程师最常用的命令了。
运行效果图下图

top - 22:11:24 up 115 days,  1:30,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 141 total,   1 running, 110 sleeping,   1 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  2041216 total,   247352 free,   516484 used,  1277380 buff/cache
KiB Swap:   969964 total,   969964 free,        0 used.  1330336 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 1400 gdm       20   0  684840  42492   6292 S  1.0  2.1 693:43.38 gsd-color
 7908 root      10 -10  139708  19616  15160 S  0.7  1.0  65:17.09 AliYunDun
 2324 root      20   0  553632  34128      0 S  0.3  1.7 127:08.69 dockerd
 2371 root      20   0  569724  19356    312 S  0.3  0.9 249:59.16 containerd
26270 root      20   0   41776   3580   2976 R  0.3  0.2   0:00.04 top
    1 root      20   0  160116   7480   4740 S  0.0  0.4   0:58.49 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.43 kthreadd
    4 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/0:0H
    6 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 mm_percpu_wq
    7 root      20   0       0      0      0 S  0.0  0.0   0:18.68 ksoftirqd/0
    8 root      20   0       0      0      0 I  0.0  0.0   9:30.99 rcu_sched
    9 root      20   0       0      0      0 I  0.0  0.0   0:00.00 rcu_bh
   10 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
   11 root      rt   0       0      0      0 S  0.0  0.0   0:16.18 watchdog/0
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 cpuhp/0
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
   14 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 netns
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_tasks_kthre
   16 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kauditd
   17 root      20   0       0      0      0 S  0.0  0.0   0:03.22 khungtaskd
   18 root      20   0       0      0      0 S  0.0  0.0   0:00.00 oom_reaper
   19 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 writeback
   20 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kcompactd0
   21 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd
   22 root      39  19       0      0      0 S  0.0  0.0   0:09.50 khugepaged
   23 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 crypto
   24 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kintegrityd
   25 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kblockd
   26 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 ata_sff
   27 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 md
   28 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 edac-poller
   29 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 devfreq_wq
   30 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 watchdogd
   34 root      20   0       0      0      0 S  0.0  0.0   0:03.24 kswapd0
   35 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/u3:0

第一行 ,系统时间、运行时间、登录终端数、系统负载
第二行,进程总数、运行中的进程数,睡眠中的进程数、停止的进程数、僵死的进程数等
第三行,用户占用资源白分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源的百分比

8. pidof(查询服务的PID)

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

9. kill (终止进程)

终止进程(杀死进程),格式:kill [参数] [进程PID]
但是进程状态为D(不可终止)的进程用kill命令也是杀不死的。

10. killall (终止指定文件名称的服务)

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

kill和killall 可以理解为 emmmm,重点狙击和火箭覆盖。

三、系统状态检测命令(ifconfig、unname、uptime、free、who、last、history、sosreport)

1. ifconfig(获取网卡配置与网络状态信息)

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

2. uname(查看系统信息)

查看系统内核和系统版本等信息,具体的参数可以借助man命令查看。

3. uptime(查看系统负载)

查看系统负载信息,格式:uptime

4. free (显示当前系统内存信息)

显示当前系统中内存的使用信息
格式:free [-h]

这个命令可以时刻查看系统的内存使用情况,注意观察内存的使用,避免服务器因为内存耗尽而出现宕机状态

5. who(查看登录用户信息)

查看当前登入主机的用户端信息
格式:who

6. last(查看系统登录记录)

查看所有系统的登录记录last [参数]

如果是多用户的话,这个命令可以输出登录系统的用户信息,包括用户名和用户登录事件等信息

root     pts/0        140.206.249.253  Tue Apr 28 19:41   still logged in
root     pts/0        140.206.249.253  Mon Apr 27 22:13 - 01:37  (03:24)
root     pts/0        140.206.249.253  Sun Apr 26 20:12 - 00:52  (04:40)
root     pts/0        140.206.249.253  Fri Apr 24 22:17 - 01:30  (03:12)
root     pts/0        223.167.213.117  Sun Apr 19 12:49 - 22:02  (09:12)
root     pts/0        223.167.213.117  Sun Apr 12 15:15 - 16:05  (00:50)
gw       pts/0        223.167.213.117  Sun Apr 12 12:51 - 15:14  (02:22)
root     pts/0        223.167.213.117  Sun Apr 12 12:24 - 12:48  (00:23)
root     pts/1        223.167.213.117  Sat Apr 11 14:49 - 20:01  (05:11)
gw       pts/1        140.206.248.74   Sat Apr 11 11:45 - 11:46  (00:00)
root     pts/0        140.206.248.74   Sat Apr 11 11:41 - 14:52  (03:11)

7.history命令(历史执行命令集合)

显示历史执行过的命令。
history [-c]

历史命令会被保存到用户家目录中的。bash_history文件中。Linux系统中以(.)开头的文件代表隐藏文件(ls -a 可以查看隐藏文件),这些文件大多是为系统服务文件

8. sosreport命令(手机系统配置及架构并输出诊断文档)

用于收集系统配置及架构信息并输出诊断文档,格式为:sosreport

这个命令算是比较有用的了,如果你的服务器出现了问题或者故障,需要技术人员远程维修的话,一般是先执行这个命令,输出诊断信息,输出的信息会保存到linux下的对应目录中,同时输出报告的位置、名称、解压密码,然后你就可以发给维修人员或者自己看看到底是哪里出了问题。(其实命令很好记,sos+report 求救报告。。。)

如果你运行了 sosreport 命令。而你的服务器显示

Command 'sosreport' not found

那就是你还没有安装sosreport,使用命令apt install sosreport

root@我的服务器地址怎么能告诉你们呢:~# sosreport

sosreport (version 3.9)

This command will collect system configuration and diagnostic
information from this Ubuntu system.

For more information on Canonical visit:

  https://www.ubuntu.com/

The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.


Press ENTER to continue, or CTRL-C to quit.

Please enter the case id that you are generating this report for []: test1

 Setting up archive ...
 Setting up plugins ...
[plugin:networking] skipped command 'nft list ruleset': required kmods missing: nf_tables.
[plugin:networking] skipped command 'ip -s macsec show': required kmods missing: macsec. Use '--allow-system-changes' to enable collection.
[plugin:networking] skipped command 'ss -peaonmi': required kmods missing: udp_diag, netlink_diag, tcp_diag, unix_diag, inet_diag, af_packet_diag. Use '--allow-system-changes' to enable collection.
[plugin:sar] sar: could not list /var/log/sysstat/*
 Running plugins. Please wait ...

  Starting 1/71  acpid           [Running: acpid]                                 Starting 2/71  anacron         [Running: anacron]                               Starting 4/71  apport          [Running: apport]                                Starting 3/71  apparmor        [Running: apport apparmor]                       Starting 6/71  ata             [Running: apport apparmor ata]                   Starting 5/71  apt             [Running: apport apparmor apt]                   Starting 7/71  block           [Running: apport apparmor apt block]             Starting 8/71  boot            [Running: apparmor apt block boot]               Starting 9/71  ceph            [Running: apt block boot ceph]                   Starting 10/71 cgroups         [Running: apt block ceph cgroups]                Starting 11/71 chrony          [Running: apt ceph cgroups chrony]               Starting 12/71 cloud_init      [Running: apt ceph chrony cloud_init]            Starting 13/71 cron            [Running: apt ceph chrony cron]                  Starting 14/71 crypto          [Running: apt ceph chrony crypto]                Starting 15/71 cups            [Running: apt ceph chrony cups]                  Starting 16/71 date            [Running: ceph chrony cups date]                 Starting 17/71 dbus            [Running: ceph chrony cups dbus]                 Starting 18/71 devicemapper    [Running: ceph chrony cups devicemapper]         Starting 19/71 devices         [Running: ceph chrony cups devices]              Starting 20/71 dpkg            [Running: ceph cups devices dpkg]                Starting 21/71 ebpf            [Running: ceph cups dpkg ebpf]                   Starting 22/71 filesys         [Running: ceph cups ebpf filesys]                Starting 23/71 fwupd           [Running: ceph cups filesys fwupd]               Starting 24/71 gdm             [Running: ceph cups fwupd gdm]                   Starting 25/71 grub2           [Running: ceph fwupd gdm grub2]                  Starting 26/71 hardware        [Running: ceph gdm grub2 hardware]               Starting 27/71 host            [Running: ceph gdm hardware host]                Starting 28/71 i18n            [Running: ceph gdm host i18n]                    Starting 29/71 kernel          [Running: ceph gdm host kernel]                  Starting 30/71 libraries       [Running: ceph gdm kernel libraries]             Starting 31/71 libvirt         [Running: ceph gdm kernel libvirt]               Starting 32/71 login           [Running: ceph gdm kernel login]                 Starting 33/71 logrotate       [Running: ceph kernel login logrotate]           Starting 34/71 logs            [Running: ceph kernel login logs]                Starting 35/71 lvm2            [Running: ceph kernel logs lvm2]                 Starting 36/71 md              [Running: ceph kernel logs md]                   Starting 37/71 memory          [Running: ceph kernel logs memory]               Starting 38/71 multipath       [Running: ceph kernel logs multipath]            Starting 39/71 mysql           [Running: ceph kernel logs mysql]                Starting 40/71 networking      [Running: ceph kernel logs networking]           Starting 41/71 networkmanager  [Running: kernel logs networking networkmanager  Starting 42/71 nginx           [Running: logs networking networkmanager nginx]  Starting 43/71 nscd            [Running: logs networking nginx nscd]            Starting 44/71 ntp             [Running: logs networking nginx ntp]             Starting 45/71 openssl         [Running: logs networking nginx openssl]         Starting 46/71 pam             [Running: logs networking nginx pam]             Starting 47/71 pci             [Running: logs networking nginx pci]             Starting 48/71 perl            [Running: logs networking nginx perl]            Starting 49/71 ppp             [Running: logs networking nginx ppp]             Starting 50/71 procenv         [Running: logs networking nginx procenv]         Starting 51/71 process         [Running: logs networking nginx process]         Starting 52/71 processor       [Running: logs networking process processor]     Starting 53/71 python          [Running: logs networking process python]        Starting 54/71 release         [Running: logs networking python release]        Starting 55/71 sar             [Running: logs networking python sar]            Starting 56/71 scsi            [Running: logs networking python scsi]           Starting 57/71 services        [Running: logs networking python services]       Starting 58/71 snappy          [Running: logs networking python snappy]         Starting 59/71 soundcard       [Running: logs python snappy soundcard]          Starting 60/71 ssh             [Running: logs snappy soundcard ssh]             Starting 61/71 sudo            [Running: logs snappy soundcard sudo]            Starting 62/71 system          [Running: logs snappy soundcard system]          Starting 63/71 systemd         [Running: logs snappy soundcard systemd]         Starting 64/71 systemtap       [Running: logs snappy systemd systemtap]         Starting 65/71 sysvipc         [Running: logs snappy systemd sysvipc]           Starting 66/71 ubuntu          [Running: logs snappy systemd ubuntu]            Starting 67/71 udev            [Running: logs systemd ubuntu udev]              Starting 68/71 usb             [Running: logs systemd ubuntu usb]               Starting 69/71 wireless        [Running: logs systemd ubuntu wireless]          Starting 70/71 x11             [Running: logs systemd ubuntu x11]               Finishing plugins              [Running: systemd ubuntu x11]                    Starting 71/71 xfs             [Running: systemd ubuntu x11 xfs]                Finishing plugins              [Running: systemd ubuntu x11]                    Finishing plugins              [Running: ubuntu x11]                            Finishing plugins              [Running: x11]                                 
  Finished running plugins                                                      
Creating compressed archive...

Your sosreport has been generated and saved in:
  /tmp/sosreport-我的服务器地址怎么能告诉你们呢-test1-2020-04-28-zsupnaz.tar.xz

 Size   3.89MiB
 Owner  root
 md5    f13ddac3ebb349456162a71b3f9e36d3

Please send this file to your support representative.

最后几行就是 生成的报告的位置和名称等。这个命令可以说非常好用了。

四、工作目录切换命令(pwd、cd、ls)

工作目录: 用户当前在系统中的位置。
这一部分的命令是使用频率最高的命令,几乎你进入shell终端你救护用到。

1. pwd(显示当前工作目录)

显示用户当前所处的工作目录 格式pwd 【参数】

使用man 命令查看,可以看到pwd 命令的详细信息

PWD(1)                           User Commands                          PWD(1)

NAME
       pwd - print name of current/working directory

SYNOPSIS
       pwd [OPTION]...

DESCRIPTION
       Print the full filename of the current working directory.

       -L, --logical
              use PWD from environment, even if it contains symlinks

       -P, --physical
              avoid all symlinks

       --help display this help and exit

       --version
              output version information and exit

       If no option is specified, -P is assumed.

       NOTE:  your shell may have its own version of pwd, which usually super‐
       sedes the version described here.  Please refer to your  shell's  docu‐
       mentation for details about the options it supports.

AUTHOR
       Written by Jim Meyering.

REPORTING BUGS
       GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
       Report pwd translation bugs to <http://translationproject.org/team/>

COPYRIGHT
       Copyright  ©  2017  Free Software Foundation, Inc.  License GPLv3+: GNU
       GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
       This is free software: you are free  to  change  and  redistribute  it.
       There is NO WARRANTY, to the extent permitted by law.

2. cd(切换工作目录)

这个不用说了,切换工作路径

3. ls(显示目录中的问价信息)

显示目录中的文件信息
格式ls [参数]
这个命令最常用的参数有a(详细,显示文家大小和隐藏文件)、l(list显示) 等

具体的详细信息,老样子,自己动手运行一下man ls瞅一眼~~

五、文本文件编辑命令(cat、more、head、tail、tr wc、stat、cut、diff、)

1. cat (输出纯文本文档内容【文档较小】)

查看纯文本文件,当然是内筒较少的文件,不然就会出现屏幕一闪而过,而你啥都没看到的状况
格式:cat 选项 文件名
一般使用这个命令我会加上一个-n的参数用于显示行号

2. more(输出纯文本文档内容【文档较大】)

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

阅读配置文件的时候一般使用more命令,当然,你要是闲得DT来度长篇小说,more命令也适合你。它会在屏幕下端给你显示一个百分比的文档阅读进度

3. head(查看文档前n行)

查看纯文本文档的前n行,格式为head [选项] [文件]

head -n 20 文件

这个命令就是查看文件的前20行内容。

4. tail(查看文档后n行)

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

tail -n 20 文件

查看文件的后20行内容

tail -f 文件名
tail -f /var/message

实时查看最新日志文件

5. tr (替换目标文件中的字符)

替换目标文件中的字符,
格式 tr [原始字符] [目标字符]

cat a.txt | tr [a-z] [A-Z]

上面命令 的意思是打开a.txt 文件,替换其中的小写字母为大写字母,( | )是Linux中非常重要的一个符号**“管道符”** 可以理解非一根管道,左边输出的内筒通过管道符输入到右边,作为右边命令的执行参数

6. wc(统计文件)

统计文本的行数、字数、字节数
格式:wc [参数] 文本

我一般把这个命令和find命令组合使用,用来查看文件夹中相应文件的数量

find [文件夹路径] -name [模糊匹配的文件名,如:*.txt] | wc -l

运行命令会输出一个数字,就是你要找的这个类型的文件在目标文件夹中的数量

7. stat(查看文件具体信息)

查看文件的具体信息存储信息,格式为stat 文件名称

root@~~~~~~:/home/test# stat a.txt
  File: a.txt
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 820406      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-28 22:12:46.252720683 +0800
Modify: 2020-04-28 22:12:46.252720683 +0800
Change: 2020-04-28 22:12:46.252720683 +0800
 Birth: -

8. cut(提取文本字符)

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

9. diff(比较多个文本文件的差异)

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

可以使用–brief 参数来确认两个文件是否相同,还可以使用-c参数来详细比较多个文件的差异之处,
检测文件是否被篡改的常用手段

diff --brief a.txt b.txt

如果两份文件内容是一样的,则不会输出任何东西,如果不同,则如下输出:

Files a.txt and b.txt differ

来试试参数-c

*** a.txt       2020-04-28 22:22:20.693747186 +0800
--- b.txt       2020-04-28 22:23:49.573906014 +0800
***************
*** 1 ****
! ▒▒▒▒һ▒▒▒▒▒▒ļ▒▒▒a
\ No newline at end of file
--- 1 ----
! ▒▒▒▒һ▒▒▒▒▒▒ļ▒▒▒b
\ No newline at end of file

上述命令可以通过管道符和其他命令结合使用,看你自己的了~~

六、文件目录管理命令(touch、mkdir、cp、mv、rm、dd、file)

1. touch(创建、设置文件命令)

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

参数作用
-a修改读取时间
-m修改“修改时间”
-d同时修改atime和mtime
ls -l a.txt
-rw-r--r-- 1 root root 19 Apr 28 22:22 a.txt

然后向文件中输入一行字符串(修改时间)

echo "change mtime " > a.txt

再次查看时间发现文件的修改时间已经改变。

 ls -l a.txt
 -rw-r--r-- 1 root root 14 Apr 29 23:30 a.txt

但是黑客不想让别人知道他在这个时候修改了这个文件,然后黑客可以运行touch命令,变更文件修改时间。
把文件的修改时间偷偷修改成原来的时间, 事了拂衣去,深藏功与名~~~

touch -d "2020-4-28 22:22" a.txt
 ls -l a.txt
-rw-r--r-- 1 root root 14 Apr 28 22:22 a.txt

2. mkdir(创建文件夹)

用于创建空白的目录。
格式:mkdir [选项] 目录


mkdir -p a/b/c

-p参数可以创建具有嵌套叠层关系的目录

3. cp(拷贝)

用于拷贝文件,也是一个比较常用的命令
格式:cp [参数] 源文件 目标文件

  • 目标文件是目录(文件夹),怎将源文件拷贝到目标文件夹下
  • 目标文件是普通文件,询问是否要覆盖目标文件
  • 目标文件不存在,正常拷贝
参数作用
-p保留原始文件的属性
-d如果目标文件时链接文件,则保留连接文件的属性
-r递归持续复制(用于目录)
-i若目标文件存在,则询问是否覆盖
-a-pdr

4. mv (移动文件)

用于剪切 复制 文件
格式mv 【目标问路径|目标文件名】
同一个目录对同一个文件使用mv命令相当于对文件进行重命名

5. rm(删库跑路~必备命令)

这个命令用于删除文件。
格式:rm [参数] [文件]

linux系统删除文件时候,会询问是否删除。如果不想老是询问了,可以使用参数 -f 强制删除,如果要删除一个目录 则使用 -r

rm -rf *

这个命令就厉害了,成员的删库跑的梗就是这么来的。意思是删除工作目录想啊任何文件、文件夹
所以使用这个命令要慎重小心点,不然你都能把“系统删除”喽

6. dd(按指定数据块,复制\转换 文件)

用户按照指定大小和个数的数据块复制文件或转换文件
格式:dd [参数]

这个命令有意思了。一般运行这个命令首先必须知道Linux中一个名为/dev/zero 的设备文件**(不占系统存储空间,但是可以提供无穷无尽的数据)**因此可以使用它作为dd命令的输入文件

参数作用
if输入文件的名称
of输出文件的名称
bs设置每个块的大小
count设置要复制的块的个数
dd if=/dev/zero of=file_100 count=1 bs=100M

命令的含义是从/dev/zero 中取出一个大小为100M的数据块,然后保存为file_100文件

 dd if=/dev/zero of=10_file count=1 bs=10M
 
1+0 records in
1+0 records out
10485760 bytes (10 MB, 10MiB) copied, 0.0122317 s, 857 MB/s
total 10256
drwxr-xr-x 2 root root     4096 Apr 30 00:20 ./
drwxr-xr-x 4 root root     4096 Apr 24 22:19 ../
-rw-r--r-- 1 root root 10485760 Apr 30 00:20 10_file
-rw-r--r-- 1 root root       14 Apr 28 22:22 a.txt
-rw-r--r-- 1 root root       19 Apr 28 22:23 b.txt
-rw-r--r-- 1 root root        0 Apr 29 23:22 test.py
ls -lh 10_file
-rw-r--r-- 1 root root 10M Apr 30 00:20 10_file

7. file(查看文件类型)

用于查看文件类型
格式file 文件名

file 10_file
10_file: data

七、打包压缩与搜索命令(tar、grep、find)

1. tar(解压缩)

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

参数很多,用man命令就可以查看具体参数和相关信息

2. grep(搜索)

在文本中执行关键字搜索,平显示匹配的结果
格式:grep [选项] [文件]
|参数| 含义 |
|–|--|
|-b | 将可执行文件(binary)当做文本文件来搜索 |
| -c | 仅显示找到的行数|
| -i | 忽略大小写|
| -n| 显示行号|
| -v| 反向选择——仅列出没有“关键词的行”|

3. find(查找文件或文件夹)

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

find /home -name *.txt | wc -l

查找home目录下一共有多少txt文件

Linux Shell学习笔记(2):关于Linux中的特殊符号、重定向、环境变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值