一.Linux基础知识概述

最早的Linux的系统是没有图形页面的,全部靠的是各种各样的命令,因此命令是对于linux系统是非常重要的。

1.Linux的特点

  • 与UNIX系统兼容
  • 自由软件和源码公开
  • 性能高和安全性高
  • 便于定制和再开发
  • 互操作性高
  • 全面的多任务与真正的64位操作系统

2.UID的概念

UID就是用户标识码,也就是User ID,是与用户唯一对应。
UID:
0:为超级用户,root用户,拥有最高权限。
1-999:为系统用户,是系统自身拥有的用户。不能登录Linux系统,但必不可少的存在。
1000-65535:为普通用户,可以登录Linux系统,操作自己的文件。
也就说一般的Linux系统的用户就只有65536-1000=64536个用户

3.两种用户(users)的起始符

超级用户:#
普通用户:$

4.文件概念

  • 文件系统:文件系统是磁盘上有特定格式的一片区域,操作系统通过文件系统可以方便地查询和访问其中所包含磁盘块。
  • 文件:文件是指文件系统中存储数据的一个命名的对象。一个文件可以是空文件即没有包含用户数据,但是它仍然为操作系统提供了其他信息。
  • 目录:目录是指其中包含许多文件项目的一类特殊文件,支持文件系统层次结构。文件系统中的每个文件都登记在一个或多个目录中。
  • 子目录:子目录是指被包含在另一个目录中的目录。包含子目录的目录称为父目录。除了root目录,所有的目录都是子目录,并且有它们的父目录。root目录就是作为自己的父目录。
  • 文件名:文件名是用来标志文件的字符串,保存在一个目录文件项当中。
  • 绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
  • 相对路径:相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。

5.文件类型(要求区分)

  • 普通文件:普通文件也称为常规文件,包含各种长度的字符串。核心对这些数据没有进行结构化,只是作为有序的字符序列把它们提交给应用程序。应用程序自己组织和解释这些数据,通常把它们规定为以下类型之一:
    文本文件,数据文件,可执行的二进制程序文件。
  • 目录文件:目录文件是一种特别文件,可以构成文件系统的分层树形结构。如同普通文件一样目录文件也包含数据,但和普通文件的差别是:核心对这些数据进行结构化处理,即它是由成对的”I节点号/文件名“构成的列表。
  • 设备文件:设备文件是一种特别文件,除了在其文件I节点中存放属性信息,他们不包含任何数据。系统利用它们来标记各设备驱动器,核心使用它们与硬件设备通信。
  • 符号链接文件:符号列接文件是一种特殊文件,提供对其他文件的参照。他们存放的数据是文件系统中通向文件的路径。当使用符号链接文件时,核心自动访问所保存的这个路径。

6.内置命令与外置命令区别

内置命令:有些命令构造在Shell内部,从而在Shell内部执行。这种命令称为Shell内置命令也称为内部命令。
外置命令:内置命令以外的可执行命令就是外置命令。

7.硬链接与软连接区别

硬链接:硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号。
软链接:另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。

二.Linux常用命令


bash命令的一般格式

命令名 [选项] [参数1] [参数2]

用户命令(user,su,sudo,userdel)

  • user命令

用于添加一个新的用户,需要有root权限才可以执行成功。
格式:user [选项] [用户名]

  • su命令

用于切换用户,如果不写参数则默认是向root用户转变,此时需要密码.相反,从root用户向其他用户转变时不需要密码。
格式:su 用户名

  • sudo命令

与su不同的是,sudo是可以为普通用户赋予一定权限,使普通用户也能使用一些root才能执行的命令和操作,而这一过程并不需要输入密码。
sudo命令是可以让普通用户不需要密码也可以短暂的获得一个临时的root权限。

  • userdel命令

用于删除已存在的用户。
格式:userdel [选项] 用户名

简单命令(reboot,shutdown,who,echo,date,cal,clear,passwd)

  • reboot命令

重启Linux系统的命令,直接在命令终端输入reboot命令就会使得系统重启。

  • shutdown命令

关机Linux系统的命令

  • who命令

列出所有正在使用系统的用户所用终端名注册到系统的时间

  • echo命令

将命令行中的参数显示到标准输出(屏幕)上。

$ echo a b    c
a b c
$ echo 'a b    c'
a b    c
  • date命令

在屏幕上显示或设置系统时间的日期和时间

$ date
2022年 06月 15日 星期三 16:15:51 CST

$ date -s 11:10:20 设置时间
  • cal命令

显示公元1~9999年中任意一年或者任意一个月的日历
不带任何参数:当前月份的日历。
带一个参数:表示年份
带俩个参数:第一个表示月份,第二个表示年份。

  • clear命令

清除屏幕上的信息。

  • passwd命令

修改使用者的口令

文件命令(cat,tac,nl,more,less,hand,tail,touch)

  • cat命令

