Linux与shell命令行学习

文章目录

  • 走进shell
  • 基本的bash shell命令
    • 2.1 遍历目录 cd
    • 2.2 查看文件和目录列表 ls
    • 2.3 创建文件 touch
    • 2.4 复制文件 cp
    • 2.5 自动补全 tab
    • 2.6 链接文件 ln
    • 2.7 文件重命名 mv
    • 2.8 删除文件 rm
    • 2.9 创建目录 mkdir
    • 2.10 删除目录 rmdir
    • 2.11 查看文件类型 file
    • 2.12 查看整个文件 cat、more、less
    • 2.13 查看部分文件 tail、head
  • 更多的bash shell命令
    • 3.1监测程序 ps、top、kill
      • 探查进程 ps
      • 实时监测进程 top
      • 结束进程 kill、killall
    • 3.2监测磁盘空间
      • 3.2.1挂载存储媒体 mount
      • 3.2.2 卸载 umount
      • 3.2.3 df命令
      • 3.2.4 du命令
    • 3.3处理数据文件
      • 3.3.1 排序数据 sort
      • 3.3.3搜索数据 grep
      • 3.3.4压缩数据 gzip
      • 3.3.5归档数据 tar
  • Linux环境变量

走进shell

快捷键 描述
Ctrl+Shift+加号 放大终端的字体
Ctrl+减号 缩小终端的字体
Ctrl+Shift+C 复制
Ctrl+Shift+V 粘贴
Ctrl+Shift+F 打开find功能,提供文本查找
Ctrl+Shift+N 启动一个新的shell会话
Ctrl+Shift+Q/W 终止当前会话

基本的bash shell命令

常见的Linux目录名称:
Linux与shell命令行学习_第1张图片

2.1 遍历目录 cd

使用 cd 后面既可以跟文件名,也可以跟路径名。
路径参数有两种:
(1)绝对文件路径
绝对文件路径以“/”作为起始,指明虚拟文件系统的根目录。因此,如果要指 向usr目录所包含的bin目录下的用户二进制文件,可以使用如下绝对文件路径:/usr/bin

  • 显示当前会话的目录:pwd
  • 从任意目录跳回主目录:cd 或 cd~

(2)相对文件路径
相对文件路径不以代表根目录的正斜线(/)开头,而是以目录名(如果用户准备切换到当前工作目录下的一个目录)或是 一个特殊字符开始。
有两个特殊字符可用于相对文件路径中:

  • 单点符(.),表示当前目录;
  • 双点符(…),表示当前目录的父目录,也就是上级目录。

2.2 查看文件和目录列表 ls

  • 显示当前目录的文件和列表: ls
  • 可用带-F参数的ls命令轻松区分文件和目录,文件夹后面会有“/”ls -F
  • 显示隐藏文件,文件名以“.”开头:ls -a
  • 列出当前目录下包含的子目录中的文件:ls -F -R
  • 显示了目录中每个文件的更多相关信息:ls -l
  • 用过滤器来决定应该在输出中显示哪些文件或目录:ls -l my_script
    • 问号(?)代表一个字符;
    • 星号(*)代表零个或多个字符。

2.3 创建文件 touch

创建空文件:touch file

2.4 复制文件 cp

对系统管理员来说,在文件系统中将文件和目录从一个位置复制到另一个位置可谓家常便饭。cp命令可以完成这个任务。

  • cp命令需要两个参数——源对象和目标对象:cp _source destination_。当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。
  • 加上-i选项,强制shell询问是否需要覆盖已有文件:cp -i test_one test_two
  • 同样可以使用绝对路径和相对路径进行复制:
    • cp -i test_one /home/test/doc
    • cp -i test_one doc/
  • 如果需要将一个带有很长的源对象名的文件复制到当前工作目录中时,单点符能够简化该任务:
    • cp -i /etc/NetworkManager/NetworkManager.conf .
  • 在一条命令中递归地复制整个目录的内容:cp -R Scripts/ Mod_Scripts
  • 可以在cp命令中使用通配符,将所有以script结尾的文件复制到Mod_Scripts目录中:
    • cp *script Mod_Scripts/

