当前市面上常见的系统:Windows、Linux、Mac OS、Android、IOS……
Linux 不太适合日常使用,但是非常适合用于开发。因此作为一个程序猿来说,Linux 都是务必要掌握的。
Linux 介绍
Linux 发行版
目前市面上比较知名的发行版有:RedHat、Ubuntu、CentOS、Debian、Fedora……
RedHat 是商业中经常用的一个(收费但服务好,有公司给你维护),这里建议使用Ubuntu、CentOS。
如何获取 Linux 环境
- 虚拟机:用软件,模拟硬件,进一步的在模拟出来的电脑中,装一个 Linux 系统。使用虚拟机本身有很多 bug,并且虚拟机不能解决外网 ip 的问题,因此不太推荐使用。
- WSL:全称 Windows Subsystem Linux. MS 在 2018 年搞出来的黑科技,在 Windows 内部内嵌了一个 Linux 内核。成熟度很高,没有像虚拟机那样有各种 bug。但同样不能解决 外网 ip 问题。
- 云服务器:很多云服务器厂商,如 阿里云、腾讯云、华为云、金山云……自建了一些机房,养了一堆服务器,可以按需租给你使用。就相当于租了一个电脑,虽然这个电脑的配置非常低,但是完美解决了外网 ip 的问题。
在买完后,可以在控制台中找到我们的云服务器(CentOS 7.6 这里以腾讯云为例) 。
首次使用,一般建议在更多中设置一下密码。同时建议密码设置的复杂一点,否则就会有很多的黑客尝试登录你的机器。
如何远程登录到云服务器上
-
直接基于云服务器后台提供的终端来登录。这种方式总的来说是不够通用的,但也不是不可以。(不太推荐)
-
使用单独的终端软件来进行登录(Xshall),这种方式更加常用而且可以白嫖!!!(推荐)
Xshall官方网站(家庭/学校免费版)下载地址
进入到 Xshall 后,就可以新建会话了。
接下来点击连接,会有弹窗要求你输入用户名和密码。CentOS 的用户名是 root
,Ubuntu 的用户名则是ubuntu
,服务器密码则是你后台设置的初始密码。
连接好了后就是下面这个样子。
认识 Linux 目录结构
Linux 是一个树形结构
几个特殊的目录:
/ 称为根目录
. 称为当前目录
… 称为当前目录的上级目录
绝对路径 vs 相对路径
形如:/usr/share/tomcat/logs/ 以根目录开头的,称为绝对路径。
形如: ./logs 以 . 或者 … 开头的,称为相对路径。
Linux 常用命令
关于XShell 下的复制粘贴,ctrl + c / ctrl + v 是不行的.
复制:ctrl + insert ,粘贴:shift + insert。
使用tab 键补全:我们敲的所有的 Linux 命令,都可以使用 tab 键来尝试补全,加快效率。
ls
语法:ls [选项] [目录或文件]
(类似于 Windows 的文件资源管理器)
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -l 列出文件的详细信息。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归)
更多时候,使用的是 ls -l
方式(也可以写作ll
)
pwd
语法:pwd
功能:显示用户当前所在的目录
cd
Linux 系统中,磁盘上的文件和目录被组成一颗目录树,每个节点都是目录或文件。
语法:cd [目录名]
功能:改变工作目录,将当前工作目录改变到指定的目录下。
举例:
cd ..
:返回上一级目录。
cd ~
:进入用户目录。
cd -
:返回最近访问目录。
touch
语法:touch [选项]
文件
功能:touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例:
touch test.tsxt
cat
语法:cat [文件]
功能: 查看目标文件的内容
举例:
cat test.txt
vim
vim 是一个知名的文本编译器。前面学习的命令只能查看文本,不能编译文本,使用 vim 就可以进行编辑了。
vim 就相当于 Windows 的记事本,只不过功能比记事本强大一点
-
创建文件/打开文件
vim [文件名]
-
进入插入模式
vim 打开文件后默认是普通模式。普通模式下键盘的按键表示一些特殊功能的快捷键。(例如按下 j 并不是
输入字母 “j”,而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑。
使用 i 键可以进入到插入模式。(左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了。
-
保存
在插入模式下不能保存文件,需要先回到 普通模式 。按下 Esc 回到普通模式。
在普通模式下输入 :w ,再按下回车,即可保存文件。
-
退出
在插入模式下不能退出,需要先回到 普通模式。
在普通模式下输入 :q ,再按下回车,即可退出。
也可以直接使用
:wq
同时执行保存和退出
mkdir
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p,–parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录。
举例:
mkdir –p test/test1
: 递归建立多个目录。
rm
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
举例:
rm test.txt
cp
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在
的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的
目的地并非一个已存在的目录,则会出现错误信息
常用选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
举例:
cp text1.txt text2.txt
mv
语法: mv [选项]
[源文件或目录]
[目标文件或目录]
功能:移动文件或目录
举例:
mv test1.txt test2.txt
man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项]
命令
常用选项
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- man man 能够看到 man 手册中的若干个章节及其含义.
举例:
man ls
grep
语法:grep [参数] [文件]
功能:用于查找文件中是否包含指定字符串,并显示对应的行。
举例:
gerp "hello" hello.java
ps
语法:ps [参数]…
功能:用于查看当前系统上运行的进程
选项:
- a 显示一个终端的所有进程
- u 以用户为主的格式来显示程序状况
- x 显示所有程序,不以终端机来区分
举例:
ps aux # 显示系统上所有的进程
ps aux | grep "进程名"
ps aux | grep "进程id"
netstat
语法:netstat [参数]…
功能:查看系统上的网络状态.
选项:
- -a 显示所有正在或不在侦听的套接字
- -n 显示数字形式地址而不是去解析主机、端口或用户名
- -p 显示套接字所属进程的PID和名称
举例:
netstat -anp
etstat -anp | grep "进程名"
netstat -anp | grep "端口号"