cat命令的完整单词是(concatenate)连接文件并打印在标准输出设备上,通常用来显示文件内容,类似DOS的TYPE命令.,也可以用来连接两个或者多个文件
格式:cat [选项] 文件
常见的选项:

  • -b:由 1 开始对输出的行数编号,只不过对于空白行不编号。
  • -n:由 1 开始对所有输出的行数编号。
  • -s:当遇到有连续两行以上的空白行,就合并为一行的空白行。
$ cat f1 (在屏幕上显示文件F1的内容)
$ cat f1 f2 (同时显示文件F1和F2的内容)
$ cat f1 f2 > f3 (将文件F1和F2合并后放入文件F3中)
  • tac命令

tac与cat命令刚好相反,文件内容从最后一行开始显示。

  • nl命令

显示行号
格式:nl [选项] 文件

  • more

more命令是一个基于vi编辑器的文本过滤器,以全屏幕形式显示文件类型内容,每次写时一屏。
格式:more [选项] 文件
常见的选项:

  • -(一个数字):每次显示的行数。
  • -d:在每屏的底部显示更友好的提示信息
  • -c或-p:显示下一屏之前先清屏。
  • less命令

与more命令相似,less命令也用来分屏显示文件内容,但是less命令允许用户向前或向后浏览文件。例如less命令显示文件内容时,可以用上键和下键分别来将屏幕内容向下移动一行和向上移动一行;用Page Up键向上翻页,用Page Down键向下翻页,而more命令没有这些功能,所以在功能上,less命令比more命令更强一些。
格式:less [选项] 文件

  • head命令

head的命令在屏幕上显示指定文件的开头若干行。
格式:head [选项] 文件
选项:

  • -n :后面接数字,代表显示几行的意思
  • tail命令

tail命令在屏幕上显示指定文件的末尾若干行。
格式:tail [选项] 文件
选项:

  • -n:后面接数字,代表显示几行的意思
  • -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
  • touch命令

touch命令可以修改指定文件的时间标签或者创建一个空文件

匹配、显示等命令

  • grep命令

grep命令组在文本文件中查找指定模式词或短语,并在标准输出设备上显示包括给定字符串模式的所有行,包括3个命令:grep,egrep,fgroup命令。grep命令一次只能搜索一个指定的模式;egrep命令等同于grep -E,可以使用扩展字符串模式进行搜索;fgrep命令等同于grep -F是快速搜索命令,检索固定字符串,但不识别正则表达式。
格式:
grep [选项] 查找模式 [文件名1,文件名2…]
grep [选项] [-e 查找模式 | -f 文件] [文件名1,文件名2…]

  • sort命令

sort命令对文本文件的各行进行排序。

  • uniq命令

uniq命令从排好序的文件中去除重复行。

文件查找、比较命令

  • comm命令

comm命令对两个已排序的文件进行逐行比较。

  • diff命令

diff命令比较两个文本文件,并找出它们的不同,比comm命令能够完成更复杂的检查,并且不要求两个文件预先排好序。

  • cmp命令

cmp命令是用来对于两个文件进行比较。

  • find命令

find命令是在指定的目录下查找相应的文件。
find的用法比较多。

复制、删除、移动命令(cp,rm,mv)

  • cp命令

cp命令是将原文件或目录复制到指定的的目标文件或文件。
格式:cp {选项} 复制源 目标
选项:

  • -f:为强制的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • -i:若目标已经存在时,在覆盖时会先询问动作的进行。
  • -p:连同文件的属性一起复制过去,而非使用默认属性。
  • -r:递归持续复制,用作目录的复制
  • rm命令

rm命令删除文件和目录。
格式:rm [选项] 文件名/目录名
选项:

  • -f:强制删除,不会确认。
  • -r:碰到有子目录的时候,这会逐一删除所有的子目录。

也就是说,不考虑安全问题,rm -rf 文件名就可以删除掉大部分的文件。在删除的过程中如果遇到有正在运行的程序而导致无法删除的话,可以通过使用ps命令查看到正在运行的程序,然后使用kill命令使其进程结束,然后再使用删除命令删除文件。

  • mv命令

mv命令对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
格式:
mv [选项] 移动源 目标
mv [选项] 原目录名称 修改后的名称
选项:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
  • -i :若目标文件已经存在时,就会询问是否覆盖。
  • -u :若目标文件已经存在,且 source 比较新,才会升级。

cp命令与mv命令的区别:

cp命令将源文件或者目录复制到目标文件或目录中,而源文件或目录依旧存在。
mv命令对文件或目录重新命名或者将文件从一个目录移到另一个目录中,原目录下的文件消失。

统计命令(wc)

  • wc命令

wc命令统计指定文件的字节数,字数,行数,并将统计结果显示出来。
格式:wc [选项] [文件] …
显示内容:行数 字数 字节数 文件名
选项:

  • -c:统计字节数
  • -l:统计行数
  • -w:统计字数
    注意:要是wc命令行中没有给出文件名,则输出中不出现文件名。