2.5 自动补全 tab

在使用命令行时,很容易输错命令、目录名或文件名。实际上,对长目录名或文件名来说,输错的几率还是蛮高的。这正是制表键自动补全挺身而出的时候。制表键自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整。

2.6 链接文件 ln

如需要在系统上维护同一文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:符号链接、硬链接。
(1)符号链接
符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。
ln -s data_file sl_data_file
Linux与shell命令行学习_第2张图片
(2)硬链接
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件。引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须事先存在,只不过这次使用ln命令时不再需要加入额外的参数了。
ln code_file hl_code_file
Linux与shell命令行学习_第3张图片
说明:**只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体的文件之间创建链接, **
只能使用符号链接。

2.7 文件重命名 mv

mv指令不仅可以对文件进行重命名,还可以用来移动文件的位置。
移动文件会将文件名从fall更改为fzll,但inode编号和时间戳保持不变。这是因为mv只影响文件名
Linux与shell命令行学习_第4张图片
使用mv命令把文件fzll从/home/christine移动到了/home/christine/Pirctures。和刚才一样,这个操作并没有改变文件的inode编号或时间戳。
Linux与shell命令行学习_第5张图片
说明:和cp命令类似,也可以在mv命令中使用-i参数。这样在命令试图覆盖已有的文件时,就会得到提示。

2.8 删除文件 rm

bash shell中没有回收站或垃圾箱,文件 一旦删除,就无法再找回。因此,在使用rm命令时,要养成总是加入-i参数的好习惯
Linux与shell命令行学习_第6张图片
rm命令的另外一个特性是,如果要删除很多文件且不受提示符的打扰,可以用 **-f **参数强制删除。

2.9 创建目录 mkdir

在Linux中创建目录很简单,用mkdir命令即可。
image.png
要想同时创建多个目录和子目录,需要加入 -p 参数。
Linux与shell命令行学习_第7张图片

2.10 删除目录 rmdir

默认情况下,rmdir命令只删除空目录。因为我们在New_Dir目录下创建了一个文件my_file,所以rmdir命令拒绝删除目录。要解决这一问题,得先把目录中的文件删掉,然后才能在空目录上使用rmdir命令
Linux与shell命令行学习_第8张图片
rmdir并没有-i选项来询问是否要删除目录。可以在整个非空目录上使用rm命令。使用 -r 选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。当需要删除大量目录和文件时,这一点尤为有效。
Linux与shell命令行学习_第9张图片
这种方法虽然可行,但很难用。一口气删除目录及其所有内容的终极大法就是使用带有
-r参数和-f参数
的rm命令。
Linux与shell命令行学习_第10张图片

2.11 查看文件类型 file

Linux与shell命令行学习_第11张图片

2.12 查看整个文件 cat、more、less

(1)cat
只显示文本内容,没有行号显示。
Linux与shell命令行学习_第12张图片
-n 参数会给所有的行加上行号。
Linux与shell命令行学习_第13张图片
如果只想给有文本的行加上行号,可以用 -b 参数,也就是说空行不用显示。
Linux与shell命令行学习_第14张图片
如果不想让制表符出现,可以用 **-T **参数。
Linux与shell命令行学习_第15张图片

(2)more
cat命令的主要缺陷是:一旦运行,你就无法控制后面的操作,cat命令有点繁琐。文件的文本会在显示器上一晃而过。
more命令会显示文本文件的内容,但会在显示每页数据之后停下来。
Linux与shell命令行学习_第16张图片
可以通过按空格键或回车键以逐行向前的方式浏览文 本文件。浏览完之后,按q键退出。
(3)less
less提供了一些极为实用的特性,能够实 现在文本文件中前后翻动,而且还有一些高级搜索功能。
less命令的操作和more命令基本一样,一次显示一屏的文件文本。除了支持和more命令相 同的命令集,它还包括更多的选项。

