• linux是继承unix的网络核心而衍生出来的一个适合开发者的操作系统。
  • linux分为许多版本如Ubuntu,centos,suse,debian,redhead等,其中又分为商业版和非商业版,如redhat就是著名的商业版linux
  • 相较于windows,由于linux不需要图像界面,所以linux的运行效率比window高的多。linux通过命令行的形式进行配置,所有操作都可用命令完成,例如常见的pwd、ls、mv、cp、ps等,是linux的基础命令。
  • linux**通过ssh协议连接,走22端口。**
  • linux启动过程可以分为五步:
    • 内核引导启动
    • 运行init
    • 系统初始化
    • 建立终端
    • 用户登录

image.png

注:不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中(存疑:若不运行sync直接shutdown会怎么样?)

  • linux系统目录结构
    • ls 命令可以查看当前目录下的文件
    • pwd 可以查看当前路径

image.png
linux以/为根路径,下有bin,boot,dev等路径
/bin是存放经常使用的命令
/boots存放启动的核心程序,包括连接文件及镜像文件。
/dev是存放外部设备的
/etc**etcetera的缩写,存放所有的系统管理所需要的配置文件和子目录
/home linux中的用户名,可以有/home/a home/b home/c等
/lib 是库library的缩写,存放系统基本的动态连接共享库,类似于window的(dll)(存疑:不太理解dll)
/root系统管理员目录
/mnt临时挂载文件系统时的目录,可在其子目录里看光驱内容
/sbin superuser binaries超级用户的二进制文件,存放管理员使用的系统管理程序
/tmp 存放临时文件
/usr unix shared resources(共享资源) 很多应用程序和文件存在该目录,类似于win的program files
/usr/bin 系统使用的应用程序
/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序
/usr/sre 内核源代码的目录
/var variable变量的意思,通常是系统程序的日志文件会放在/var/log目录下**

  • 一个.代表本级目录 ..代表上一级目录
  • 一个文件名以.开头,是隐藏文件。以默认方式查找时,不显示该目录或文件。
  • 修改文件属性

chmod 修改用户权限
chown 修改所属用户和组
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
bin 文件的第一个属性用 d 表示。d 在 Linux 中代表该文件是一个目录文件。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

当为 d 则是目录
当为 - 则是文件;
若是 l 则表示为链接文档(link file);
若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
image.png
每个文件的属性由左边第一部分的 10 个字符来确定
image.png
从左至右用 0-9 这些数字来表示。

第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。
其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。


Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。
我们可以用chmod 数字数字数字 文件名 来表示修改某个文件权限 可读可写可执行分别对应4,2,1 相加即为权限
r:4
w:2
x:1

其中可以用-R表示递归,即应用于其所有子文件夹

  • hown (change ownerp) : 修改所属用户与组。

chmod (change mode) : 修改用户的权限。
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

  • chgrp 更改文件所属组

Chgrp -R 组名 文件名 (-R为递归)

  • 之前说到,改变属性可以通过数字,现在还有种方式即±的方式

同时 u代表user g代表group o代表other a代表all
+(加入)
-(除去)
=(设定)

r可读
w可写
x可执行

  • 绝对路径与相对路径

绝对路径是以根目录开始写的,而相对路径是以当前路径开始写的
绝对路径为/ 相对路径为当前路径.

ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录 【只有空目录才可删除】删除飞空目录请用rm -f
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 移除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
image.png

  • mkdir

Mkdir [-mp]
m参数为配置文件的参数
而p是创建多个递归目录

  • rmdir [-p]

删除空目录
-p递归删除子目录

  • cp [-adfilprsu] 源 目的

-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-r:递归持续复制,用於目录的复制行为;(常用)
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !

  • rm [-fir] 文件或目录
    选项与参数:

-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除

  • Linux 文件内容查看
    • cat 由第一行开始显示文件内容
    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
    • nl 显示的时候,顺道输出行号!
    • more 一页一页的显示文件内容
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    • head 只看头几行
    • tail 只看尾巴几行

image.png

使用 man [命令]来查看各个命令的使用文档,如:man cp。

举例

  • cat

cat [-AbEnTv]
选项与参数:
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符(存疑)

  • more

一页一页翻,但是并不能向上翻页
空白键 (space):代表向下翻一页;
Enter:代表向下翻『一行』;
/字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。(存疑什么是管线?)

  • head

取出文件前面几行(常用)
语法:
head [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思

  • tail(常用)

取出文件后面几行
语法:
tail [-n number] 文件
选项与参数:
-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
vi是一个linux中自带的文本编辑器
vim是vi的升级版

vim三大模式:
命令模式(Command mode)
输入模式(Insert mode)
底线命令模式(Last line mode)
image.png

命令模式:

在初次启动时,默认进入命令模式

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

    输入模式

    在命令模式下按下i就进入了输入模式。
    在输入模式中,可以使用以下按键:
    · 字符按键以及Shift组合,输入字符
    · ENTER,回车键,换行
    · BACK SPACE,退格键,删除光标前一个字符
    · DEL,删除键,删除光标后一个字符
    · 方向键,在文本中移动光标
    · HOME/END,移动光标到行首/行尾
    · Page Up/Page Down,上/下翻页
    · Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
    · ESC,退出输入模式,切换到命令模式

    底线命令模式

    在命令模式下按下:(英文冒号)就进入了底线命令模式。
    底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
    在底线命令模式中,基本的命令有(已经省略了冒号):
    · q 退出程序
    · w 保存文件
    按ESC键可随时退出底线命令模式。
    点击 ESC : wq 即为保存并退出