Linux命令补充

Linux命令:

shell和Linux的关系

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

根目录和家目录

Linux的根目录是目录的最高层,所有文件都在根目录下面,而根目录下有bin,etc,root,mnt等文件目录

1
2
3
4
5
6
7
8
9
10
11
12
13
/bin:存放二进制文件,但在Linux中二进制文件是可以被执行的。该目录的命令文件是给普通用户使用(非超级管理员用户)。

/etc:Linux下所有的配置文件都会存放到etc目录。

/home:是所有非root用户家目录的一个集合。

/root:root用户的家目录。

/sbin:super bin,类似于bin目录,也存放了二进制文件,只是这些命令只能让超级管理员去运行。

/usr:存放用户自己安装的软件,类似于windows下的Program Files目录。

/var:存放Linux下的一些日志文件,在实际开发的时候有一些公司也习惯把Apache或nginx的站点目录放到这个目录中。
基本操作命令:

命令行符号介绍:

1
2
3
4
5
6
7
[root@localhost 桌面]#
root:表示当前登录的用户
@:表示“在”
localhost:当前筑基名称
桌面:当前工作目录,"~"表示用户家目录
#:当前的用户身份,Linux中“#”表示超级管理员身份,“$”表示普通用户
exit:退出连接

基本命令:

1
2
3
4
5
6
7
8
9
#pwd  //print working directory,打印当前的工作路径
#mkdir -p a/b/c //创建多级目录
#touch 文件名 //创建文件,文件名可以是一个完整的路径
#ifconfig//查看当前ip地址 centos7之后的版本使用:ip addr
#clear //清空当前屏幕中全部的命令(其实质是没有清空,只是顶到上面去了)
#ctrl + c //停止当前的命令
#ctrl + a //将光标快速的切换到命令行的最前面,a表示ahead
#ctrl + e //将光标快速的切换到命令行的最后面,e表示end
#tab //单击,补全文件名或者文件夹名,双击,列出特定字符开头的文件夹和文件

cd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
change directory,切换目录
语法:#cd 需要切换到的路径(路径可以是相对路径,也可以是绝对路径)
相对路径:相对于当前工作路径来说。
绝对路径:其实其本质上也可以理解成相对路径,只不过它相对于盘符根目录“/”。

//从root用户家目录中切换到admin用户的家目录中
[root@localhost ~]#cd ../home/admin
[root@localhost admin]#
绝对路径的写法:#cd /home/admin

//从admin用户的家目录使用cd切换到root的家目录
[admin@localhost ~]$cd ../../root
bash:cd: ../../root:权限不够
据对路径写法:#cd /root

切换目录时,同样遵循权限的原则,高往低切换没有问题,但是从低往高切换就会提示权限不够。

rm

1
2
3
4
remove
#rm a.php //删除文件
#rm -r a //递归删除目录 -r表示recursion递归
#rm -rf a //强制递归删除,包括a目录 -f表示force强制,不提示确认删除

cp

1
2
3
copy,复制文件
#cp a.php ./dg/a.php //复制文件夹或文件(目的文件夹必须先有)
#cp –r ./dg /etc/dg //递归复制

mv

1
2
3
4
5
6
7
move 移动/重命名 文件或目录	

mv 需要移动的文件 需要移动到的位置(包含文件名)
#mv /home/admin/5.txt /home/5.txt

mv 需要重命名的文件 新的名字
#mv /5.txt /51.txt //目录相同,换名称

ls

1
2
3
4
5
ls +[路径]  查看目录内容
ls -l 表示以列表的形式列出指定路径下的文件夹和文件的名字
ls -a 查看文件下所有文件(包含.开头的隐藏文件。)
ls -al(或者la,结果一样) 查看所有文件夹详细信息
ls -al /tmp 查看/tmp目录中所有文件/文件夹详细信息

文件颜色:

1
2
3
4
5
6
7
8
白色:表示普通文件
蓝色:表示目录
浅蓝色:链接文件
绿色:表示可执行文件
红色:表示压缩文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其他文件

init

