Blogger Information
Blog 3
fans 0
comment 0
visits 1371
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
Linux 指令
Mr Jing
Original
481 people have browsed it

1、市面上的操作系统:windos 系统(闭源系统),Mac 系统(闭源系统),Linux系统(开源系统),Unix系统
unix 是linux操作系统的前身,unix时间戳是指1970年1月1日 0时0分0秒,1970年是unix元年,也是unix诞生的年份

2、为什么要使用linux操作系统
特点:
稳定性:取决于系统的底层架构,一般情况下Liunx系统能做到长时间不关机,系统一点也不卡。
安全性:开源系统,所有人都可以贡献自己的源代码为Linux系统打补丁。

3、问:开源一定意味着免费么?
答:不一定,有些可能会进行服务收费,例如Redhat(小红帽系统),RedHat 是用 LINUX 核心构架的一个操作系统。RedHat Linux 是目前世界上使用最多的 Linux 操作系统。

4、问:闭源一定收费么?
答:QQ和微信都是免费(只要你开增值服务)。

5、GNU计划:又称革奴计划,(倡导代码开源)

6、GCC :是代码编辑器

7、Linunx 分支:常见的有centos 、redhat、乌班图、debian等等。

8、 /:表示的是根目录
9、bin: 是binary 的缩写里面存放的是二进制文件
10、 /etc: Linux下所有的配置文件都会存放到etc目录。(
11、/home:是所有非root用户家目录的一个集合
12、/root: root用户的家目录。
13、/sbin: sbin表示super bin,里面同样也类似于bin目录,也存放了一些二进制文件,只不过这些命令只能是让超级管理员去运行的。(

14、/usr: 存放着一些用户自己安装的软件,其实类似于windows下的Program Files目录。(
15、/var: (variable)存放着Linux下的一些日志文件,在实际开发的时候一些公司也习惯把Apache 或者 nginx 的站点目录也会放到这个目录中。(

16、基本命令(*)

通用语法格式:#指令名称[选项][操作的目标]
ls命令:
ls 显示当前目录下的文件和文件夹
ls -l 以列表的形式显示当前目录下文件和文件夹,还显示文件权限和创建日期等。
ls -la 以列表的形式显示当前目录下文件和文件夹(包含了隐藏文件(隐藏文件特点是以“.”开头的名字)),还显示文件权限和创建日期等。

clear命令:
清空当前屏幕中全部的命令(其实质是没有清空,只不过是订到上面去了)

su指令
作用:切换用户(switch user)
语法:#su 需要切换到的用户名(用户名可以不写,则表示切换到root用户)
例如:
1、从root用户切换到amdin用户
su admin

2、从admin用户切换到root用户
su root

结论:从用户高权限切低权限用户不需要密码,反之需要密码

cd指令
作用:切换文件目录(change directory)

关于路径:路径分为绝对路径和相对路径

相对路径是相对当前路径地一种表现形式。
特点:只要不是以“/”开头的就是相对路径。
绝对路径是直接从“根”开始的一种路径形式。
特点:以“/”开头的路径称之为绝对路径。

pwd指令
作用:打印当前的工作路径(print working directory)。
例如:在当前用户的家目录中使用pwd命令。

创建文件
命令: touch
语法:touch 文件的名字

创建文件夹
命令:mkdir [make directory]
语法:mkdir 文件夹路径

复制
命令:cp (copy)
语法:cp 需要复制的文件 需要保存的位置
选项说明:
-r: 表示递归。(如果复制的是文件夹,则-r 就不是选项,是必须要加的。)
问题:文档在复制过程中,其名称一般是否变化?
答:不变,数量变化。

移动操作
命令:mv (move)[实际的操作 = 剪切+粘贴]
语法:mv 需要操作的文档 新文档的位置
问题:移动操作会影响什么?
答:路径变化,文件总数量不变,名称不变。
问题:重命名操作会影响什么?
答:名称变,路径不变,文件总数量不变。

删除操作
命令:rm (remove)
语法:rm 【-rf】 需要删除的文档
选项说明:

-r :表示递归
-f (force):表示强制删除,不再提示是否确认要删除。

面试题:
请问使用 root 用户 “rm -rf /”这个命令能不能执行?
答:从语法上讲,该指令可以执行,表示递归删除根下面的所有文件,但是这个操作很危险,不建议执行。

文档查看指令

tail指令
作用:查看一个文件的末n行
语法:#tail -n 文件的路径
说明:-n 可以不写,不写,默认表示10行

head指令
作用:查看一个文件的头n行
语法:#head -n 文件的路径
说明:-n 可以不写,不写,默认表示10行

cat指令
作用:查看某个文件的全部内容(内容是正序的)
语法:#cat 文件的路径1 文件的路径2 文件的路径3 …

vim指令
作用:打开一个文件,显示文件内容
语法:#vim 文件路径

例如:打开 root/log.txt
指令 #vim root/log.txt
退出输入 “q:” 按下回车键即可。

关机重启指令

reboot 指令
作用:重启计算机
语法:#reboot

shutdown 指令
作用:关机
语法:#shutdown -h 时间
now:(shutdown -h now)标识立即关机
+m:(m表示minutes数字)例如 +5,表示5分钟之后关机

halt 指令
作用:关机(关闭内存)
语法:#halt

进阶指令

1、du 指令
作用:du 表示directory used (显示出目录所占的磁盘空间大小的情况)
语法:#du -sh 目录路径
选项说明:
-s :表示 sumary ,汇总统计
-h :表示以较高的可读性的单位进行查看

2、df 指令
作用:df 表示disk free (查看磁盘的剩余空间的情况)
语法:#df -h
选项说明:
-h :表示以较高的可读性的单位进行查看

3、free 指令
作用: 查看内存的使用情况
语法:# free -m
选项说明:
-m :表示以mb为单位进行查看

4、find 指令
作用: 表示根据条件去查询文档的所在位置。
语法:# find 范围路径 选项 选项的值
常见选项说明:
-name :根据名字进行查询
-type :根据文档的类型进行查询 [d 表示文件、f:表示普通文件、s:表示套接字文件、l:表示连接文件,c:表示字符设备文件,b:标识块状设备文件]
-use :根据所有者进行查询
-group :根据所属的用户组进行查询
-size :根据大小进行查询

5、ps 指令
作用: 表示process show ,查看进程

语法:# ps -ef
选项说明:
-e :等价于-A,all,表示全部
-f : 表示full,显示全部的列

6、service 指令
作用: 操作服务的(启动/停止/重启)
语法:# service 服务名 start/stop/restart
或者使用命令 /etc/init.d/服务名 restart 重启服务

7、grep 指令 (重点)
作用: 搜索、过滤,主要用于对文件/内容进行筛选,选出需要的内容
语法:# grep 【选项】关键词 文件路径/内容
常见选项说明:
-v:排除
-E:表示 extension,该语法表示多条件筛选,“|” 表示OR(或)
指令 #grep -E “关键词1|关键词2|关键词3|…” 文件路径或者内容

8、wc 指令
作用:word count,起作用是用于统计文件的各项数值(行,单词数,字节数)
语法:# wc -lwc 文档的路径
常见选项说明:
-l:line缩写,行数
-w:word,单词数
-c:byte,字节数

注意:lwc 选项的顺序,不影响其指令输出的结果的顺序,输出的结果顺序一定是行数、单词数和字节数。

9、管道(重点)
作用:管道严格意义上说其不是指令,其中是一个符号“|”。该符号主要起到辅助的作用,能够将多个指令合在一行上进行操作。主要用在搜索过滤等上面。
语法:#必须在终端中有输出内容的指令 | 有输入的指令 【要求有读取文件内容的需求】
管道的核心理解概念:管道前面的指令的输出其实就是管道后面指令的输入。

案例:
ps -ef | grep php

编辑器命令

1、vim 的打开文件的方式:
指令 #vim 文件路径 作用:打开指定的文件
指令 #vim +数字 文件路径 作用:打开指定的文件,将光标移动到指定行
指令 #vim +/关键词 文件路径 作用:打开指定的文件,并且高亮显示关键词(搜索)

2、光标移动

(1)、光标移动到行首
按键 shift + 6 或者 ^

(2)、光标移动到行末
按键 shift + 4 或者 $

(3)、光标移动到首行行首
按键 gg

(4)、光标移动到末行行首
按键 G [shift + G键]

(5)、翻屏
向上翻屏:按键 ctrl+b (before) 或者pgup
向下翻屏:按键 ctrl+a (after) 或者pgdn

(6)、快速定位到指定的行
数字 G

3、复制操作
(1)、复制光标所在行
按键:yy
粘贴:在想要地粘贴的地方按下p键 【将复制的内容粘贴到贯标所在行地下一行】,如果想将复制的内容粘贴到光标所在行之前,使用大P键

(2)、以光标所在行为准(包含当前行),向下复制指定的行数
按键:数字 + yy

4、剪切/删除
(1)、剪切/删除光标所在行
按键:dd (删除之后下一行上移)

(2)、剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
按键:数字 dd (删除之后下一行上移)

(3)、剪切/删除光标所在的当前行之后的内容(包含当前行),但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白)

5、撤销/恢复
撤销输入:u
恢复:ctrl + r

1、用户管理

(1)、添加用户
语法:#useradd 选项 用户名
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名。
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名。
-u: uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似QQ自选靓号】。
-c:comment,添加注释(选择是否添加)
-s:指定用户登录后所使用的shell 解释器
-d:指定用户登录时的起始目录
-n:取消建立以用户名称为名的群组

案例:创建用户zhangsan 不带任何选项
指令 # useradd zhangsan

验证是否成功:
a、验证 /etc/passwd的最后一行,查看是否有zhangsan的信息
指令 # tail -1 /etc/passwd
b、验证是否存在家目录(在centos下创建好用户之后随之产生一个同名家目录);

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
解释上面命令的含义
用户名:密码:用户id:用户组id:注释:家目录:解释器shell

用户名:创建新用户名称,后期登录的时候需要输入
密码:此密码位置一般情况都是 “X”,表示密码的占位
用户ID:用户的识别符;[-u]
用户组id:该用户所属的主组ID;[-g]
注释:解释该用户是做什么用的;[-c]
家目录:用户登录进入系统之后默认的位置;【-d】
解释器 shell:等待用户进入系统之后,用户输入指令之后,该解释器会收集用户输入的指令,传递给内核处理;【如果解释器是/bin/bash 表示用户可以登录到系统,/sbin/nologin 表示该用户不能登录到系统】

注意:在不添加选项的时候,执行useradd之后会执行一系列的操作
a.创建同名的家目录;
b.创建同名的用户组;

案例:添加选项,创建用户lisi,让李四属于501主组,附加组500,自选靓号 666,并且不能登录到系统,可以写注释为“user lisi”

指令 # useradd -g 501 -G 500 -u 666 -s /sbin/nologin -c “user lisi” lisi

验证是否创建成功:
指令 # id lisi

(2)、修改用户
语法:#usermod 选项 用户名 (usermod 是user modify的缩写,含义是修改用户)
常用选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的id,也可以是组名。
-G:表示指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名。
-u: uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似QQ自选靓号】。
-c:comment,添加注释(选择是否添加)
-s:指定用户登录后所使用的shell 解释器
-d:指定用户登录时的起始目录
-l:修改用户名

  1. 案例:修改zhangsan 用户主组为500 ,附加组改为 501
  2. # usermod -g 500 -G 501 zhangsan
  3. 案例:修改zhangsan 用户名,用户名改为 wangerma
  4. # usermod -l wangerma zhangsan

(3)、设置密码
Linux 不允许没有密码的用户登录到系统,因此前面创建的用户目前都处于锁定状态,需要设置密码之后才能登录计算机。
语法:#passwd 【用户名】
案例:#passwd wangerma

(4)、删除用户
语法:#userdel 选项 用户名 (userdel 是user delete的缩写,含义是删除用户)
常用选项:
-r:表示删除用户的同时,删除其家目录;
案例:删除wangerma 用户
指令 # userdel -r wangerma
注意:已经登录的wangerma 用户删除的时候提示删除失败,但是没有登录的lisi用户可以正常删除。

2、用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,比如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group 文件的更新。

/etc/group 文件中的内容如下:

root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:cheeki
cdrom:x:11:
mail:x:12:exim,postfix

文件结构:
用户组名:密码:用户组ID:组内用户名
密码:X表示占位符,虽然用户组可以设置密码,但是绝大部分的情况下不设置密码;
组内用户名:表示附加组是该组的用户名称;

(1)、用户组添加
语法:#groupadd 选项 用户组名
常用选项:
-g:类似用户添加选项中的“-u”,-g表示选择自己设定一个自定义的用户组ID数字,如果自己不指定,则默认从500之后递增;

案例:使用groupadd 指令创建一个新的用户组,命名为admins
指令 groupadd admins

(2)、用户组编辑
语法:#groupmod 选项 用户组名
常用选项:
-g:类似用户修改选项中的“-u”,-g表示选择自己设定一个自定义的用户组ID数字;
-n:类似于用户修改 “-l”,表示设置新的用户组的名称
案例:修改admins 用户组,将组ID改成520,将名称改为admin123
指令 groupmod -g 520 -n admin123 adnins

(3)、用户组删除
语法:#groupdel 用户组名
指令 groupdel admin123

【注意:当如果需要删除一个组,但是这个组是某个用户的主组时,则不允许删除(附加组是可以的);如果确实需要删除,则先从组内移除所有用户。】

【提示:针对用户和用户组的管理指令,除了passwd指令之外,其他指令一般情况下只有root用户可以执行。】

三、权限

语法:#chmod【选项】 权限模式 文档路径
注意事项:
常用选项:
-R:递归设置权限(当文档类型为文件夹的时候使用)
权限模式:就是该文档需要设置的权限信息
文档:可以是文件,也可以是文件夹,可以是相对路径也可以是绝对路径。
【注意点:如果想要给文档设置权限,操作者要么是root用户,要么就是文档的所有者。】

给谁设置:
u:表示所有者身份 owner (user)。
g:表示所有者同组用户设置 group。
o:表示other,给其他用户设置权限。
a:表示all,给所有人(包含 ugo部分)设置权限

【注意:如果设置权限的时候不指定用户给谁设置,则默认给所有用户设置】

1、权限字符:
r:读
w:写
x:执行
-:表示没有权限

设置多个身份的权限时候,每个身份之间需要通过英文逗号分开。

例如:需要给 /root/test.cfg 文件 (-rw———-)设置权限,要求所有者拥有全部的权限,同组用户拥有读和写权限,其他用户只读权限。

指令 chmod u+x,g+rw,o+r /root/test.cfg
或者
指令 chmod u=x,g=rw,o=r /root/test.cfg

2、数字形式
经常会在网上见到类似于 # chmod 777 a.txt 这样的一个权限,这种形式称之为数字形式权限(777)

读:r 4
写:d 2
执行:x 1
没有任何权限(-):0

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

指令 chmod 754 test.cfg

面试题:用超级管理员设置文档的权限命令shi #chmod -R 731 aaa,请问这个命令有没有什么不合理的地方?
所有者 = 7 = 4 + 2 + 1 = 读 + 写 + 执行
【*】同组用户 = 3 = 2 + 1 = 写 + 执行
其他用户 = 1 = 执行

问题在权限 731 中 3 表示写+执行权限,但是写又必须要打开之后才可以写,因此必须需要具备读权限,因此权限不合理。设置权限时只要出现权限数字2,3一般都是有问题的权限。

【在linux中如果删除以文件,不是看文件有没有对应的权限,而是看文件所在的目录是否有写权限,如果有才可以删除】

3、属主和属组 (用户主组和所属组)

指令:chown
作用:更改文档的所属用户 (change owner)
语法:#chown [-R] 新的username 文档路径


扩展:通过一个命令既可以更改文件所属的用户,也可以修改所属用户组
命令如下:
语法:#chown [-R] username:groupname 文档路径

指令:chgrp
作用:更改文档的所属用户组 (change group)
语法:#chgrp [-R] groupname 文档路径

指令: which (where is)
作用:查询指令的完整路径
语法:#which useradd

三、网络设置

1、ip地址查看
需要的场景:远程连接、配置相关软件时
指令:#ifconfig

得知的信息有:
(1)、有2块网卡,一个加eth0,另一个lo(本地回环网卡,本机ip)
(2)、ip地址是inet addr后面的东西(内网IP)

2、网卡配置文件
位置:/etc/sysconfig/network-scripts/ifcfg-*文件

ONBOOT:表示是否自动连接
BOOTPROTO (COL):网卡启动之后使用的协议,一般情况下是DHCP
HWADDR:硬件地址(mac地址,物理地址),计算机之间的通信都是依赖于mac地址

扩展:针对像网卡配置目录层次比较深的文件,如果需要频繁更改,可以将需要的文件设置一个快捷方式,
将其放在经常操作的目录,以简化后续的打开文件操作。

语法:#ln -s 原始路径 快捷方式路径

案例:将ifcfg-thh0 文件在root家目录下创建快捷方式
指令 ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /root/wangka.conf

3、网络服务操作
可以通过service 指令来对网络的服务进行重启/停止/启动等操作

语法:#service network start/stop/restart (操作所有的网卡设备)

四、ssh
1、简介:
ssh (secure shell,安全外壳协议),该协议有2个常用的作用:远程连接、远程文件传输。
协议使用端口号:默认是22

远程登录可以借助第三方工具(Xshell,finshShell)

五、
在linux 系统中,软件的管理方式有三种:rpm、yum、编译方式。

1、rpm
优点:对于软件包的操作比较简单,通过简单指令即可操作
缺点:
1、安装时需要自行下载软件包
2、安装、卸载软件时需要考虑到依赖关系
3、软件的自定义性比较差,不适合有特殊需要的场景

语法:
查询指令:#rpm -qa 关键词
选项说明:
-q:query 查询
-a:all 所有

卸载指令:#rpm -e 软件包全称 [—nodeps]
选项说明:
-e:卸载
—nodeps:忽略依赖关系

安装指令:#rpm -ivh 软件包路径
选项说明:
-i:install
-v:显示安装过程
-h:以”#”形式显示安装过程

更新指令:#rpm -Uvh 软件包路径
选项说明:
-U:upgrade
-v:显示安装过程
-h:以”#”形式显示安装过程

案例:查询、卸载、安装 firefox浏览器

查询:rpm -qa firefox
卸装:rpm -e firefox
安装:rpm -ivh firefox

2、yum 安装
优点:
1、快速、傻瓜式的软件管理方式
2、在联网情况下,自动从服务器上下载软件包(内、外网服务器均可)
3、自动解决软件依赖关系
缺点:
因其底层实为rpm操作,所以也丧失了对软件的自定义功能。

Yum常用语法:
搜索、查询相关
指令 #yum search [all] 关键词 (依据关键词,查询服务器上的所有包资源)
指令 #yum list [关键词] (列出所有的包,包含已经安装的和可供安装的包)
指令 #yum list installed [关键词] (列出已经安装的包)

安装
注意:操作指令(install)与-y选项可哟颠倒,下同。
指令 #yum [-y] install 关键词 (安装软件包)

卸装
指令 #yum [-y] remove 关键词 (卸载软件包)

更新
指令 #yum [-y] update (更新整个系统,包含内核)
指令 #yum [-y] update [关键词] (更新指定的包)

3、编译安装(难点)

优点:
1、用户可以选择需要的软件功能
2、源码方式,有开发能力的用户,可对源码进行自定义
缺点:
1、需要自行解决依赖关系
2、编译时间较长
3、容易出错,一旦出错,需要重新编译安装

编译安装步骤:
1、下载源码包
2、解压源码包
3、进入解压目录
4、配置安装
5、编译
6、安装

案例:编译安装Nginx
类似于apache 是一款开源的web服务器软件,其默认端口号也是80

1、下载nginx包
nginx官网下载地址:https://nginx.org/en/download.html

2、需要将下载地址在终端输入,进行下载
1、下载指令:#wget https://nginx.org/download/nginx-1.23.4.tar.gz

  1. 2、解压压缩包:
  2. #tar -jxvf 路径 (针对.tar.bz2 格式)
  3. #tar -zxvf 路径 (针对.tar.gz 格式)
  4. 选项:
  5. x:表示解压
  6. v:表示显示解压过程
  7. f:表示指向的文件
  8. jz:都表示解压文件指令格式
  9. 指令:tar -zxvf nginx-1.23.4.tar.gz
  10. 3、进入解压后的目录
  11. 指令#:cd nginx-1.23.4
  12. 4、配置安装
  13. 配置包含:指定安装的位置、需要的模块功能
  14. 指定安装位置使用:--prefix 选项
  15. 例如: --prefix=/usr/local/nginx (表示nginx 安装位置)
  16. 指令 # ./configure --prefix=/usr/local/nginx
  17. 5、编译
  18. 指令 # make
  19. 6、安装
  20. 指令 #make install
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post