1.Linux的背景
1.1什么Linux
Linux是⼀个操作系统.和Windows是"并列"的关系.
1.2Linux系统的优势
1. 开源(意味着免费,便宜)
2. 稳定(Linux可以运⾏很多年,都不会发⽣重⼤问题)
3. 安全(Linux只有管理员或者特定⽤⼾才能访问Linux内核)
4. ⾃由(不会被强加商业产品和服务)
5. 社区⽀持(Linux在全球社区都⾮常活跃和使⽤⼴泛,有很多志愿者在线帮⼤家解决问 题)
1.3我们学习Linux什么
基础命令
Linux虽然也有图形化界⾯,但是在服务器/嵌⼊式设备上往往都是通过命令⾏的⽅式操作的.因此学习Linux命令就是使⽤Linux的重要基础.使⽤命令相⽐于使⽤图形界⾯主要有以下好处:
1• 节省系统资源:运⾏图形界⾯需要让系统付出⼀些额外的资源开销.尤其是对于配置⽐较低的嵌⼊式设备,这⼀点⾄关重要.
2•节省⽹络带宽:如果通过⽹络访问服务器,使⽤图形界⾯需要传输⼀帧⼀帧的图像,⽽使⽤命令只需要传输简单的字符串.
3• 便于批量执⾏任务:可以通过⼀些"脚本"代码(⽐如LinuxShell)来批量执⾏⼀些任务,完成⼀些简单的编程⼯作.(⽐如定时备份⽂件,删除⽂件等).
Windows也有命令(也就是cmd),只是对于普通⽤⼾来说很少使⽤.
系统编程&⽹络编程
1.Linux⾃⾝提供了⼀些API,供程序猿调⽤来完成⼀些更复杂的编程任务(⽐如⽂件操作,多线程编程, socket编程等).
但是由于Java跨平台的特性,这部分功能已经被Java⾃⾝封装好了(流对象,Thread对象,Socket对象等).所以这部分内容我们不必再学习了.
部署JavaWeb项⽬
我们⾃⼰写的web程序,要想让其他的⽤⼾能够访问,就需要发布到服务器上.这是我们接下⾥重点学习的内容.
2.服务器的部署
对于这次学习,我准备购买腾讯云的服务器,购买一个服务器进行学习,
3.购买之后我们使用Xshell终端软件连接到linux
4.linux常见的命令
1.LS
语法:ls[选项][⽬录或⽂件]
功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信息。
常⽤选项: • -a列出⽬录下的所有⽂件包括以.开头的隐含⽂件。
• -d将⽬录象⽂件⼀样显⽰,⽽不是显⽰其下的⽂件。如:ls‒d指定⽬录
• -k 以 k字节的形式表⽰⽂件的⼤⼩。ls ‒alk指定⽂件
• -l列出⽂件的详细信息。
• -r对⽬录反向排序。
• -t以时间排序。
• -R列出所有⼦⽬录下的⽂件。(递归)
2.pwd
语法:pwd
功能:显⽰⽤⼾当前所在的⽬录
3.cd
Linux系统中,磁盘上的⽂件和⽬录被组成⼀棵⽬录树,每个节点都是⽬录或⽂ 件。
语法:cd⽬录名
功能:改变⼯作⽬录。将当前⼯作⽬录改变到指定的⽬录下.
linux目录结构
linux是一个树形的目录
⼏个特殊的⽬录:
• /称为根⽬录
• .称为当前⽬录
• ..称为当前⽬录的上级⽬录
绝对路径vs相对路径
形如: /usr/share/tomcat/logs/ 以根⽬录开头的,称为绝对路径.
形如: ./logs 以 . 或者 .. 开头的,称为相对路径.
使⽤tab键补全
我们敲的所有的Linux命令,都可以使⽤tab键来尝试补全,加快效率.使 ⽤ctrl+c重新输⼊
如果命令或者⽬录敲错了,可以ctrl+c取消当前的命令
4.touch
语法:touch[选项]...⽂件...
功能:touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者 新建⼀个不存在的⽂件
5.cat
语法:cat[选项][⽂件]
功能:查看⽬标⽂件的内容
常⽤选项: • -n对输出的所有⾏编号
6.mkdir
语法:mkdir[选项]dirname...
功能:在当前⽬录下创建⼀个名为“dirname”的⽬录
常⽤选项:
• -p,--parents可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选 项后,系统将⾃动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多级⽬录
举例: # 递归建⽴多个⽬录 mkdir –p test/test1
7.vim的使用(重要)
1) 打开文件 vim [⽂件名]
2)进⼊插⼊模式
vim打开⽂件后默认是普通模式.普通模式下键盘的按键表⽰⼀些特殊功能 的 快捷键.(例如按下j并不是输⼊字⺟"j",⽽是表⽰光标往下移动⼀⾏). 需 要进⼊插⼊模式才能进⾏⽂本编辑.
使⽤i键可以进⼊到插⼊模式.(左下⻆提⽰--INSERT--)然后就可以像记 事本⼀样正常编辑了.
3)保存
在插⼊模式下不能保存⽂件,需要先回到普通模式.按下 Esc 回到普通 模式.在普通模式下输⼊ :w ,再按下回⻋,即可保存⽂件.
4)退出
在插⼊模式下不能退出,需要先回到普通模式.退出时,分以下情况:
①⽂件未修改:输⼊ :q ,再按下回⻋,即可退出
②⽂件修改并保存:使⽤ :wq 同时执⾏保存和退出.
③⽂件修改,但不希望保存:使⽤:wq! 进⾏强制退出
8.rm
语法:rm[-f-i-r-v][dirName/dir]
功能:删除⽂件或⽬录常⽤选项:
• -f即使⽂件属性为只读(即写保护),亦直接删除
• -i删除前逐⼀询问确认
• -r删除⽬录及其下所有⽂件
9.cp
语法:cp [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
功能:复制⽂件或⽬录
说明:cp指令⽤于复制⽂件或⽬录,如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中。若同时指定多个⽂件或⽬录,⽽最后的⽬的地并⾮⼀个已存在的⽬录,则会出现错误信息
常⽤选项:
• -f或--force强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在
• -i或--interactive覆盖⽂件之前先询问⽤⼾
• -r递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理
• -R或--recursive递归处理,将指定⽬录下的⽂件及⼦⽬录⼀并处理
举例:cp test1.txt test2.txt
注意:复制,复制目录需要-r 同时就能够递归的把内容复制到其他地方
10. mv
语法:mv[选项]源⽂件或⽬录⽬标⽂件或⽬录
功能:
1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其移⾄⼀个新的⽬录中。
2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
3. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源⽂件均移⾄⽬标⽬录中。
常⽤选项
• -f:force强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖
• -i:若⽬标⽂件(destination)已经存在时,就会询问是否覆盖!
11.man(查看手册)
12.grep
语法:grep[参数]...[⽂件]...
功能:⽤于查找⽂件中是否包含指定字符串,并显⽰对应的⾏.
这个意思就是把txt中包含aaa的行显示出来
选项:
• -n<⾏数>显⽰的⾏数
• -w全字匹配.要求整个单词都完全相同的结果才能匹配出来,⽽不仅仅是⼀个单词的⼀部分.
• -r递归查找.可以搜索多级⽬录下的所有⽂件.
• --color⾼亮查找到的结果
• --include指定查找某些⽂件
• --exclude指定排除某些⽂件
13.ps
语法:ps[参数]...
功能:⽤于查看当前系统上运⾏的进程
选项:
• a显⽰⼀个终端的所有进程
• u以⽤⼾为主的格式来显⽰程序状况
• x显⽰所有程序,不⽌是会话中的进程
• e显⽰所有进程,包括系统守护进程
• f显⽰完整格式输出
| 叫做管道 能够把多个命令连接到一起,把前一个命令的输出,作为后一个命令的输入
14.netstat
语法:netstat[参数]...
功能:查看系统上的⽹络状态.
选项:
• -a显⽰所有正在或不在侦听的套接字
• -n显⽰数字形式地址⽽不是去解析主机、端⼝或⽤⼾名
• -p显⽰套接字所属进程的PID和名称