Linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录。Linux以文件的形式管理设备。(在Linux的系统里,一切皆文件)
/bin (/usr/bin、/usr/local/bin): 是Binary的缩写,这个目录存放着最常使用的命令
/sbin (/usr/sbin、/usr/local/sbin): s指Super User,这里存放的是系统管理员使用的系统管理程序
/home : 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账户命名的
/root : 该目录为系统管理员,也称作超级权限者的用户主目录
/etc : 所有的系统管理所需要的配置文件和子目录
/usr (Unix System Resource) : 用户的很多应用程序和文件都放在这个目录下,类似于Windows下的Program Files目录
/usr/local : 安装软件所在的目录,一般是通过编译源码的方式安装程序
/boot : 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/porc (慎动): 该目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv (慎动): service缩写,该目录存放一些服务启动之后需要提取的数据
/sys (慎动): 这是Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs
/tmp : 该目录用于存放一些临时文件
/dev : 类似Windows的设备管理器,把所有的硬件用文件的形式储存
/media : Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下
/mnt : 该目录是为了让用户临时挂载别的文件系统的,可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容(共享文件夹)
/opt : 存放软件安装包的目录
/var : 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
/selinux : (Security-Enhanced Linux)是一种安全子系统(类似360),它能控制程序只访问特定文件
/lib : 系统开机所需要的最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
/lost & /found : 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
ifconfig
获取IP地址,在Xshell中建立连接(端口号为22)正常模式/一般模式
在正常模式下,可以使用快捷键。可以使用[上下左右]按键来移动光标,使用[删除字符]或[删除整行]来处理档案内容,使用[复制粘贴]来处理文件数据
插入模式
在插入模式下,可以编辑输入内容
按下i,I,o,O,a,A,r,R
等任何一个字母后可进入编辑模式,一般来说按i(insert)
即可
命令行模式
在命令行模式下,可以提供相关指令,完成读取、存盘、替换、离开vim、显示行号等操作
yy
;拷贝当前行向下的n行:nyy
;粘贴:p
dd
;删除当前行向下的n行:ndd
/+关键字
,回车查找,输入n
可查找下一个:set nu
;取消文件的行号:命令行下:set nonu
G
;跳到文档最首行:正常模式下输入gg
u
:set nu
),输入行号,按下快捷键(shift+g)vimtutor
shutdown
shutdown -h now
:立即关机
shutdown -h 1
:1分钟后关机
shutdown -r now
:立即重启
halt
直接使用,效果等价于关机
reboot
直接使用,重启系统
sync
将内存的数据同步到磁盘
su - 用户名
命令来切换成系统管理员身份logout
即可注销用户logout
注销指令在图形运行级别无效,在运行级别3下有效/home/
目录下有各个创建的用户对应的家目录,当用户登录时,会自动进入到自己的家目录
语法
useradd 用户名
:创建用户,当创建用户成功后,会自动创建和用户同名的家目录
useradd -d 指定目录 用户名
:创建新用户,并指定用户的家目录
passwd 用户名
:给用户指定密码
userdel 用户名
:删除用户,但保留家目录
userdel -r 用户名
:删除用户以及用户家目录(不推荐)
id 用户名
:查询用户信息
介绍
在操作Linux中,如果当前用户的权限不够,可以通过指令,切换到高权限用户,例如root
语法
su - 用户名
注意
exit
指令用户组
类似于角色,系统可以对有共性的多个用户进行统一的管理
语法
groupadd 组名
:增加组
groupdel 组名
:删除组
useradd -g 用户组 用户名
:增加用户时指定归属组
usermod -g 用户组 用户名
:修改用户的归属组
usermod -d 目录名 用户名
:改变用户登录的初始目录
/etc/passwd
文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow
文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
开机的一般流程:
开机 => BIOS => /boot => init进程 => 运行级别 => 运行级对应的服务
/etc/inittab
中的id:5:initdefault:
这一行中的数字id:5:initdefault:
:指开机时进入第五运行级别(即图形界面)init 数字012356(没有4)
centOS 6:
进入单用户模式:开机 -> 在引导时按回车键 -> 看到一个界面输入e -> 看到一个新的界面,选中第二行(编辑内核),再输入e -> 在这行输入空格+1(单用户模式)后按回车键 -> 输入b,进入单用户模式
在单用户模式下,使用passwd
指令修改root密码
centOS 7:
重启系统,在开机过程中,快速按下键盘上的方向键上和下。目的是告知引导程序,我们需要在引导页面选择不同的操作,以便让引导程序暂停。按键盘 e 键,进入编辑模式,找到 linux16 的那一行。将光标一直移动到 LANG=en_US.UTF-8
后面,空格,再追加init=/bin/sh
。注意,需要写在UTF-8
后,保持再同一行,并注意空格。
按下Ctrl+x进行引导启动,进入单用户模式后,挂载根目录mount -o remount, rw /
,更改密码passwd root
,更新系统信息touch ./autorelabel
,重启系统exec /sbin/reboot
man
指令
man [命令或配置文件]
:获得帮助信息
help
指令
help 命令
:获得shell内置命令的帮助信息
info
指令
类似man
,和man
不同的是,info
命令的帮助信息是一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个小章节
pwd
指令
pwd
:显示当前工作目录的绝对路径
ls
指令
ls [选项] [目录或文件]
:列出目录的内容
常用选项:
-a
:显示当前目录所有的文件和目录
-l
:以列表的方式显示信息
-R
:递归显示整个目录
cd
指令
cd [参数]
:切换到指定目录(绝对路径、相对路径)
常用参数:
cd ~
或cd
:回到家目录
cd ..
:回到当前目录的上一级目录
mkdir
指令
mkdir [选项] 要创建的目录
:创建目录
常用选项:
-p
:创建多级目录
rmdir
指令
rmdir [选项] 要删除的空目录
:删除空目录
注意:
rmdir
删除的是空目录,若目录下有内容则无法删除
若要删除非空目录,则使用指令rm -rf 要删除的目录
touch
指令
touch 文件名称(可创建多个文件)
:创建空文件
cp
指令
cp [选项] 文件或目录 目录
:拷贝文件或目录到指定目录
常用选项:
-r
:递归复制整个文件夹
注意:
强制覆盖不提示:cp
改为\cp
rm
指令
rm [选项] 要删除的文件或目录
:移除文件或目录
常用选项:
-r
:递归删除整个文件夹
-f
:强制删除不提示
mv
指令
mv 旧名 新名
:重命名文件
mv 文件或目录 目录
:移动文件或目录
cat
指令
cat [选项] 要查看的文件
:查看文件内容,以只读方式打开
常用选项:
-n
:显示行号
注意:
cat
只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令| more
more
指令
more
指令是一个基于Vi编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,并且内置了若干快捷键
more 要查看的文件
:查看文件内容
快捷键:
操作 | 功能说明 |
---|---|
空格键(space) |
向下翻一页 |
回车键(Enter) |
向下翻一行 |
q |
立刻离开more,不再显示该文件内容 |
Ctrl+F |
向下滚动一屏 |
Ctrl+B |
返回上一屏 |
= |
输出当前的行号 |
:f |
输出文件名和当前的行号 |
less
指令
less
指令用来分屏查看文件内容,它的功能与more
类似,但比more
指令更强大,支持各种显示终端。less
指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示的需要来加载内容,对于显示大型文件具有较高的效率
less [要查看的文件]
:查看文件内容
快捷键:
操作 | 功能说明 |
---|---|
空格键(space) |
向下翻一页 |
回车键(Enter) |
向下翻一行 |
[page down] |
向下翻一页 |
[page up] |
向上翻一页 |
/字串 |
向下搜寻[字串],n :向下查找,N :向上查找 |
?字串 |
向上搜寻[字串],n :向上查找,N :向下查找 |
q |
离开less这个程序 |
>
指令和>>
指令
>
:输出重定向(会将原来的文件的内容覆盖)
>>
:追加(不会覆盖原来的文件,而是追加到文件的尾部)
语法:
ls -l > 文件
:列表的内容覆盖写入文件中,文件不存在则创建文件
ls -al >> 文件
:列表的内容追加到文件的末尾
cat 文件1 > 文件2
:将文件1的内容覆盖写入到文件2
echo "内容" >> 文件
:将内容写入文件
echo
指令
echo [选项] [输出内容]
:输出内容到控制台
head
指令:用于显示文件开头部分内容,默认情况下显示文件的前10行内容
head 文件
:查看文件前10行内容
head -n 行数k 文件
:查看文件前k行内容
tail
指令:用于输出文件尾部的内容,默认情况下显示文件后10行的内容
tail 文件
:查看文件后10行内容
tail -n 行数k 文件
:查看文件后k行内容
tail -f 文件
:实时跟踪文档的所有更新
ln
指令:软链接也叫符号链接,类似于Windows中的快捷方式,主要存放了链接其他文件的路径
ln -s [原文件或目录] [软链接名]
:给原文件或目录创建一个软链接
注意:
使用pwd
指令查看目录时,仍然看到的是软链接所在的目录
删除软链接:rm -rf 软链接名
,注意软链接后不能带斜杠/
,会把链接的内容删掉
history
指令
history
:查看已经执行过的历史指令
history 数字k
:查看最近使用的k条指令
!数字
:执行对应的指令
date
指令:显示当前日期
date
:显示当前时间
date +%Y
:显示当前年份
date +%m
:显示当前月份
date +%d
:显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S"
:显示年月日时分秒(中间格式可以自己改)
date -s 时间(字符串形式)
:设置日期
hwclock -s
:改回去原来的时间
cal
指令
cal
:显示本月日历
cal 年份
:显示全年日历
find
指令
find [搜索范围] [选项]
:从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
选项:
选项 | 功能 |
---|---|
-name 文件名(可用通配符) |
按照指定的文件名查找模式查找文件 |
-user 用户名 |
查找属于指定用户名的所有文件 |
-size (+/-)文件大小(单位可根据实际情况调整) |
按照指定的文件大小查找文件(+/-表示大于/小于) |
locate
指令
locate 搜索文件
:快速定位文件路径。
补充:
locate
指令利用事先建立的系统中所有文件名称及路径的locate
数据库实现快速定位给定的文件。locate
指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate
时刻
注意:
由于locate
指令基于数据库进行查询,所以第一次运行时,必须用**updatedb
**指令创建locate
数据库
grep
指令和管道符号|
grep
过滤查找,管道符|
表示将前一个命令的处理结果输出传递给后面的命令处理,例子:cat hello.txt | grep hello
:通过管道符|
,将hello.txt的内容输出给grep hello
指令,查找hello.txt文件中的hello字符串
grep [选项] 查找内容 源文件
选项:
-n
:显示匹配行及行号
-i
:忽略字母大小写
gzip
/gunzip
指令
gzip 文件(可选多个文件)
:压缩文件,只能将文件压缩为***.gz
**文件(压缩后原文件不保留)
gunzip 文件.gz
:解压缩文件命令
zip
/unzip
指令
zip [选项] 文件名.zip 压缩的内容(文件或目录)
:压缩文件和目录的命令
unzip [选项] 文件.zip
:解压缩文件
zip
常用选项:
-r
:递归压缩,即压缩目录
unzip
常用选项:
-d 目录
:指定解压后文件的存放目录
tar
指令
tar
指令是打包指令,最后打包的文件是*.tar.gz
文件
tar [选项] 文件名.tar.gz 打包的内容
:打包目录,压缩后的文件格式:*.tar.gz
选项:
选项 | 功能 |
---|---|
-c |
产生.tar 打包文件 |
-v |
显示详细信息 |
-f |
指定压缩后的文件名 |
-z |
打包同时压缩 |
-x |
解包.tar 文件 |
-C 目录 |
解压到指定目录 |
打包压缩:-zcvf
解压:-zxcf
组的介绍
在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、所在组、其他组的概念
文件/目录的所有者、所在组
文件/目录的所有者、所在组默认是创建者及创建者所在的组
ls -ahl
:查看文件的所有者、所在组
其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
权限介绍
ls -l
显示的内容中,按从左到右的顺序:
第0位确定文件类型(d,-,l,c,b
)
第1-3位确定所有者(该文件的所有者)拥有该文件的权限(r,w,x
) ——User
第4-6位确定所属组(同用户组)拥有该文件的权限(r,w,x
) ——Group
第7-9位确定其他用户拥有该文件的权限(r,w,x
) ——Other
数字:对于文件来说,表示硬链接数;对于目录来说,表示子目录数
用户名
组名
数字:表示文件大小(单位是字节Byte
),如果是目录,则显示4096(字节)
最后修改日期
文件名
文件类型(d,-,l,c,b
)
-
表示普通文件
d
表示目录
l
表示软链接
c
表示字符设备文件,如键盘、鼠标
b
表示块文件,如硬盘
rwx
权限
rwx
作用到文件
r(read)
:可以读取,查看
w(write)
:可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写(w
)权限,才能删除该文件
x(execute)
:可以被执行
rwx
作用到目录
r(read)
:可以读取,ls
查看目录内容
w(write)
:可以修改,目录内创建、删除、重命名文件
x(execute)
:可以进入该目录
修改权限
修改权限——chmod
通过chmod
指令,可以修改文件或者目录的权限
用户:u
:所有者;g
:所有组;o
:其他用户;a
:所有用户
通过+、-、=
修改权限
chmod u=权限,g=权限,o=权限 文件/目录
chmod 用户+权限 文件/目录
chmod 用户-权限 文件/目录
通过数字修改权限
r=4, w=2, x=1; rwx=4+2+1=7
如:chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录名
修改文件所有者——chown
chown 新用户名 文件
:修改文件所有者
chown 新用户名:新组名 文件
:修改文件的所有者和所在组
参数:
-R
:如果是目录,则使其下所有子文件或目录递归生效
修改文件所在组——chgrp
chgrp 新组名 文件
:修改文件所在的组
参数:
-R
:递归其下所有子文件或目录
建立两个组(神仙immortal
、妖怪monster
)
建立四个用户(唐僧ts
、悟空wk
、八戒bj
、沙僧ss
)
设置密码(123)
用悟空建立一个文件monkey.txt
,内容是i am monkey
介绍
任务调度:是指在某个时间执行特定的命令或程序
任务调度分类:
MySQL
数据库的备份语法
crontab [选项]
service crond restart
:重启任务调度
常用选项:
选项 | 功能 |
---|---|
-e |
编辑crontab 定时任务 |
-l |
查询crontab 任务 |
-r |
删除当前用户的所有crontab 任务 |
例子
设置任务调度文件:/etc/crontab
设置个人任务调度,执行crontab -e
命令
输入任务*/1 * * * * date > date.txt
(每小时的每分钟执行命令)到调度文件
参数说明:
项目 | 含义 | 范围 |
---|---|---|
第一个* |
一小时当中的第几分钟 | 0-59 |
第二个* |
一天当中的第几小时 | 0-23 |
第三个* |
一个月当中的第几天 | 1-31 |
第四个* |
一年当中的第几月 | 1-12 |
第五个* |
一周当中的星期几 | 0-7(0和7都代表星期日) |
特殊符号:
特殊符号 | 含义 |
---|---|
* |
代表任何时间。比如第一个* 代表一个小时中每分钟都执行一次命令 |
, |
代表不连续的时间。比如0 8,12,16 * * * 代表每天的8点,12点,16点都执行一次命令 |
- |
代表连续的时间范围。比如0 5 * * 1-6 代表周一到周六的5点执行命令 |
*/n |
代表每隔多久执行一次。比如*/10 * * * * 代表每隔10分钟执行一次命令 |
注意:星期几和几号最好不要同时出现,容易产生混乱
mbr
分区:
MBR
最大只支持2TB,但拥有最好的兼容性gtp
分区:
1EB=1024PB, 1PB=1024TB
)gtp
原理介绍
硬盘说明
查看当前系统的分区情况
指令:(老师不离开)
lsblk -f
:查看系统的分区和挂载的情况
lsblk
:可查看分区的大小
添加后Linux需重启
分区
格式化
临时挂载
mkdir /home/newdisk1
:在home
目录下创建一个文件夹newdisk1
挂载到newdisk1
目录下,mount -t xfs /dev/sdb1 /home/newdisk1
,完成后查看分区情况:
永久挂载
修改系统挂载硬盘的文件:vim /etc/fstab
添加配置/dev/sdb1 /home/newdisk1 xfs defaults 0 0
最后重启sync
,reboot
磁盘查询
df [选项]
:查询系统整体磁盘使用情况
du [选项] 目录
:查询指定目录的磁盘占用情况,默认为当前目录
选项:
选项 | 功能 |
---|---|
-h |
带计量单位 |
-s |
指定目录占用大小汇总 |
-a |
含文件 |
--max-depth=k |
子目录深度k |
-c |
列出明细的同时,增加汇总值 |
ls [选项] 目录 | grep "^-" | wc -l
:统计某个目录下文件的个数
ls [选项] 目录 | grep "^d" | wc -l
:统计某个目录下目录的个数
选项:参考ls
指令的选项
显示系统执行的教程
ps [选项]
:查看进程
选项 | 功能 |
---|---|
-a |
显示当前终端的所有教程信息 |
-u |
以用户的格式显示教程信息 |
-x |
显示后台进程运行的参数 |
-e |
显示所有进程 |
-f |
全格式 |
常用:
ps -aux
:查看系统进程
ps -aux |more
:以more方式打开
ps -aux | grep xxx
:过滤出所需内容
指令说明:(System V展示风格)
指令 | 说明 |
---|---|
USER |
用户名称 |
PID |
进程号 |
%CPU |
进程占用CPU的百分比 |
%MEM |
进程占用物理内存的百分比 |
VSZ |
进程占用的虚拟内存大小(KB) |
RSS |
进程占用的物理内存大小(KB) |
TT |
终端名称 |
STAT |
进程状态,S表示睡眠,s表示进程是会话的先导进程,N表示进程拥有比普通优先级更低的优先级,R表示正在运行,D表示短期期待,Z表示僵死进程,T表示被跟踪或者被停止 |
STARTED |
进程的启动时间 |
TIME |
CPU时间,即进程使用CPU的总时间 |
COMMAND |
启动进程所用的命令和参数,如果过长会被截断显示 |
ps -ef
:以全格式显示当前所有进程
ps -ef | grep xxx
:过滤出所需内容
指令说明:(BSD风格)
指令 | 说明 |
---|---|
UID |
用户ID |
PID |
进程ID |
PPID |
父进程ID |
C |
CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 |
STIME |
进程启动的时间 |
TTY |
完整的终端名称 |
TIME |
CPU时间 |
CMD |
启动进程所用的命令和参数 |
介绍
若某个进程执行一半需要停止时,或者已消耗了很大的系统资源时,此时可以考虑停止进程
语法
kill [选项] 进程号
:通过进程号结束进程
killall 进程名称
:通过进程名称结束进程(支持通配符),在系统因负载过大而变得很慢时有用
常用选项:
-9
:表示强迫进程立即停止
查看进程树
pstree [选项]
常用选项:
-p
:显示进程的PID
-u
:显示进程的所属用户
介绍
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd防火墙等),因此称为守护进程
指令
service 服务名 [start/stop/restart/reload/status]
注意:
在centOS 7.0后,不再使用service
,而是systemctl
查看服务
setup 回车
ls -l /etc/init.d/
chkconfig
指令:可以给每个服务的各个运行级别设置自启动/关闭
chkconfig --list | grep xxx
:过滤出所需服务
chkconfig 服务名 --list
:查看服务
chkconfig --level 运行级别k 服务名 on/off
:设置某个服务在不同运行级别下的自启动/关闭(需要重启才能生效)
介绍
top
与ps
指令类似,都用来显示正在执行的进程。top
与ps
最大的不同之处,在于top
在执行一段时间后可以更新正在运行的进程
语法
top [选项]
选项:
选项 | 功能 |
---|---|
-d 秒数 |
指定top 指令每隔几秒更新,默认是3秒 |
-i |
使top 不显示任何闲置或者僵死进程 |
-p |
通过指定监控进程ID来仅仅监控某个进程的状态 |
交互操作:
操作 | 功能 |
---|---|
P |
以CPU使用率排序(默认) |
M |
以内存使用率排序 |
N |
以PID排序 |
u |
提示输入用户,可查询指定用户的进程 |
k |
提示输入PID,可杀死指定进程 |
q |
退出top |
netstat
指令
netstat [选项]
:查看系统网络情况
选项:
选项 | 说明 |
---|---|
-an |
按一定顺序排列输出 |
-p |
显示哪个进程在调用 |
介绍
rpm包是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.rpm
的拓展名。rpm全称是RedHat Package Manager
(RedHat软件包管理工具),类似Windows
的setup.exe
rpm包的管理
查询rpm包
rpm -qa
:查询所安装的所有rpm软件包
rpm -qa | more
:以more方式打开
rpm -qa | grep 软件包名
:过滤出所需的软件包
rpm -q 软件包名
:查询软件包是否安装
rpm -qi 软件包名
:查询软件包信息
rpm -ql 软件包名
:查询软件包中你的文件
rpm -qf 文件全路径名
:查询文件所属的软件包
卸载rpm包
rpm -e 软件包名
可带上--nodeps
强制删除(不推荐)
安装rpm包
rpm -ivh rpm包全路径名称
参数说明:
i
:install
安装
v
:verbose
提示
h
:hash
进度条
介绍
YUM是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
yum包的管理
查询yum包
yum list
:查询所有yum包
yum list | grep 软件包名
:过滤出所需软件包
安装yum包
yum install 软件包名
:安装指定软件包
卸载yum包
yum remove 软件包名
:卸载软件包
介绍
安装Ubuntu成功后,都是普通用户权限,没有最高root权限,需要使用root权限的时候,需要在命令前面加上sudo
如果没有给root设置初始密码,则无法通过su
命令切换到root用户,会抛出问题:su:Authentication failure
给root用户设置密码
sudo passwd
,输入当前用户密码后,设定root用户密码
$代表一般用户,#代表root用户
介绍
apt是Advanced Packaging Tool的简称,是一款安装包管理工具。在Ubuntu下,使用apt
命令可以用于软件包的安装、删除、清理等,类似于Windows中的软件管理工具
软件操作的相关命令(package
为具体包名)(在普通用户下需要加sudo
前缀)
sudo apt-get update
:更新源
sudo apt-get install package
:安装包
sudo apt-get remove package
:删除包
sudo apt-cache search package
:搜索软件包
sudo apt-cache show package
:获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall
:重新安装包
sudo apt-get -f install
:修复安装
sudo apt-get remove package --purge
:删除包,包括配置文件等
sudo apt-get build-dep package
:安装相关的编译环境
sudo apt-get upgrade
:更新已安装的包
sudo apt-get dist-upgrade
:升级系统
sudo apt-cache depends package
:了解使用该包依赖哪些包
sudo apt-cache rdepends package
:查看该包被哪些包依赖
sudo apt-get source package
:下载该包的源代码
更新Ubuntu软件下载地址为清华镜像源
清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/
介绍
SSH为Secure Shell的缩写,由IETF的网络工作小组(Network Working Group)所指定;SSH为建立在应用层和传输层基础上的安全协议
SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。几乎所有UNIX平台——包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH
使用SSH服务,需要安装相应的服务器和客户端
和CentOS不一样,Ubuntu默认没有安装SSHD服务,因此默认不能进行远程登录
安装SSH和启用
sudo apt-get install openssh-server
:安装SSH服务端和客户端
service sshd restart
:启动sshd服务,会监听22号端口
从Linux系统客户机远程登录Linux系统服务机
两台Linux都需要安装openssh-server
CentOS:yum install openssh-server
Ubuntu:sudo apt-get install openssh-server
连接:ssh 当前用户名@待连接Linux的ip地址
若出现访问错误,可查看是否有该文件:~/.ssh/known_ssh
,尝试删除该文件解决问题
退出:exit
或logout
为什么要学习Shell编程
Shell是什么
Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统程序,用户可以用Shell来启动、挂起、停止甚至编写一些程序
Shell脚本的执行方式
#!/bin/bash
开头sh 脚本
,不需要赋给脚本可执行权限(不推荐)单行注释:
#这是单行注释
多行注释:
:<
这
是
多
行
注
释
!
在shell脚本中,以后台方式执行其他shell脚本:在行尾添加&
echo $HOME
等等set
变量=值
unset 变量
readonly 变量
,注意:不能unset
A=`ls -la`
反引号,运行里面的命令,并把结果返回给变量AA=$(ls -la)
等价于反引号export 变量名=变量值
:将shell变量输出为环境变量
source 配置文件
:让修改后的配置信息立即生效**(配置环境变量后需使其生效)**
echo $变量名
:查询环境变量的值
介绍
当执行一个shell脚本时,如果希望获得命令行的参数信息,就可以使用位置参数变量
语法
$n
:n为数字,$0
代表命令本身,$1
-$9
代表第一到第九个参数,十以上的参数,需要用大括号包含,如${10}
$*
:这个变量代表命令行中的所有参数,$*
把所有的参数统一对待(当做一个整体)
$@
:这个变量也代表命令行中的所有参数,不过$@
把每个参数区分对待
$#
:这个变量代表命令行中的所有参数的个数
介绍
是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用
语法
$$
:当前进程的进程号(PID)
$!
:后台运行的最后一个进程的进程号(PID)
$?
:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,则证明上一个命令执行有错误
语法:
$((运算式))
或$[运算式]
(推荐)expr m +,- n
:加,减(注意expr运算符之间要有空格)expr m \*,/,% n
:乘,除,取余语法:
[ condition ]
:非空返回true,可使用$?
验证(0为true,>1为false)(注意condition前后要有空格)
常用的判断条件:
两个整数/字符串比较
=
:字符串比较
-lt
:小于
-le
:小于等于
-eq
:等于
-gt
:大于
-ge
:大于等于
-ne
:不等于
按照文件权限进行判断
-r
:有读的权限
-w
:有写的权限
-x
:有执行的权限
按照文件类型进行判断
-f
:文件存在并且是一个常规的文件,即不是隐藏文件
-e
:文件存在
-d
:文件存在并且是一个目录
if [ condition ];then
程序
fi
# 推荐
if [ condition ]
then
程序
elif [ condition ]
then
程序
fi
注意中括号与条件判断式之间必须有空格
case $变量名 in
"值1")
程序1
;;
"值2")
程序2
;;
...省略其他分支...
*)
程序(default执行)
;;
esac
for 变量 in 值1 值2 值3...
do
程序
done
for ((初始值;循环控制条件;变量变化))
do
程序
done
while [ condition ]
do
程序
done
basename
basename
命令会删掉所有的前缀,包括最后一个"/"字符,返回完整路径最后/的部分,常用于获取文件名
basename [pathname] [suffix]
basename [string] [suffix]
选项:
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉
dirname
返回完整路径最后的/的前面的部分,常用于返回路径部分
dirname 文件绝对路径
:从给定的包含绝对路径的文件名中除去文件名(非目录的部分),然后返回剩下的路径(目录的部分)
[ function ] funname[()]
{
Action;
[return int;]
}
B站-尚硅谷Linux教程