注意,此篇文章只是简单介绍linux,因为博主主要是java方向的
java程序员学linux主要是把写好的网站部署到互联网上,可以让其他用户访问到
这里我的linux是centos7
Linux是一个操作系统(搞管理的软件),和windows并列
Linux准确的来说是一个统称,或者可以认为是一个“操作系统内核”
一个完整的系统=操作系统内核(linux)+配套的应用程序
linux是一个免费的开源工具,于是就有很多企业基于linux内核,搭配了不同的应用程序,从而诞生了不同的操作系统,这些操作系统由于都是基于linux的,于是统称linux
主要有四种:
我们以腾讯云为例, 其他的服务器厂商也是类似.
终端软件是一类工具软件, 可以和远程的主机建立网络连接, 从而对主机进行一些操作.这里使用的是xshell
XShell 提供了两种授权方式.
企业版: 收费.
家庭/教育版: 免费.
我们选择 家庭/教育 版即可. 下载的时候需要填一下名字和邮箱. 下载链接会被发送到填写的邮箱中.
使用 XShell 登陆主机
左上角打开,然后新建会话
在 XShell 终端下输入
ip 为腾讯云后台页面中看到的 外网 IP.
如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆.
备注: 这里的用户名为 root, 密码是在最初购买服务器的时候设置的密码.
以后我们就用管理员的方式就行了
在linux上,操作的时候都是靠输入命令的方式来进行的,不像windows那样有一个图像化的界面
其实linux也是有图形化界面的,但是在实际工作中,一般不会使用,甚至不会安装
接下来的命令,都是属于linux上最常用的命令,其中相当一部分都是和文件/目录相关的操作
ls–list
列出当前目录/指定目录中都有哪些文件,相当于双击了某个目录,查看里面的内容
其中蓝色的是目录,白色的是普通文件,红色的是压缩文件
ls后面跟上一个具体的目录,就可以看到指定目录中的内容
在xshell中,用ctrl+l来清屏
1.-l 列出文件的详细信息。 (可以用ll来替换ls -l)
-l分为加了/和没加/
没加/ 相当于文件平铺式的排列(第一种)
加了/就相当于取消文件格式的排列(第二种)
2.-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
3.-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
4.-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
5.-r 对目录反向排序。
6.-t 以时间排序。
7.-R 列出所有子目录下的文件。(递归)
其他不多做解释,自己演示
这些选项也叫做命令行参数,参数和参数之间至少用一个空格来分割,这些选项都不需要去记
change directory切换目录
相当于在文件资源管理器中,双击某个目录
cd后面,跟上你要切换的目录的路径,可以是绝对路径也可以是相对路径
linux上的绝对路径是以/开头的
相对路径也是以./(当前目录)和…/(当前目录的上一级目录)开头的
随着cd的进行,当前所在的目录就会发生变化
在输入命令/输入文件目录的时候,可以使用tab来补全
直接使用cd,后面不加任何选项/路径,此时就会回到home目录
防止用户迷路的,有时候cd太多了,都不记得当前处在哪个路径中了,就可以用pwd查看当前的完整路径是啥
创建一个空的文件
cat–concatenate
读取文件内容
cat针对简单短小的文件还好,如何文件很大很长,cat就不方便了
用户命令手册,去查一些命令以及它的用法的
比如我输入一个man cat
echo是回显的意思,可以回显到控制台上
也可以写入文件里面
但是如果再往这个文件里写新的内容,再用cat读取的时候,文件里的内容就会变成新写入的内容了
因此每次进行exho+重定向就会清空原有内容,这样就有点麻烦,有的时候我们想在中间加点儿内容啥的,用echo就不行
因此cat和echo这样的命令只适合针对简单的文件进行操作,如果文件复杂或者编辑的需求复杂,就不太适合了
echo和cat并不是没有用,当我们需要使用脚本批量处理很多操作的时候可以用到
假设有一个服务器集群,有百八十台机器,每个服务器上都有一个数据文件,这个数据文件上记录了一个信息(比如,记录了当前可执行程序的版本号),就可以写一个脚本,通过这个脚本,自动登录到这些机器上,并且读取文件内容,获取到版本号
vim就可以针对复杂的文件,进行复杂的编辑
vim是linux上自带的文本编辑器,相当于windows的记事本
vim的功能非常复杂,但是这里只介绍最最最基本的三个功能’
1.打开文件
使用vim 文件名/文件路径
2.编辑文件
为了追求编辑效率,vim引入了大量的快捷键,默认情况下,键盘上的按键都是按照快捷键的方式来进行作用的,此时,键盘上的每个按键都被赋予了特殊的含义,就都不再是单纯的输入文本了
vim中分模式
默认情况下,vim处于normal mode(普通模式),此时按键都是快捷键
要想编辑,需要切换到insert mode(插入模式),此时键盘按键才是输入文本,进入插入模式的有很多,这里只说一个,就是按以下键盘上的 i 这个小写字母
按了之后,你就会在vim的左下角页面看到了INSERT
这个时候就可以用键盘来进行编辑了
在这个模式下,vim的行为就和记事本基本一致了
为什么说基本一致呢,当然不是完全一样的
在linux中,复制是ctrl+insert 粘贴是shift+insert
如果你的电脑没有insert,可以在xshell中设置快捷键,但是不要设置成ctrl+c和ctrl+v,因为这两个在linux中有其他的含义
3.保存退出
当你编辑完成之后,这个时候没有x让你退出,也不要按ctrl+s保存,这个是xshell的冻结功能,有时候终端上显示内容太快了,你来不及看,就可以使用ctrl+s来冻结,如果想解冻,就是strl+q
在vim中退出分三步
(1).先回到普通模式,按esc
(2).输入 “:wq” 然后再按回车
(输入 : 的时候,光标来到了最下面的一行,此时vim处在命令模式,接下来输入的wq就是vim命令,w–write,q–quit)
对于java程序员来说,掌握上述vim的三个操作就足够了
mkdir–创建目录
mk–make
dir–directory
相当于windows右键新建目录
删除文件/目录
如果是删除文件就直接rm
如果是删除文件就得rm -r进行递归删除,因为删除目录的时候还要删除里面所有的文件和子目录
上图这里,你每删除一次,都需要你确认一次,如果这个目录有好几万个文件呢》你需要确认好几万次吗?
当然不是,可以输入“rm -rf 要删除的目录”强制删除,不需要确认
或者rm -rf *,就是把当前目录的所有都删了
但是这个操作是个非常危险的操作,linux的命令行中,没有回收站这个概念
copy复制
可以指定文件复制,可以复制当前文件
cp不光可以复制文件,还可以复制目录,但是复制目录的时候,必须要加上一个 -r选项(r表示递归)
拷贝文件,有的时候是非常危险的,如果拷贝的目标文件已经存在,并且文件里的内容非常重要,就会出现覆盖的情况
move 移动
除了去移动文件位置,还可以给文件重命名
linux中没有单独的命令来重命名,就是靠mv来完成的
cp是比较慢的,尤其是cp比较大的目录或文件,需要大规模读写硬盘,mv则是非常快的,即使mv移动的目标很大,也是瞬间完成,文件系统中,每个文件的“路径”,就是一个简单的属性,mv只是修改了这个路径属性而已,时间复杂度是O(1)
由于linux没有回收站,经常会使用mv来模拟回收站的效果,想要删除某个东西,并不是直接rm,而是通过mv移动到一个单独的目录中在mv里,在mv中,上级目录没法移动到下级目录中
字符串匹配命令
快速搜索某个文件里是否包含特定字符串
如果加了 -n,就会告诉你找到的这串字符串在第几行
grep可以同时在很多文件中进行搜索
process show查看进程的命令
很多时候,不会关心所有的进程,只关心咱们想看到的进程
配合grep就可以快速筛选了