1
2
3
4
5
6
7
8
9
10
init + 数字 	Linux的运行模式的切换  	   
0表示关机
1表示单用户模式
2表示多用户模式
3表示切换到命令行模式
4表示未被使用的模式
5表示切换到桌面模式
6表示重启
运行模式的文件位置在/etc/inittab 更改其中的默认模式数字 id:3:initdefault:
runlevel 查看当前运行级别

su

1
2
3
4
5
6
7
8
9
10
11
12
13
作用:切换用户(switch user)
#su 需要切换到的用户名

//从root用户切换到admin用户。
[root@localhost ~]# su admin
[admin@localhost root]$

//从admin用户切换到root用户。
[admin@localhost root]$su root
密码:
[root@localhost ~]#

当切换到的用户权限如果比当前用户的权限低,可以直接切换,不需要密码;反之,如果从低往高切换则要求输入被切换到的账户对应的密码。

↑和↓

1
用于切换历史命令

shutdown

1
2
3
4
5
6
// -h表示halt 关机,普通用户没有关机或重启的权限,只能退出后root登录关机
#shutdown –h now -h 关机后停机
#shutdown –h 15:30
#shutdown –h +30
// -r表示reboot 重启
shutdown –r +20 'system will reboot' 20min后关机重启

Linux中的whereis/find/which/locate/type

find

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#find [指定目录] [指定条件] [指定动作]
指定目录:是指所要搜索的目录和其子目录。如果不指定,则默认为当前目录。
指定条件:是指所要搜索的文件的特点。
指定动作:是指对搜索的结果如何处理。
-name 根据文件名称查找(严格区分大小写,如果文件名中间有空格,则必须把文件名用双引号引起来)
-iname 根据文件名查找(不区分大小写)
-regex "PATTERN" 正则表达式匹配
-user 根据文件属主进行查找
-group 根据文件属组进行查找
-uid 根据文件的uid查找
-gid 根据用户的gid查找
-nouser 查看所有的没有属主的文件
-nogroup 查看所有的没有属组的文件

find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。

//查看tmp目录下,文件属主为min的文件
#ls -l `find /tmp -user min`
#find /hhd -name a.php //查找确认文件或文件夹是否存在

locate

1
2
3
4
5
//查找所有包含passwd的文件,并且只显示前十个
#locate -n 10 passwd

Linux系统自动创建了一个数据库,这个数据库中含有本地所有文件信息,并且每天自动更新一次,locate命令查找的不是目录,而是这个数据库(/var/lib/locatedb),所以它不是实时查找,查不到最新变动过的文件,查找的结果不精确,但查找速度很快。
在使用locate之前,可以先使用updatedb命令,手动更新数据库

which

1
2
which命令是查找命令是否存在,以及命令的存放位置在哪儿。
#which ls

whereis

1
2
3
4
5
#whereis passwd //查找命令文件位置
whereis命令只能用于搜索程序名,省略参数返回所有信息
-b只搜索二进制文件;
-m 表示man,说明文件;
-s,源代码文件

type

1
2
3
4
5
6
7
8
type命令用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令.

#type cd
cd is a shell builtin //shell的自带命令
#type grep
grep is /usr/bin/grep //grep是一个外部命令,并显示该命令的路径。
#type -p vim
/usr/bin/vim //加上-p参数后,就相当于which命令

远程拷贝文件的命令spc即secure copy

1
2
3
4
5
6
7
8
9
10
11
12
13
将远程服务器上的文件复制到本机
#scp remote@www.abc.com:/usr/local/sin.sh /home/administrator
remote 通过remote用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
www.abc.com 远程服务器的域名(当然也可以使用该服务器ip地址)
/usr/local/sin.sh 欲复制到本机的位于远程服务器上的文件
/home/administrator 将远程文件复制到本地的绝对路径
将本机文件复制到远程服务器上
#scp /home/administrator/news.txt root@192.168.6.129:/etc/squid
/home/administrator/ 本地文件的绝对路径
news.txt 要复制到服务器上的本地文件
root 通过root用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.6.129 远程服务器的ip地址(也可以使用域名或机器名)
/etc/squid 将本地文件复制到位于远程服务器上的路径
用户和用户组管理:

useradd,usermod,userdel groupadd,groupmod,groupdel

在Linux中只有超级管理员权限才能对用户和用户组进行设置,其他的用户一律没有权限设置:

1、用户

1
2
3
4
5
6
7
8
9
1、添加用户 	useradd hd
(hd为用户名,/home可以看到对应用户的文件夹,/etc/passwd文件存储用户信息)
天蓝色:表示用户名;
紫色:x表示密码部分,密码使用shadow技术,保存在/etc/shadow
前面的红色数字:表示是用户的id;
后面的红色数字:表示用户的用户组id;
蓝色:注释或者说是备注;
绿色:用户对应的家目录位置;
黄色:表示用户所对用的解释器的位置,如果后面是bash则表示该用户可以登录系统,如果是nologin,则表示该用户无法登录操作系统;

1554171051777

设置密码

1
2
给用户设置密码:passwd hd (hd为用户名) 
查看密码状态:passwd -S hd(初始显示密码锁定,改后显示密码已设置)

用户编辑:

#usermod 参数(l/g) 需要修改的用户名

1
2
3
4
5
6
7
8
9
(user modify)在Linux中,经常会用到的用户修改的参数有2个。
-l:表示给后面传递的用户修改用户名,语法格式:usermod -l 新的用户名 需要修改的用户名
-g:表示给后面传递的用户名修改用户组,语法格式:usermod –g 用户组id 需要修改的用户名
G和g的区别:g后面的组是用户的主组,-G后面的组是用户的附加组
------------------------------------------
添加用户的同时,给用户添加组:
useradd –G hod(组名) hoo(用户)
给已存在的用户设置附加组:
usermod –G work(组名) cr(用户)

删除用户:

1
2
3
4
删除用户	userdel +用户名	(user delete)
删除用户同时删除对应家目录 userdel -r +用户名
添加组 groupadd c98
删除组 groupdel +组名

2、用户组

添加用户组:

1
2
3
4
5
6
7
#groupadd 用户组名   文件信息在/etc/group

天蓝色:表示用户组的名字;
紫色:x表示密码的占位符,但是这个占位符没有意义,真的不存在密码;
红色:用户组的id;
最后的天蓝色:表示当前用户组内的成员名称;
蓝色:表示备注说明;

1554175074108

用户组编辑:

#groupmod 参数 用户组名

重命名#groupmod -n 新的用户组名 旧的用户组名

用户组删除:

语法:#groupdel 需要删除的用户组名

如果这个用户组中存在用户的话,则该用户组是无法直接删除的,如果需要删除的话,则可以先将组内的成员删除掉或者移动到别的组,然后才可以删除当前的用户组。

权限

权限设置主要是针对用户和用户组对于文件/文件夹的一个操作限制,只有有权限才能进行相应的设置,没有权限则设置不了。

查看权限 ll

通过数字的形式设置权限

( r4w2x1 权限最高为7)ls -al也能查看到权限

修改权限:chmod(设置权限) 757(3数字3个权限) hod(文件或文件夹)
//文件:r 就可以查看内容
//目录 r+x 才可进去

通过字符设置权限

1、针对单个对象(ugo)的拆分user/group/other
给某个组成部分添加读权限:#chmod u+r,g+r,o+r 需要操作的文件/文件夹
给某个组成部分删减读权限:#chmod u-r,g-r,o-r 需要操作的文件/文件夹
给某个组成部分权限设置成一个目标值:#chmod u=rwx,g=rwx,o=rwx 文件名/文件夹名

2、设置全部的组成部分

#chmod a+r 文件 (表示给全部的组成部分添加读权限)

​ #chmod a-r 文件 (表示给全部的组成部分删减读权限)

​ #chmod a=rwx 文件 (表示给全部的组成部分权限设置成刻度可行可执行)

注意:在实际工作不要出现一个奇葩的权限:-wx。不要出现类似这样的权限,原因是读权限是最基本的,而你如果想写入,则必须先打开文件。

