一.安装
大家日常学习的话推荐使用VM虚拟机,linux的话呢常用的是ubuntu和centos这两个版本
VM虚拟机安装教程 : VM安装ubuntu
同理 如果需要将ubuntu替换为centos ,需要将第五步选择为centos,第六步选择自己下载好的镜像(镜像地址:The CentOS Project)
大家的内存充足或精力充足的话可以使用双系统:WIN下安装Linux双系统
二.上传与下载
wget指令:
wget命令用来从指定的URL下载文件且wget非常稳定,命令格式:wget [选项] URL资源
例如:
1. 下载单个文件:wget [你需要下载的网址].zip
这个可以通过鼠标右键获取其链接
2. 断点续传(继续接着执行上次未下载完的任务):wget -c [你需要下载的网址].zip
3.下载并以不同的文件名保存:wget -O [自己命名].zip [你需要下载的网址].zip
4. 后台下载:wget -b [你需要下载的网址].zip
5.多文件下载:wget -i url文件
PS:tail -f wget-log 命令查看下载进度
curl 指令
curl指令是一个利用URL规则在命令行下工作的文件传输工具,支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征
例如:
1. 下载单个文件:curl [-o 自定义文件名|-O] http://www.example.com/index.html
-o 自定义文件名:把服务器响应输出到指定文件
-O:与-o选项作用一样,区别在于以 url 路径最后一个"/"之后的部分作为文件名
2.断点续传:curl -O -C 偏移量 [你需要下载的网址].zip
-C 偏移量:从指定的偏移量处继续下载,偏移量以字节为单位
如果让curl自动推断出正确的续传位置可以使用 "-" 代替偏移量,例如:curl -O -C - http://www.example.com/testfile.zip
处理复杂的web请求
1. 自动跳转
curl -L http://www.example.com
-L:自动跳转到重定向链接(Location)
有些链接访问时会自动跳转(响应状态码为3xx),-L参数会让 HTTP 请求跟随服务器的重定向。例如:访问 "http://a.com" 会重定向到 "http://b.com",使用"-L"选项会返回 "http://b.com" 的响应内容
2. 显示响应头信息
curl -i http://www.example.com
-i:输出包含响应头信息
-I:输出仅包含响应头信息,不包含响应内容
三.Linux常用命令
1.命令的提示符:[root@localhost ~]#
[]:这是提示符的分隔符号,没有特殊含义。
root:显示的是当前的登录用户, 目前使用的是root用户登录。
@:分隔符号,没有特殊含义。
localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。
~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
#:命令提示符。超级用户是#,普通用户是$
2.命令的基本格式:[root@localhost ~]# 命令 [选项] [参数]
选项:是用于调整命令的功能的
参数:是命令的操作对象
3. 目录操作命令
ls命令
ls 是最常见的目录操作命令,主要作用是显示目录下的内容
命令名称:ls
所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录下的内容
命令格式:ls [选项] [目录名]
选项:
-a: 显示所有文件
--color=when: 支持颜色输出,when的值默认是always(总显示颜色),也可以是never(从不显示颜色)和auto(自动)
-d: 显示目录信息,而不是目录下的文件
-h: 人性化显示,按照我们习惯的单位显示文件大小
-i: 显示文件的节点号
-l: 长格式显示
cd命令
cd是切换所在目录的命令,基本信息如下:
命令名称:cd
所在路径:shell内置命令
执行权限:所有用户
功能描述:切换所在目录
命令格式:cd [-L|-P] [dir]
选项:
-L:(默认值)如果要切换到的目标目录是一个符号连接,那么切换到符号连接的目录。
-P: 如果要切换到的目标目录是一个符号连接,那么切换到它指向的物理位置目录。
参数:
可以是绝对路径(以根目录为参照物)或相对路径(以当前目录为参照物)
简化用法
cd ~: 当前用户的加目录
cd -: 上一次所在目录
cd .: 当前目录
cd ..: 上级目录
mkdir命令
命令名称:mkdir
所在路径:/bin/mkdir
执行权限:所有用户
功能描述:创建空目录
命令格式:mkdir [选项] 目录名
选项:
-p: 递归建立所需目录
-m 权限:建立目录的同时设置目录的权限
pwd命令
pwd命令是查询所在目录的命令,基本信息如下:
命令名称:pwd
所在路径:/bin/pwd
执行权限:所有用户
功能描述:查询当前所在目录
rmdir命令
rmdir命令删除空目录,基本信息如下:
命令名称:rmdir
所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除空目录
命令格式:rmdir [选项] 目录名
选项:
-p: 递归删除目录
rmdir命令的作用十分有限,只能删除空目录,一旦目录中有内容就会报错。所以一般不论删除的是文件还是目录,都会使用rm命令
4 文件操作命令
touch命令
touch命令创建空文件或修改文件时间,基本信息如下:
命令名称:touch
所在路径:/bin/touch
执行权限:所有用户
功能描述:创建文件或改文件时间戳
命令格式:touch [选项] 文件名
选项:
-a: 或--time=atime或--time=access或--time=use 更改存取时间为当前时间(access time)
-m:或--time=mtime或--time=modify 更该变动时间为当前时间(modify time)
-t: 日期时间: 使用指定的日期时间(格式:[[CC]YY]MMDDhhmm[.ss]),而非现在的时间
-r 参考文件或目录: 把指定文件或目录的日期时间统统设成参考文件或目录的日期时间
cat命令
cat命令用来查看文件内容,进本信息如下:
命令名称:cat
所在路径:/bin/cat
执行权限:所有用户
功能描述:合并文件并打印输出到标准输出
命令格式:cat [选项] 文件名
选项:
-E: 列出每行结尾的回车符$
-n: 显示行号
-T: 把Tab键用^I显示出来
-v: 列出特殊字符
-A: 相当于-vET选项的整合,用于列出所有隐藏符号
more 命令
more是分屏显示文件的命令,基本信息如下:
命令名称:more
所在路径:/bin/more
执行权限:所有用户
功能描述:分屏显示文件内容
命令格式:more [选项] 文件名
选项:
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕
-s:将多个空行压缩成一行显示
-u:禁止下划线
-数字:指定每屏显示的行数
+数字:从指定数字的行开始显示
【PS: more 命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些交互命令。常用的交互命令如下:
空格键:向下翻页
B键: 向上翻页
/字符串:搜索指定的字符串
q: 退出】
3.4 less 命令
less命令和more命令类似,只是more命令是分屏显示,而less是分行显示命名,less命令允许用户向前(PageUp键)或向后(PageDown键)浏览文件,基本信息如下:
命令名称:less
所在路径:/usr/bin/more
执行权限:所有用户
功能描述:分行显示文件内容
命令格式:less [选项] 文件名
-e:文件内容显示完毕后,自动退出
-f:强制显示文件
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度
-l:搜索时忽略大小写的差异
-N:每一行行首显示行号
-s:将连续多个空行压缩成一行显示
-S:在单行显示较长的内容,而不换行显示
-x数字:将TAB字符显示为指定个数的空格字符
tail 命令
tail 命令是用来显示文件结尾内容的命令
命令名称:tail
所在路径:/usr/bin/tail
执行权限:所有用户
功能描述:显示文件结尾的内容
命令格式:tail [选项] 文件名
-n 行数:从文件结尾开始,显示指定行数
-v:显示文件名
-f: 监听文件新增内容
head 命令
head 命令是用来显示文件开头内容的命令,基本信息如下:
命令名称:head
所在路径:/usr/bin/head
执行权限:所有用户
功能描述:显示文件开头的内容
命令格式:head [选项] 文件名
-n: 行数:从文件开头开始,显示指定行数
-v:显示文件名
四.通用命令
rm 命令
rm是最强大的删除命令,不仅可以删除文件,也可以删除目录,基本信息如下:
命令名称:rm
所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件或目录
命令格式:rm [选项] 文件或目录
选项:
-f: 强制删除
-i: 交互删除,在删除之前会询问用户
-r: 递归删除,可以删除目录
mv 命令
mv命令用来剪贴文件或目录,基本信息如下:
命令名称:mv
所在路径:/bin/mv
执行权限:所有用户
功能描述:移动文件或目录
命令格式:cp [选项] 源文件 目标文件
选项:
-f: 强制覆盖,如果目标文件已经存在,则不询问直接强制覆盖
-i: 交互模式,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-v:显示详细信息
stat命令
stat命令是查看文件详细的命令,基本信息如下:
命令名称:stat
所在路径:/usr/bin/stat
执行权限:所有用户
功能描述:显示文件或文件系统的详细信息
命令格式:stat [选项] 文件名
选项:
-f:显示文件系统状态而非文件状态
-t:以简洁方式输出信息
cp 命令
cp命令用于复制文件或目录,基本信息入下:
命令名称:cp
所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
命令格式:cp [选项] 源文件 目标文件
选项:
-d: 如果文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i: 询问,如果目标文件已经存在,则会询问是否覆盖
-p: 复制后目标文件保留源文件的属性(包括所有者、所有组、权限和时间)
-r: 递归复制,用于复制目录
-a: 相当于-dpr选项的集合
5 基本权限管理
chmod 命令
chmod用来修改文件的权限,基本信息如下:
命令名称:chmod
所在路径:/bin/chmod
执行权限:所有用户
功能描述:修改文件的权限模式
命令格式:chmod [选项] 权限模式 文件或目录
选项:
-R: 递归设置权限,也就是给予目录中的所有文件设定权限
--reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。
chmod命令的权限模式分为符号组合和八进制数组合
符号组合的格式是[ugoa][[+-=][permission]],也就是[用户身份][[赋予方式][权限]]的格式。
用户身份
u:代表所有者(user)
g:代表所属组(group)
o:代表其他人(other)
a:代表全部身份(all)
赋予方式
+:加入权限
-:减去权限
=:设置权限
权限
r: 读取权限(read)
w: 写权限(write)
x: 执行权限(execute)
八进制数组合的格式是[0-7][0-7][0-7]三位数字组成(每一位数字都是权限之和),第一位是所有者权限,第二位是所属组权限,第三位其他人权限
r读取权限对应的数字是4
w写权限对应的数字是2
x执行权限对应的数字是1
例如读写权限rw八进制数表示 6
chown 命令
chown 命令用来修改文件和目录的所有者和所属组,基本信息如下:
命令名称:chown
所在路径:/bin/chown
执行权限:所有用户
功能描述:修改文件和目录的所有者和所属组
命令格式:chown [选项] 所有者[:所属组] 文件或目录
选项:
-R:递归设置权限,也就是给予子目录的所有文件设置权限
当省略 “:所属组” ,仅改变文件所有者
注意:普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。普通用户可以修改所有者是自己的文件权限。
umask 命令
umask命令用来显示或设置创建文件或目录的权限掩码。
我们需要先了解一下新建文件和目录的默认最大权限,对于文件来讲,新建文件的默认最大权限是666,没有执行权限,只是因为执行权限对文件来讲比较危险,不能再新建文件的时候默认赋予,而必须通过用户手工赋予;对于目录来讲,新建目录的默认最大权限是777,这是因为对目录而言,执行权限仅仅代表进入目录,所以即使新建目录时直接默认赋予也没有什么危险。
按照官方的标准算法,umask默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到正确的新建文件和目录的默认权限,这种方法既不好计算也不好理解,不推荐。我们这里按照权限字母来讲解umask权限的计算方。我们就按照默认的umask值是0022(等效于022)分别来计算一下新建文件和目录的默认权限,
文件的默认权限最大只能是666,而umask的值是022,则 rw-rw-rw- 减去 ----w--w-等于rw-r--r--,所以新建文件的默认权限是rw-r--r--
目录的默认权限最大是777,而umask的值是022,则 rwxrwxrwx 减去 ----w--w-等于rwxr-xr-x,所以新建目录的默认权限是rwxr-xr-x
同理,如果umask的值是033,新建文件的默认权限为 rw-rw-rw- 减去 ----wx-wx等于rw-r--r--
命令格式:umask [选项] [模式]
选项:
-p:输出的权限掩码可直接作为指令来执行
-S:以符号组合的方式输出权限掩码,不使用该选项时以八进制数的形式输出
6.帮助命令
man 命令
man命令是最常见的帮助命令,也是Linux最主要的帮助命令,基本信息如下:
命令名称:man
所在路径:/usr/bin/chown
执行权限:所有用户
功能描述:显示连机帮助手册
命令格式:man [选项] [章节] 命令
选项:
-f: 查看命令有哪些章节的帮助和简短描述信息,等价于whatis指令
-k: 查看和命令相关的所有帮助
man命令交互快捷键:
上箭头:向上移动一行
下箭头:向下移动一行
PgUP:向上翻一页
PgDn:向下翻一页
g:移动到第一页
G:移动到最后一页
q:退出
/字符串:从当前向下搜索字符串
?字符串:从当前向上搜索字符串
n:当搜索字符串时,可以用n键找到下一个字符串
N:当搜索字符串时,使用N键反向查询字符串。也就是说,如果使用“/字符串”方式搜索,则N键表示向上搜索字符串;如果使用“?字符串”方式搜索,则N键表示向下搜索字符串
info 命令
info 命令的帮助信息是一套完整的资料,每个单独命令的man帮助信息只是这套完整资料的某一个区段(节点),基本信息如下:
命令名称:info
所在路径:/usr/bin/info
执行权限:所有用户
功能描述:显示一套完整的帮助信息资料
命令格式:info [选项] 参数
选项:
-d:添加包含info格式帮助文档的目录
-f:指定要读取的info格式的帮助文档
-n:指定首先访问的info帮助文件的节点
-o:输出被选择的节点内容到指定文件
参数:指定需要获得帮助的主题,可以是指令、函数以及配置文件
info命令交互快捷键
上箭头:向上移动一行
下箭头:向下移动一行
PgUP:向上翻一页
PgDn:向下翻一页
Tab:在有“*”符号的节点间切换
回车:进入有“*” 符号的子页面,查看详细帮助信息
u:进入上一层信息(回车是进入下一层信息)
q:退出info帮助信息
n:进入下一小节信息
p:进入上一下节信息
?:查看帮助信息
help 命令
help 命令只能获取shell内置命令的帮助,基本信息如下:
命令名称:help
所在路径:shell 内置命令
执行权限:所有用户
功能描述:显示shell内置命令的帮助。可以使用shell内置命令type来区分内置命令与外部命令,对于外部命令的帮助信息只能使用man或者info命令查看
命令格式:help [选项] 内置命令
选项:
-d:显示内建命令的简要描述。
-m:按照man手册的格式输出内置命令的帮助信息。
-s:仅输出内建命令的命令格式。
7 .搜索命令
whereis 命令
whereis 是搜索命令的命令,也就是说whereis不能搜索普通文件,而只能搜索系统命令,基本信息如下:
命令名称:whereis
所在路径:/usr/bin/whereis
执行权限:所有用户
功能描述:查找二进制命令、源文件和帮助文档的路径
命令格式:whereis [选项] 参数
选项:
-b:只查找二进制文件
-B 目录:只在设置的目录下查找二进制文件
-m:只查找说明文件
-M 目录:只在设置的目录下查找说明文件
-s:只查找原始代码文件
-S 目录:只在设置的目录下查找原始代码文件
-f:不显示文件名前的路径名称
which 命令
which 也是搜索系统命令的命令,和whereis的区别在于,whereis命令可以在查找二进制命令的同时,查找帮助文档的位置,而which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以查到别名命令。基本信息如下:
命令名称:which
所在路径:/usr/bin/which
执行权限:所有用户
功能描述:列出二进制命令路径和别名。which只会在环境变量$PATH设置的目录里查找符合条件的命令
命令格式:which [选项] 参数
find 命令
find命令用来在指定目录下查找文件,基本信息如下:
命令名称:find
所在路径:/bin/find
执行权限:所有用户
功能描述:在指定目录中搜索文件
命令格式:find [搜索路径] [选项]
搜索路径:省略则默认为当目录,相当于 "find ."
选项:
-name 范本样式:按照文件名称搜索,支持通配符模糊查询
-iname 范本样式:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别
-inum inode编号:查找符合指定的inode编号的文件或目录
-path 范本样式:查找路径包含范本样式的文件或目录
-regex 范本样式:正则表达式搜索
-iregex 范本样式:同"-regex",忽略大小写
-size [+|-]文件大小[cwbkMG] :查找符合指定的文件大小的文件
"+" 的意思是搜索比指定大小还要大的文件,"-" 的意思是搜索比指定大小还要小的文件
"cwbkMG"是单位,c——字节,w——字(2字节),b——块(512字节),k——千字节,M——兆字节,G——吉字节。如果不写单位默认是b
-atime [+|-]天数:按照文件最后一次访问时间搜索,单位每天
"+"、"-"的含义,例如"5"表示恰好5天前的那一天,"+5"超过5天前的时间,"-5"5天内的时间。(以下按时间搜索选项中"+"、"-"含义相同)
-mtime [+|-]天数:按照文件数据最后一次修改时间搜索,单位每天
-ctime [+|-]天数:按照文件元数据(如权限等)最后一次修改时间搜索,单位每天
-amin [+|-]分钟数:按照文件最后一次访问时间搜索,单位每分钟
-mmin [+|-]分钟数:按照文件数据最后一次修改时间搜索,单位每分钟
-cmin [+|-]分钟数:按照文件元数据(如权限等)最后一次修改时间搜索,单位每分钟
-perm [+|-]权限数值:查找符合指定的权限数值的文件或目录。例如,权限数值为"766"表示权限恰好等于766,"-766"表示文件权限必须全部包含766,"+766"表示文件权限包含766任意一个权限
-uid 用户ID:查找所有者是指定用户ID的文件
-user 用户名:查找所有者是指定用户名的文件
-gid 组ID:查找所有组是指定组ID的文件
-group 组名:查找所有组是指定组名的文件
-nouser:查找没有所有者的文件
按照所有者和所有组搜索时,"-nouser"选项比较常用,主要用于查找垃圾文件。没有所有者的文件比较少见,那就是外来文件,比如光盘和U盘的文件是由Windows复制的,在Linux中查看就是没有所有者的文件,再比如手工源码包安装的文件也可能没有所有者
-type 文件类型:只寻找符合指定的文件类型的文件
f——普通文件,l——符号连接,d——目录,c——字符设备,b——块设备,s——套接字,p——Fifo
-empty:查找文件大小为0的文件
-maxdepth 目录层级数:设置搜索的最大目录层级
-mindepth 目录层级:设置搜索的最小目录层级
-exec 执行指令:把find命令查找结果交由"-exec"调用的命令来处理
格式:find [搜索路径] [选项] -exec 命令 {} \;, 其中"{}"代表find命令的查询结果
-ok 执行指令:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户是否执行
-prune:不寻找字符串作为寻找文件或目录的范本样式
-a:and 逻辑与
-o: or 逻辑或
-not:not 逻辑非