目录命令(mkdir,rmdir,cd,pwd,ls,ln)

  • mkdir命令

mkdir命令用来创建目录的。
格式:mkdir [选项] 目录名字

  • rmdir命令

mkdir命令用来删除目录的。
格式:rmdir [选项] 目录名字

  • cd命令

cd命令是用于改变工作目录的。
格式:cd 相对路径或绝对路径

  • pwd命令

pwd命令是显示当前工作目录的绝对路劲。
格式:pwd
注意: pwd命令不带任何选项或参数就可以知道当前工作在哪个目录下。

$pwd
/home/aba
  • ls命令 (最常用的命令之一)

ls命令是列出指定目录的内容。
格式:ls [选项] [目录或文件]
选项:

  • -a:全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d:仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l:长数据串列出,包含文件的属性与权限等等数据;(常用)
  • ln命令

ln命令是用来创建连接。

改变文件或者目录存取权限的命令

Linux为每个文件都分配一个文件所有者称为文件主,并赋予文件主唯一的注册名。对文件的控制取决于文件主或超级用户root。

  • chown命令

chown命令是改变某个文件或目录的所有者和所属的组。
格式:chown 文件主名 文件名

  • chmod命令

chmod命令是用于改变或设置文件或目录的存储权限。
格式:chown [选项] 用户或组 文件名

  • chgrp命令

chgrp命令是改变文件或目录的用户组。
格式:chgrp [选项] 组名 文件名

  • umask命令

umask命令是用来设置限制新建文件权限的掩码。
格式:umask [-S] mode

帮助命令(man,help)

  • man命令

man命令是格式化并显示某一命令的联机帮助手册页。
格式:man [选项] 命令名
选项:

  • -a:在所有的man帮助手册中搜索
  • -d :主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
  • -f:显示给定关键字的简短描述信息
  • -p:指定内容时使用分页程序
  • -M:指定man手册搜索的路径
  • -w:显示文件所在位置
  • help命令

help命令是可查看所有的设立了内置命令的帮助信息。
格式:help 命令

$ help cd
查看菜单命令的帮助信息,其中cd命令是内置命令

进程管理命令

  • ps命令

ps命令是查看当前系统中运行的进程信息。
格式:ps [选项]

  • nice命令

nice命令是用来修改进程的优先级。
格式:nice [选项] [命令]

  • kill命令

kill命令是用来终止一个进程的运行。
格式:kill -l [信号]

  • sleep命令

sleep命令是是进程暂停执行一段时间。
格式:sleep 时间值

文件压缩解压 (gzip,unzip)

  • gzip命令

gzip命令是对文件进行压缩和解压缩。

  • unzip命令

unzip命令是对zip格式的压缩文件进行解压缩。这种格式的压缩文件带有后缀.zip。


三.文本编辑

Linux提供自带了vim编辑器
vi是unix/linux操作系统中最经典的文本编辑器,只能是编辑字符,不能对字体、段落进行排版;它既可以新建文件,也可以编辑文件;它没有菜单,只有命令,且命令繁多。

1.vi编辑器的工作方式

  • 命令方式:用于输入命令。
  • 输入方式:用于插入文本。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–”的提示字样。
  • ex转义方式:可以进行保存文件、退出编辑器、查找文件、替换、跳入等操作。

使用:

1.在命令输入终端输入vi进入

 $ vi

2.此时是命令模式,可以按下键盘上的“i”,“a”,“o”进入输入模式。也可以输入“:wq”实现保存退出,输入“w”实现保存,输入“q!”实现强制退出不保存。

3.此时是输入模式,此模式下不可以使用鼠标移动光标。可以按下键盘的esc键,返回命令模式。


四.Shell设计

1.shell的特点

  • 可以把已有的命令编入shell脚本使之变成一个全新的命令。
  • 可以直接使用shell内置的命令,使得可以不用创建新的进程。
  • 提供了顺序、条件、循环等控制流程可以使用。
  • 提供了通配符可以使用。

2.shell的种类

Linux 的 Shell 种类众多,常见的有:

  • Bourne Shell(简称sh)
    是Unix的默认shell
  • Bourne Again shell (简称bash)
    是Linux的默认shell
  • C Shell(简称csh)
  • K Shell(简称ksh)

由于简单使用和免费的原因,bash 在日常工作中被广泛使用。


Shell脚本

1.创建脚本文件

  • 用vim文本编辑器创建一个文本文件,扩展名改为改为代表着shell的.sh

2.输入代码

  • 一般第一行输入#!/bin/bash,其中#!表示一个标记,这句的意思就是告诉我们这个脚本用的是bash语言。

3.运行

  • 保存上述文件,并且通过cd命令进入到该目录下。
  • chmod +x ./test.sh #使脚本具有执行权限
  • ./test.sh #执行脚本
Logo

更多推荐