1
2
3
4
5
6
7
8
9
10
改变文件夹test的所有者为hod
//chown hod(所有者) test(文件)
改变文件test所属组为hod
//chown :hod(所有组) test
改变文件test所有者为houd所属组为hod
//chown houd(所有者):hod(所有组) test
修改文件夹test及其所有文件权限都改为757 R为递归,应该没有r参数(百度没找到)
// chmod -R 757 test
改变文件夹test及其下所有文件 所有者为hod所属组为hodd
// chown -R hod:hodd test

其他

vi编辑器
1
2
3
4
5
6
7
8
9
10
11
12
vi a.php  创建并且编辑文件
按 i 输入
退出编辑模式 esc
输入 :wq(保存退出) :x(保存退出) :q!(不保存强制退出,!表示强制)
输入:set nu 显示行号
命令行模式->
G 光标直接到最后一行 A光标定位当前行最后 O在上一行插入 o 在下一行插入

显示文件内容:
//显示前几行内容 head -n 6 a.php
//显示后几行内容 tail -n 6 a.php
//全部内容(包括行号)cat -n a.php
1
2
3
vim和vi编辑器:http://www.cnblogs.com/baichuanhuihai/p/7928404.html
vim可以当作vi的升级版本,他可以用多种颜色的方式来显示一些特殊的信息。
vim会依据文件扩展名或者是文件内的开头信息, 判断该文件的内容而自动的执行该程序的语法判断式,再以颜色来显示程序代码与一般信息。

vim编辑器安装:

输入rpm -qa|grep vim 命令

1
2
3
4
5
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5
以上3条,哪条没有下载哪条:例如yum -y install vim-enhanced
或则yum -y install vim* (*是通配符)

vim +数字 文件 (打开文件之后快速的将光标定位到数字指定的行)

1
vim +5 passwd

vim +/字符串 文件 (打开文件后高亮显示/后的字符串;光标快速跳转,按下“n”向下切换,或者按下“N”向上切换;实际上就是之前用的文件内搜索内容)

:nohl 除去高亮(no highlight)

set nu 显示行号(number)

:/字符串 搜索 字符串

vim 3种模式:

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

img

末行模式下

替换:

😒/需要替换的字符串/替换成的字符串 (表示替换当前光标所在的行的第一处符合条件的字符串)

😒/需要替换的字符串/替换成的字符串/g (替换光标所在行全部符合条件的地方,g表示global)

:%s/需要替换的字符串/替换成的字符串 (表示替换当前文档中每一行第一个符合条件的地方)

:%s/需要替换的字符串/替换成的字符串/g (替换整个文档中全部符合条件的地方)

命令模式下:

G 将光标在默认的命令模式中快速的定位到文档的最后一行

gg 将光标从命令模式中快速的切换到文档的第一行

数字G 将光标快速的定位到当前文档中的指定行

数字+↑/↓。将光标以当前行为准,向上或者向下移动指定的行数,可以输入数字

dd 删除当前行,删除之后下一行上移。

数字+dd 光标所在行为基准,向下删除指定的行数

D 删除当前行,删除之后当前行留空。

复制:

dd 剪切也是删除命令

yy 复制当前行

数字+yy 以当前行为准,向下复制指定的行数

p 粘贴在光标所在行的下一行开始处

编辑模式:

i/a 进入编辑模式insert/after instert

esc按键 退出编辑模式

vim扩展:

1、默认显示行号(vi也可以用)

当前用户的家目录中,如果没有的话自己创建,文件名字叫做.vimrc

.vimrc文件中,进入编辑模式,然后输入set nu,输入完毕之后退出保存 。

2、别名机制

对clear设置别名

别名文件位于当前用户家目录中,文件名叫做**.bashrc**

写入alias cls='clear’保存退出。设置别名文件之后,需要重新登录之后别名才会生效

3、异常处理

当一个文件在vim中进行打开,打开之后没有正常关闭(直接关闭远程窗口),再下一次打开该文件的时候就会提示类似于以下的界面:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
E325: 注意
发现交换文件 ".a.php.swp"
所有者: root 日期: Thu Mar 28 17:04:16 2019
文件名: ~root/hh/a.php
修改过: 是
用户名: root 主机名: centos-2019
进程 ID: 1154
正在打开文件 "a.php"
日期: Thu Mar 14 10:27:44 2019