2.13 查看部分文件 tail、head

(1)tail命令
使用tail命令浏览文件最后10行的效果。
tail log_file
通过加入-n 2使 tail命令只显示文件的最后两行。
tail -n 2 log_file
(2)head命令
显示文件前10行的文本。
head log_file
类似于tail命令,它也支持-n参数,这样就可以指定想要显示的内容了
head -5 log_file

更多的bash shell命令

3.1监测程序 ps、top、kill

探查进程 ps

Linux与shell命令行学习_第17张图片
Linux与shell命令行学习_第18张图片

实时监测进程 top

ps命令虽然在收集运行在系统上的进程信息时非常有用,但也有不足之处:它只能显示某个特定时间点的信息。如果想观察那些频繁换进换出的内存的进程趋势,用ps命令就不方便了。而top命令刚好适用这种情况。top命令跟ps命令相似,能够显示进程信息,但它是实时显示的。

结束进程 kill、killall

kill命令可通过进程ID(PID)给进程发信号。默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号。遗憾的是,你只能用进程的PID而不能用命令名,所以kill命令有时并不好用。
image.png
killall命令非常强大,它支持通过进程名而不是PID来结束进程。killall命令也支持通配符,这在系统因负载过大而变得很慢时很有用。
image.png

3.2监测磁盘空间

3.2.1挂载存储媒体 mount

挂载的意义:Linux文件系统将所有的磁盘都并入一个虚拟目录下。在使用新的存储媒体之前,需要把它放到虚拟目录下。这项工作称为挂载(mounting)。
默认情况下,mount命令会输出当前系统上挂载的设备列表。
Linux与shell命令行学习_第19张图片Linux与shell命令行学习_第20张图片
手动将U盘/dev/sdb1挂载到/media/disk,可用下面的命令:
mount -t vfat /dev/sdb1 /media/disk
Linux与shell命令行学习_第21张图片
Linux与shell命令行学习_第22张图片
Linux与shell命令行学习_第23张图片

3.2.2 卸载 umount

image.png
Linux与shell命令行学习_第24张图片
上例中,命令行提示符仍然在挂载设备的文件系统目录中,所以umount命令无法卸载该镜像文件**。一旦命令提示符移出该镜像文件的文件系统,umount命令就能卸载该镜像文件。**

3.2.3 df命令

Linux与shell命令行学习_第25张图片
Linux与shell命令行学习_第26张图片

3.2.4 du命令

Linux与shell命令行学习_第27张图片
Linux与shell命令行学习_第28张图片

3.3处理数据文件

3.3.1 排序数据 sort

如果你本期望这些数字能按值排序,就要失望了。默认情况下,sort命令会把数字当做字 符来执行标准的字符排序,产生的输出可能根本就不是你要的。解决这个问题可用-n参数,它会告诉sort命令把数字识别成数字而不是字符,并且按值排序。
Linux与shell命令行学习_第29张图片
另一个常用的参数是-M,按月排序。Linux的日志文件经常会在每行的起始位置有一个时间戳,用来表明事件是什么时候发生的。
Linux与shell命令行学习_第30张图片
Linux与shell命令行学习_第31张图片

3.3.3搜索数据 grep

Linux与shell命令行学习_第32张图片
Linux与shell命令行学习_第33张图片
Linux与shell命令行学习_第34张图片

3.3.4压缩数据 gzip

Linux与shell命令行学习_第35张图片
Linux与shell命令行学习_第36张图片

3.3.5归档数据 tar

Linux与shell命令行学习_第37张图片
Linux与shell命令行学习_第38张图片
image.png

Linux环境变量

你可能感兴趣的:(Linux,linux,学习,运维)