Linux使用笔记(一)

144 阅读20分钟

SSH终端常用命令

Ctrl+a光标移动到行首
Ctrl+e光标移动到行尾
Ctrl+c终止当前程序
Ctrl+d删除光标前的字符,或者推出当前中断
Ctrl+l清屏
Ctrl+u剪切光标之前的字符
Ctrl+k剪切光标之后的字符
Ctrl+y复制u/k操作中的内容
Ctrl+r查找最近用过的命令
Ctrl+shift+c复制
Ctrl+shift+v粘贴
tab补全命令或路径
键盘↑和↓键切换使用过的命令

Linux系统的文件目录结构

Linux01.png bin: 全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的。

dev: 该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)

etc: 该目录主要存储一些配置文件。

home: 表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。

proc: process,表示进程,该目录中存储的是Linux运行时候的进程。

root: 该目录是root用户自己的家目录。

sbin: 全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。

tmp: 表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。

usr: 存放的是用户自己安装的软件。类似于windows下的program files。

var: 存放的程序/系统的日志文件的目录。

Mnt: 当外接设备需要挂载的时候,就需要挂载到mnt目录下。

Linux的文件管理

1、pwd命令

用法:#pwd (print working directory,打印查看当前工作目录)

image.png

2、ls命令

用法1:#ls

含义:列出当前工作目录下的所有文件/文件夹的名称

image.png

用法2:#ls 路径

含义:列出指定路径下的所有文件/文件夹的名称

image.png

关于路径(重要):

路径可以分为两种:相对路径、绝对路径。

相对路径: 相对首先得有一个参照物(一般就是当前的工作路径);

相对路径的写法:在相对路径中通常会用到2个符号“./”【表示当前目录下】、“../”【上一级目录下】。

绝对路径: 绝对路径不需要参照物,直接从根“/”开始寻找对应路径

~/:表示主目录,也就是当前登录用户的用户目录。

./:当前目录

../:上一级用户

用法3:#ls 选项 路径

含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。

选项解释:

-l :表示list ,表示以详细列表的形式进行展示

-a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)

-h:以可读性较高的形式显示文件大小

选项可以一起用,与顺序无关。

image.png

3、mkdir命令

指令:mkdir(make directory,创建目录)

语法1:#mkdir 路径 【路径,可以是文件夹名称也可以是包含名称的一个完整路径】

image.png

语法2:#mkdir -p 路径

含义:一次性创建多层目录,添加-p参数,否则会报错

image.png

4、touch命令

指令:touch  

作用:创建文件

语法: #touch 文件路径      【路径可以是直接的文件名也可以是路径】

5、cp命令

指令:cp(copy,复制)

作用:复制文件/文件夹到指定的位置

语法: #cp 被复制的文档路径 文档被复制到的路径

image.png

注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略

6、mv命令

指令:mv(move,移动,剪切)

作用:移动文档到新的位置

语法: #mv 需要移动的文档路径 需要保存的位置路径

7、rm命令

指令:rm (remove,移除、删除)

作用:移除/删除文档

语法:#rm 选项 需要移除的文档路径

选项:

  •  -f:force,强制删除,不提示是否删除
  •  -r:表示递归

8、zip/unzip命令

作用:以zip格式将文件打包压缩或解压zip

zip是Windows和Linux默认都支持的格式,兼容性好

image.png

image.png

9、tar命令

作用:以gzip打包压缩或解压文件

image.png

image.png

参数含义:

-x 解包

-v 显示详细信息

-f 指定文件名

-z 解压缩

说明:gzip格式是Linux中常用的压缩格式,在网上下载的程序包一般都是这个格式,一般名字为XXX.tar.gz

10、wget命令

作用:下载远程文件到Linux主机

命令格式: wget [参数] [URL地址]

image.png

Linux文件权限设置

总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner(所有者)、group(所属组)、others(其他),且3种身份各有read(读)、write(写)、execute(执行)等权限。

Linux的权限查看

image.png

权限设置

语法:#chmod 选项 权限模式 文档

注意事项:

常用选项:

         -R:递归设置权限 (当文档类型为文件夹的时候)

 权限模式:就是该文档需要设置的权限信息

 文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。

注意点:如果想要给文档设置权限,操作者要么是root 用户,要么就是文档的所有者。

字母形式

给谁设置:

         u:表示所有者身份owner(user)

         g:表示给所有者同组用户设置(group)

         o:表示others,给其他用户设置权限

         a:表示all,给所有人(包含ugo部分)设置权限

如果在设置权限的时候不指定给谁设置,则默认给所有用户设置

权限分配方式:

         +:表示给具体的用户新增权限(相对当前)

         -:表示删除用户的权限(相对当前)

         =:表示将权限设置成具体的值(注重结果)【赋值】

例如:

①#chmod  u+x,g+rx,o+r  frp_0.33.0_linux_amd64.tar.gz

②#chmod  u=rwx,g=rx,o=r  frp_0.33.0_linux_amd64.tar.gz

数字形式

经常会在一些技术性的网页上看到类似于 #chmod  777  a.txt  这样的一个权限,这种形式称之为数字形式权限(777)。

读:r4
写:w2
执行:x1
没有任何权限0

例如:需要给frp_0.33.0_linux_amd64.tar.gz设置权限,权限要求所有者拥有全部权限,同组用户拥有读执行权限,其他用户只读。

全部权限(u ):读+ 写+ 执行=4+2+1=7

读和执行(g ):读+ 执行=4+1=5

读权限(o ):读=4

由上得知权限为:754

修改所有者和所属组

属主:所属的用户(文件的主人)

属组:所属的用户组

前面的那个root就是属主

后面的那个root就是属组

这两项信息在文档创建的时候会使用创建者的信息(用户名、用户所属的主组名称)

如果有时候去删除某个用户,则该用户对应的文档的属主和属组信息就需要去修改。

chown(重点)

作用:更改文档的所有者

语法:#chown  -R  username 文档路径

案例:将刚才root用户创建的oo目录,所有者更改为test

#chown  test  oo/

chgrp

作用:更改文档的所属组

语法:#chgrp  -R  groupname  文档的路径

案例:将root用户创建的oo目录,所有者更改为test,并且将所属组也改为test

#chgrp  test  oo/

思考,如何通过一个命令实现既可以更改所有者,也可以修改所属组呢?

答:可以实现的,通过chown命令

       语法:#chown  -R  username:groupname   文档路径

vim编辑器

vim的三种模式

Vim中存在三种模式:命令模式、编辑模式、末行模式

命令模式: 在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等)【打开文件之后默认进入的模式】;

编辑模式: 在该模式下可以对文件的内容进行编辑;

末行模式: 可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等);

Vim的打开文件的方式(4种,要求掌握的就前三种):

#vim 文件路径                                          作用:打开指定的文件

#vim  +数字  文件的路径                   作用:打开指定的文件,并且将光标移动到指定行

#vim  +/关键词  文件的路径             作用:打开指定的文件,并且高亮显示关键词

#vim 文件路径1 文件路径2 文件路径3   作用:同时打开多个文件

注意:先复制出一个/etc/passwd文件,复制当前家目录下(千万不要在etc下直接修改!!!)

后续一切vim命令都是基于/root/passwd文件进行操作。

命令模式

注意:该模式是打开文件的第一个看到的模式(打开文件即可进入)

退出方式:输入:q 按下回车即可

光标移动

①光标移动到行首

按键:shift + 6 或 ^(T字母上面的6,不要按小键盘的6)

②光标移动到行尾

按键:shift + 4 或 $(R字母的左上角的4,不是小键盘的4)

③光标移动到首行

按键:gg

④光标移动到末行

按键:G

⑤翻屏

向上翻屏:按键ctrl + b   (before)        或            PgUp

向下翻屏:按键ctrl + f    (after)           或             PgDn

复制操作

①复制光标所在行

按键:yy

粘贴:在想要粘贴的地方按下p键

②以光标所在行为准(包含当前行),向下复制指定的行数

按键:数字+yy

③可视化复制

按键:ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑↓← →方向键来选中需要复制的区块,按下y键进行复制,最后按下p键粘贴

剪切/删除

①剪切/ 删除光标所在行

按键:dd                          (删除之后下一行上移)

注意:dd严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。

②剪切/ 删除光标所在行为准(包含当前行),向下删除/ 剪切指定的行

按键:数字+dd                (删除之后下一行上移)

③剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移

按键:D                            (删除之后当前行会变成空白行)

④可视化删除

按键:ctrl + v(可视块)或V(可视行)或v(可视),上下左右移动,按下D表示删除选中行,d表示删选中块

撤销/恢复

撤销:u

恢复:ctrl + r                   恢复(取消)之前的撤销操作

扩展1:光标的快速移动

①快速将光标移动到指定的行

按键:数字 + G   

②以当前光标为准向上/ 向下移动n

按键:数字 + ↑ ,数字 + ↓

③以当前光标为准向左/向右移动n字符

按键:数字 + ←,数字 + →

④末行模式下的快速移动方式:移动到指定的行

按键:输入英文“:”,其后输入行数数字,按下回车

编辑模式

在命令模式下按【i】键可以进入编辑模式。

重点看前2个进入方式:i(insert)、a(after)。

退出方式:按下esc键 回到命令模式

末行模式

进入方式:由命令模式进入,按下“:”或者“/(表示查找)”即可进入

退出方式:

                  a. 按下esc

                  b. 连按2次esc键

                  c. 删除末行全部输入字符

①保存操作(write)

输入:“:w”                     保存文件