(1) Another program may be editing the same file. If this is the case,
be careful not to end up with two different instances of the same
file when making changes. Quit, or continue with caution.
(2) An edit session for this file crashed.
如果是这样,请用 ":recover" 或 "vim -r a.php"
-- 更多 --

直接删除交换文件.swp

4、撤销/重做

当文件进行修改之后,如果想撤销/重做,则可以在末行模式中输入**:u**,来撤销上一步的操作。

撤销多步——末行模式中输入**:数字u**

取消撤销——命令模式中按下组合键ctrl+r

5、保存退出

wq和:x(千万不要输入大写的x,大写的x表示给当前文档进行加密)

在实际开发的时候还是建议使用:x的方式进行退出。这两个方式的区别在于,wq的方式无论文件是否有修改,都会对文件的最后修改时间进行改变;而x方式只有在文件内容真的发生变化了才会去修改文件的最后修改时间

window上用Xshell连接远程

命令连接服务器:ssh root@ip地址。

1、输入命令,中文乱码->echo $LANG 结果若是zh_CN.UTF-8系统支持中文,那么只能说明是我的xshell不能支持中文,那就改文件属性;

2、file(文件)->弹出对话框,在找Properties(属性)->Terminal(终端),下方选择Encoding(编码),选择UTF-8即可

复制Ctrl+Insert 粘贴 ShIft+Insert或者鼠标


鼠标操作技巧——跳出虚拟机界面:右边 alt+ctrl

虚拟机 网络设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   1.关机,设置--网络-连接方式--桥接
(虚拟机内核可一定程度上使用主机的物理网卡)
2.修改网卡的配置文件(按照 ppt 修改):
vi /etc/sysconfig/network-scripts/ifcfg-eth0
windows电脑 cmd ipconfig
mac 终端 ifconfig
示例:
DEVICE=eth0(网卡设备名称,一个服务器会有多个网卡)
HWADDR=08:00:27:27:84:B2(虚拟机的MAC地址)
TYPE=Ethernet(配置文件接口类型)
UUID=8392dc78-7ecc-4a81-8588-c8023b4004f2(全局唯一标识符)
ONBOOT=yes(开机,系统启动时是否激活网卡)
NM_CONTROLLED=yes(是否由Network Manager控制该网络接口,实时生效,不需要重启)
BOOTPROTO=static(地址协议,设置为none禁止DHCP,static启用静态IP地址,dhcp开启DHCP服务)

NETMASK=255.255.255.0(子网掩码,结合ip使用,AND运算后判断是否属于同一子网络,相同则可以直接通讯)
IPADDR=192.168.31.13(虚拟机设计个ip,不能与本机一样)
GATEWAY=192.168.31.1(虚拟网卡ip,即虚拟机网关地址,和本机一样)
DNS1=8.8.8.8(域名系统,将域名解析为计算机识别的ip地址)----
3.关闭 selinux(Security Enhance Linux,安全加强的Linux)
vi /etc/selinux/config
将其中 SELINUX=disabled
4.关闭防火墙
service iptables stop
5.重启网络,测试网络是否正常
service network restart
6.ping baidu.com
注意:如果你的虚拟机是复制出来的注意 启动网卡的时候出现 fail

远程连接服务器
windows 安装 Xshell 软件
mac 自带的终端
ssh root@192.168.2.123 root@(服务器ip)
rpm软件管理:

Red Hat Package Manager软件包管理器

查询软件的安装情况,安装软件,卸载软件

https://blog.csdn.net/hetoto/article/details/83593797(rpm相关知识点)

1、查询安装

查询vim编辑器的安装情况rpm -qa|grep vim

-q:表示query,查询

​ -a:表示全部,all

​ |:在php中称之它叫变量修饰器,在Linux中称之为管道

​ grep:表示从结果中进行过滤

2、软件卸载

rpm –e 需要卸载的软件名称(软件完整名称,即通过查询得到的名称)[–nodeps]

参数说明:

​ -e:表示卸载

​ --nodeps:表示忽略依赖关系

3、软件安装

语法:rpm -ivh 需要安装的软件完整名称

参数说明:

​ -i:表示安装,install

​ -v:表示显示进度条

​ -h:表示进度条以“#”显示

用了下载火狐rpm -ivh firefox-31.1.0-5.el6.centos.i686.rpm但是报没有这个文件或目录,可能是没有挂载的原因

yum和rpm的区别:

rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装

yum源卸载:yum remove mysql* 卸载相关的mysql

Linux运行模式

运行模式7种,0~6,的文件位置在/etc/inittab 更改其中的默认模式数字 id:3:initdefault:

网卡设置

配置文件在 /etc/sysconfig/network-scripts/

每个网卡对应着一个配置文件。例如ifcfg-eth0对应eth0这个网卡,ifcfg-lo对应lo

禁用网卡:#ifdown 设备名称 例如:#ifdown eth0

启用网卡:#ifup 设备名称 例如:#ifup eth0

在实际开发的时候Linux服务器/windows服务器的网卡不要随便的禁用,一旦禁用,远程终端连接立马会断开,一但断开就会连接不上。

其他:

1、Linux下的>和>>

在有的时候我们想保存命令操作结果,比如说将ls执行结果保存到某个文件中。这个时候可以使用>或者>>

一个>符号表示覆盖写。两个>>表示追加写。

例如#ls -al > list.txt

2、查找文件

#find 查找路径 -name 查找关键词

例如:#find / -name httpd.conf

3、man

语法:#man 命令名称 表示Manual(手册)

提示man命令未找到,则安装man(yum install man)

例如:#man find

Linux中whereis/find/which/locate/type区别

https://www.cnblogs.com/jycjy/p/6940544.html

4、命令:ssh、rpm 、 yum、cat分别是什么?

ssh是协议 ;

rpm(Red Hat Package Manager软件包管理器)由于依赖关系下载软件包麻烦,于是出现了yum,将所有软件包依赖关系的都下载,更加简便;

cat 主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file

参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3

把test.txt文件扔进垃圾箱,赋空值test.txt
cat /dev/null > /etc/test.txt

ssh协议和光盘挂载

1、ssh协议

端口号为22,应用最典型的就是我们可以使用终端去连接Linux,这个终端它使用的协议就是ssh协议。(终端可能指的是Xshell软件)

在Linux中ssh协议它是有个守护进程,进程名字叫做sshd。

在Linux中开启/关闭/重启一个服务/进程,都有一个比较固定的格式:

#service 服务名称 start/stop/restart

例如:关闭ssh协议,则可以输入命令service sshd stop。

注意:在停止ssh协议之后,终端后立即断开(在低版本Linux中仍然会保留当前的会话),所以该性质优点类似于禁用网卡,在实际开发的时候小心使用。

2、利用ssh工具实现跨平台传输文件

在实际开发的时候可能会遇到要往Linux中传输文件,这个问题如何去解决

这个时候可以使用ssh协议的工具来实现文件的跨平台传输。可以使用pscp.exe来实现文件的传输:

Pscp.exe是一个命令行工具,所以不能被直接打开,因此需要在cmd中运行,为了方便运行,我们可以将pscp.exe放到环境变量当中去——我们可以直接将其放到c盘的windows中。(先下载PuTTY软件,找到pscp.exe复制到c盘window中就可以了)

在cmd中运行结果:

img

语法格式(windows中文件传输到Linux中):

#pscp windows中的文件路径 用户名@主机地址:文件的保存路径

#pscp D:\Epan\IT-notebook\linux* root@192.168.1.10:/root/data

上传目录,可以用

pscp -r D:\MySQL\MySQL高级\mysql5.5.48 root@192.168.1.15:/opt

案例:使用pscp将文件传输到root用户家目录中的data目录中。

创建data目录:

img

3、利用sftp工具实现文件的上传/下载(linux第三天资料)

除了可以使用上述的命令行工具去传输文件,还可以使用sftp工具实现文件的传输:fileliza

安装完成打开之后会看到以下的界面:

在使用的时候,只需要将上述的空白地方补全信息即可:

登录之后左右两侧各有一个框框,左边显示的本地的文件系统,右侧的显示服务器的文件系统:

在左侧的文件上右键“上传”,即可将文件传输到右侧的文件目录中。

2、光盘挂载

Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除关联关系的过程称之为“卸载”(umount)。

可以理解成将光盘创建一个快捷方式。在windows下也有类似这样的过程(盘符的分配),但linux下必须的手动进行光盘/USB外接设备的挂载,只有挂载之后才能使用该外接设备中的文件/文件夹

1
语法:#mount [-fnrsvw] [-t vfstype] [-o options] device dir

语法:#mount[参数] 设备名称 挂载点/挂载位置

设备名称,可以通过命令lsblk(list block **devices)**来获取:

在使用lsblk之前先确保iso文件已经放入到光驱中:

1554193003548


然后使用lsblk命令:#lsblk

在列出的文件树中最接近光驱中iso文件大小的是sr0的3.8G,而lsblk列出的块状设备都位于/dev目录中,所以sr0的完整路径应该是/dev/sr0(MOUNTPOINT下无符号)

挂载点就是指将这个设备放到什么地方去,挂载点就是一个目录。一般情况有个习惯,在实际使用的时候习惯于将外接设备挂载到/mnt目录下,比如说可以在mnt目录下创建一个dvd目录,然后可将光盘挂载到/mnt/dvd上:

创建好目录之后再去使用命令进行挂载:

#mount /dev/sr0 /mnt/dvd/

光盘挂载成功,但是由于光盘是写保护的,所以只能读不能写。

使用lsblk命令查看挂载结果,看到已经存在挂载点了。

那后期如果需要使用光盘文件iso中的文件,则可以直接去/mnt/dvd目录中去寻找。

**ISO文件:**其实就是光盘镜像文件刻录软件可以直接把ISO文件刻录成可安装的系统光盘,ISO文件一般以iso为扩展名,其文件格式为iso9660。

ISO 9660,也被一些硬件和软件供应商称作CDFS(光盘文件系统),是一个由国际标准化组织(ISO)为光盘媒介发布的文件系统。其目标是能够在不同的操作系统,如Windows,Mac OS以及类Unix系统上交换数据。

LAMP安装:

1、压缩和解压

bz2比gz的压缩比高,tar是Linux下常用的解压与压缩命令

gz格式文件解压:tar -zxvf

bz2格式文件解压:tar -jxvf


-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。


例如:#tar -cvf sysconfig.tar /etc/sysconfig

命令解释:将目录/etc/sysconfig/目录下的文件打包成文件sysconfig.tar文件,并且放在当前目录中

// tar -zcvf b.tar.gz b /将b目录下所有文件以gzip 方式压缩为b.tar.gz的文件,并放在当前目录
// tar -zxvf b.tar.gz b //gzip解压

Linux扩展知识:

网卡:用于接收无线网络信号(在电脑或接收wifi的手机上都有)
路由器:发射无限网络信号
显卡:将计算机系统所需要的显示信息进行转换 驱动显示器
MAC地址(Media Access Control Address),直译为媒体访问控制地址,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网上设备位置的地址。
UUID:全局唯一标识符,只是用来标志硬件用的。在网络上起作用的是ip和mac,因此改了之后,在网络上是可以正常使用的,这个uuid只在系统中有用
selinux:Security Enhance Linux,安全加强的Linux,就是程序和访问对象上都有一个安全标签(即selinux上下文)进行区分,只有对应的标签才能允许访问,否则即使权限是777,也是不能访问的。
防火墙:计算机和它所连接的网络之间的软件,对流经它的网络通信进行扫描,滤掉一些攻击,以免其在目标计算机上被执行,禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信

查询用户
1
2
3
#id z3

无此用户
ps -ef|grep mysql

ps是什么?

在linux中使用ps命令可以查看有哪些进程在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等. ps命令最常用的是用于监控后台进程的工作情况.

https://www.cnblogs.com/nethk/p/4820867.html

‘|’管道分隔符

利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。

例如:#cat /etc/passwd | grep /bin/bash | wc -l

这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。