输入:“:w  路径”               另存为

②退出(quit)

输入:“:q”                          退出文件

③保存并退出

输入:“:wq”                        保存并且退出

④强制 (!)

输入:“:q!”                           表示强制退出,刚才做的修改操作不做保存

⑤调用外部命令

输入:“:!外部命令”

例如:当外部命令执行结束之后按下任意键回到vim编辑器打开的内容

⑥搜索/查找

输入:“/关键词”

例如:我想在passwd文件中搜索“sbin”关键词

在搜索结果中切换上/ 下一个结果:N/n (next

如果需要取消高亮,则需要输入:“:nohl”【no highlight】

⑦替换

:s/搜索的关键词/新的内容                            替换光标所在行的第一处符合条件的内容

:s/搜索的关键词/新的内容/g                        替换光标所在行的全部符合条件的内容

:%s/搜索的关键词/新的内容                         替换整个文档中每行第一个符合条件的内容

:%s/搜索的关键词/新的内容/g                     替换整个文档的符合条件的内容

%表示整个文件

g表示全局(global)

⑧显示行号(临时)

输入:“ :set nu”[number]

如果想取消显示,则输入:“:set nonu”

⑨扩展2:使用vim同时打开多个文件,在末行模式下进行切换文件

查看当前已经打开的文件名称:“:files

在%a的位置有2种显示可能

%a:a=active,表示当前正在打开的文件;

#:表示上一个打开的文件

切换文件的方式:

a. 如果需要指定切换文件的名称,则可以输入:“:open 已经打开的文件名”

b. 可以通过其他命令来切换上一个文件/ 下一个文件

输入:“:bn”切换到下一个文件(back next)

输入:“:bp”切换到上一个文件(back prev)

vim异常退出

什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出:

解决办法:将交换文件(在编程过程中产生的临时文件)删除掉即可

#rm  -f .文件名.swp

交换文件的文件名: .文件名.swp 和原来的文件在同一个目录,且为隐藏文件

vim退出方式

回顾:之前vim中退出编辑的文件可以使用“:q”或者“:wq”。

①“:x”在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出;

②如果文件没有被修改,但是使用wq进行退出的话,则文件的修改时间会被更新;但是如果文件没有被修改,使用x进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。

因此建议以后使用“:x”来进行对文件的保存退出。

但是:小写的x,不要使用大写X,大写X表示对文件进行加密操作。

常用命令

1、passwd命令

作用:修改用户密码

语法:passwd [用户名]

注意:

1.管理员root可以改所有人的密码,密码没有长度要求;

2.普通用户可以改自己密码,密码最小8位;

3.敲密码的时候不会显示任何字符,输入完成后直接回车。

2、man命令

作用:manual,手册(包含了Linux中全部命令手册)查询命令的用法

语法:#man 命令

案例:通过man命令查询ls指令的用法

#man ls

按空格键翻页查看,上下键滚动查看,退出按下q键。

3、history命令

语法:#history

作用1:查看历史指令

作用2:执行历史指令

语法:![number数字]  直接执行执行过的命令

4、clear命令

作用:清除终端中已经存在的命令和结果(信息)。

效果和快捷键Ctrl + L是一样的。

语法:clear

需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。

5、reboot命令

作用:重新启动计算机                

语法1 :#reboot 重启

语法2:#reboot  -w   模拟重启,但是不重启(只写关机与开机的日志信息)

6、ps -ef命令

作用:主要是查看服务器的进程信息

指令:ps

选项含义:

         -e:等价于“-A”,表示列出全部的进程

         -f:显示全部的列(显示全字段)

image.png

列的含义:

UID:该进程执行的用户id;

PID:进程id;

PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程称之为僵尸进程(parent process ID);

C:Cpu的占用率,其形式是百分数;

STIME:进行的启动时间;

TTY:终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起;

TIME:进程的执行时间;

CMD:该进程的名称或者对应的路径;

#ps -ef|grep [进程名称]

image.png

7、kill命令

作用:表示杀死进程            (当遇到僵尸进程或者出于某些原因需要关闭进程的时候)

语法: #kill  [进程PID]           (PID可以用上面的ps -ef命令查看)

与kill命令作用相似但是比kill更加好用的杀死进程的命令:killall

语法: #killall [进程名称]

8、df命令

作用:查看磁盘的空间

语法:#df -h           -h表示以可读性较高的形式展示大小

9、su命令

作用:切换用户

语法:su [用户]

10、管道符:|

作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。

语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。“ | ”符号前面的内容输出作为“ | ”后面的内容的输入,然后输出结果。

10、ping命令

作用:测试网络的连通性

语法:ping [选项] [IP地址或者域名]

11、ifconfig命令

作用:查看网卡信息

语法:#ifconfig

12、netstat命令

作用:显示网络相关信息

语法:netstat [选项]

选项

-tlun 查看本机监听的端口

-an 查看本机所有的网络连接

-rn 查看本机路由表

13、shutdown命令

作用:关机或重启

语法:shutdown [选项] 时间

选项

-c 取消前一个关机命令

-h 关机

-r 重启

RPM包

命名规则

RPM 二进制包的命名需遵守统一的命名规则,用户通过名称就可以直接获取这类包的版本、适用平台等信息。

RPM 二进制包命名的一般格式如下:

包名-版本号-发布次数-发行商-Linux平台-适合的硬件平台-包扩展名

例如,RPM 包的名称是httpd-2.2.15-15.el6.centos.1.i686.rpm,其中:

  • httped:软件包名。这里需要注意,httped 是包名,而 httpd-2.2.15-15.el6.centos.1.i686.rpm 通常称为包全名,包名和包全名是不同的,在某些 Linux 命令中,有些命令(如包的安装和升级)使用的是包全名,而有些命令(包的查询和卸载)使用的是包名,一不小心就会弄错。

  • 2.2.15:包的版本号,版本号的格式通常为主版本号.次版本号.修正号

  • 15:二进制包发布的次数,表示此 RPM 包是第几次编程生成的。

  • el*:软件发行商,el6 表示此包是由 Red Hat 公司发布,适合在 RHEL 6.x (Red Hat Enterprise Unux) 和 CentOS 6.x 上使用。

  • centos:表示此包适用于 CentOS 系统。

  • i686:表示此包使用的硬件平台,目前的 RPM 包支持的平台如表 1 所示:

    平台名称适用平台信息
    i386386 以上的计算机都可以安装
    i586686 以上的计算机都可以安装
    i686奔腾 II 以上的计算机都可以安装,目前所有的 CPU 是奔腾 II 以上的,所以这个软件版本居多
    x86_6464 位 CPU 可以安装
    noarch没有硬件限制
  • rpm:RPM 包的扩展名,表明这是编译好的二进制包,可以使用 rpm 命令直接安装。此外,还有以 src.rpm 作为扩展名的 RPM 包,这表明是源代码包,需要安装生成源码,然后对其编译并生成 rpm 格式的包,最后才能使用 rpm 命令进行安装。

RPM包默认安装路径

通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 1 所示的目录中。

安装路径含 义
/etc/配置文件安装目录
/usr/bin/可执行的命令安装目录
/usr/lib/程序所使用的函数库保存位置
/usr/share/doc/基本的软件使用手册保存位置
/usr/share/man/帮助文件保存位置


RPM 包的默认安装路径是可以通过命令查询的。

除此之外,RPM 包也支持手动指定安装路径,但此方式并不推荐。因为一旦手动指定安装路径,所有的安装文件会集中安装到指定位置,且系统中用来查询安装路径的命令也无法使用(需要进行手工配置才能被系统识别),得不偿失。

与 RPM 包不同,源码包的安装通常采用手动指定安装路径(习惯安装到 /usr/local/ 中)的方式。既然安装路径不同,同一 apache 程序的源码包和 RPM 包就可以安装到一台 Linux 服务器上(但同一时间只能开启一个,因为它们需要占用同一个 80 端口)。

实际情况中,一台服务器几乎不会同时包含两个 apache 程序,管理员不好管理,还会占用过多的服务器磁盘空间

RPM 包的安装

安装 RPM 的命令格式为:

[root@localhost ~]# rpm -ivh 包全名

注意一定是包全名。涉及到包全名的命令,一定要注意路径,可能软件包在光盘中,因此需提前做好设备的挂载工作。

此命令中各选项参数的含义为:

  • -i:安装(install);
  • -v:显示更详细的信息(verbose);
  • -h:打印 #,显示安装进度(hash);

如果还有其他安装要求(比如强制安装某软件而不管它是否有依赖性),可以通过以下选项进行调整:

  • -nodeps:不检测依赖性安装。软件安装时会检测依赖性,确定所需的底层软件是否安装,如果没有安装则会报错。如果不管依赖性,想强制安装,则可以使用这个选项。注意,这样不检测依赖性安装的软件基本上是不能使用的,所以不建议这样做。
  • -replacefiles:替换文件安装。如果要安装软件包,但是包中的部分文件已经存在,那么在正常安装时会报"某个文件已经存在"的错误,从而导致软件无法安装。使用这个选项可以忽略这个报错而覆盖安装。
  • -replacepkgs:替换软件包安装。如果软件包已经安装,那么此选项可以把软件包重复安装一遍。
  • -force:强制安装。不管是否已经安装,都重新安装。也就是 -replacefiles 和 -replacepkgs 的综合。
  • -test:测试安装。不会实际安装,只是检测一下依赖性。
  • -prefix:指定安装路径。为安装软件指定安装路径,而不使用默认安装路径。