Linux 基本使用

目录

一. 初识Linux 

1.1 Linux 是什么

1.2 Linux 发行版

1.3 关于 Linux 我们学习什么 

二. Linux 环境搭建

2.1 环境搭建方式

2.2 使用云服务器

2.3 使用终端软件连接到 Linux

三.  Linux 常用命令


一. 初识Linux 

1.1 Linux 是什么

       Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,和 Windows 是 "并列" 的关系.其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。

1.2 Linux 发行版

       Linux 严格意义来说只是一个 "操作系统内核";一个完整的操作系统  =  操作系统内核  +  配套的应用程序;由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核,提供了不同的配套程序,这就构成了不同的 "发行版"。

     企业中最主要使用的发行版是 RedHat (红帽)。 但是 RedHat 是一个收费的系统,因此我们使用的是基于红帽系统的的社区免费版本 CentOS。

CentOS 和 RedHat 的关系

       RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码去掉 RedHat 的 logo 商标, 重新编译一次。

       RedHat对这种发行版的态度是:“ 我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”

       所以,CentOS可以得到RedHat的所有功能,甚至是更好的软件。但CentOS并不向用户提供商业支持,当然也不负上任何商业责任。

1.3 关于 Linux 我们学习什么 

1) 基础命令

Linux 虽然也有图形化界面, 但是在 服务器 / 嵌入式设备上往往都是通过命令行的方式操作的. 因此学习 Linux 命令就是使用 Linux 的重要基础.

使用命令相比于使用图形界面主要有以下好处:

  • 节省系统资源: 运行图形界面需要让系统付出一些额外的资源开销. 尤其是对于配置比较低的 嵌入式设备, 这一点至关重要;
  • 节省网络带宽: 如果通过网络访问服务器, 使用图形界面需要传输一帧一帧的图像, 而使用命令 只需要传输简单的字符串;
  • 便于批量执行任务: 可以通过一些 "脚本" 代码 (比如 Linux Shell) 来批量执行一些任务, 完成 一些简单的编程工作. (比如定时备份文件, 删除文件等);

Windows 也有命令(也就是 cmd), 只是对于普通用户来说很少使用。

2) 系统编程 & 网络编程

Linux 自身提供了一些 API, 供程序猿调用来完成一些更复杂的编程任务(比如文件操作, 多线程编程, socket 编程等)。

但是由于 Java 跨平台的特性, 这部分功能已经被 Java 自身封装好了 (流对象, Thread 对象, Socket 对象 等). 所以这部分内容我们不必再学习了。

3) 部署 JavaWeb 项目

我们自己写的 web 程序, 要想让其他的用户能够访问, 就需要发布到服务器上; 这是我们接下里重点学习的内容。

小结: 对于 Java 程序猿, 关于 Linux 重点学习 基础命令 和 项目部署 即可。

二. Linux 环境搭建

2.1 环境搭建方式

主要有四种:

  1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].
  2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一 些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]
  3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows 系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [暂时不推荐].
  4. 使用云服务器, 可以直接在腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器. [墙裂 推荐]

       使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用。

2.2 使用云服务器

我们以腾讯云为例, 其他的服务器厂商也是类似.

1. 进入官方网站 腾讯云 - 产业智变 云启未来 (tencent.com)

2. 登陆网站(可以使用 qq 或者 微信 登陆)

3. 在控制台中找到自己买的服务器

4. 在服务器中找到公网 IP 地址

红色方框为公网 ip 地址, 稍后我们就会使用这个 ip 登陆服务器。

5. 设置 root 密码: 勾选服务器, 点击重置密码(这个环节可能需要手机短信验证);root 密码建议设置的稍微复杂一些, 否则容易被黑客入侵。

小结:

在这个环节我们最重要的是得到三个信息:

  1. 服务器的外网 IP
  2. 服务器的管理员账户 (固定为 root)
  3. 管理员账户密码(在腾讯云网站上设置的) 这三个信息是我们登陆到 Linux 上的必要条件;

2.3 使用终端软件连接到 Linux

什么是终端软件

终端软件是一类工具软件, 可以和远程的主机建立网络连接, 从而对主机进行一些操作;

常见的终端软件: XShell,Putty,MobaXTerm,Iterm2,SecureCRT ......

我们使用的是 XShell。

下载 XShell

下载地址:NetSarang Website (xshell.com)

XShell 提供了两种授权方式;

企业版:收费

家庭/教育版:免费

我们选择 家庭/教育 版即可,下载的时候需要填一下名字和邮箱,下载链接会被发送到填写的邮箱中;点击邮箱中的下载链接即可完成下载。

使用 XShell 登陆主机

1. 在 XShell 终端下输入

ssh 服务器外网ip地址

ip 为腾讯云后台页面中看到的 外网IP;如果网络畅通, 将会提示输入用户名密码,输入即可正确登陆。

2. 也可以创建会话:

关于XShell 下的复制粘贴

复制: ctrl + insert (有些同学的 insert 需要配合 fn 来按)

粘贴: shift + insert 

三. Linux 常用命令

1. ls

语法: ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

常用选项:

  •  -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)

2. pwd

语法: pwd

功能:显示用户当前所在的目录

3. cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

语法: cd 目录名

功能: 改变工作目录,将当前工作目录改变到指定的目录下。

举例:

  • cd .. : 返回上级目录
  • cd ~ :进入用户家目
  • cd - :返回最近访问目录

认识 Linux 目录结构

绝对路径 vs 相对路径

形如: /usr/share/tomcat/logs/ 以根目录开头的, 称为绝对路径.

形如: ./logs 以 . 或者 .. 开头的, 称为相对路径.

使用 tab 键补全

我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.

使用 ctrl + c 重新输入

如果命令或者目录敲错了, 可以 ctrl + c 取消当前的命令.

4. touch

语法: touch [选项]... 文件...

功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的 文件。

举例:

  • touch test.txt

5. cat 

语法:cat [选项] [文件]

功能: 查看目标文件的内容

常用选项:

  • -n 对输出的所有行编号
  • cat test.txt

6.  mkdir

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

常用选项:

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将 自动建立好那些尚不存在的目录,即一次可以建立多级目录

7. rm

语法:rm [-f-i-r-v] [dirName/dir]

功能:删除文件或目录

常用选项:

  • -f 即使文件属性为只读(即写保护),亦直接删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件

 重要注意事项: 千万不要运行 rm -rf / , 尤其是在公司的生产服务器上。

8. cp

语法:cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在 的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的 目的地并非一个已存在的目录,则会出现错误信息

常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录 或符号链接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

9. man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

语法: man [选项] 命令

常用选项:

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • man man 能够看到 man 手册中的若干个章节及其含义.

10. less

语法: less [参数] 文件

功能:查看文件内容. 不会立刻把所有文件内容加载到内存中. 也能进行查找.

选项:

  • j k / 方向键: 向上向下滚动屏幕.
  • -N  显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • q: 退出

11. head

语法:head [参数]... [文件]... 

功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:

  • -n 显示的行数

12. tail

语法: tail [必要参数] [选择参数] [文件] 

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:

  • -f 循环读取
  • -n 显示行数

13. grep

语法:grep [参数]... [文件]... 

功能:用于查找文件中是否包含指定字符串, 并显示对应的行.

选项:

  • -n 显示的行数
  • -w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
  • -r 递归查找. 可以搜索多级目录下的所有文件.
  • --color 高亮查找到的结果
  • --include 指定查找某些文件
  • --exclude 指定排除某些文件

14. ps

语法:ps [参数]...

功能:用于查看当前系统上运行的进程

选项:

  • a 显示一个终端的所有进程
  • u 以用户为主的格式来显示程序状况
  • x 显示所有程序,不以终端机来区分

举例:

ps aux # 显示系统上所有的进程

ps aux | grep "进程名"

ps aux | grep "进程id"

15. netstat

语法:netstat [参数]...

功能:查看系统上的网络状态.

选项:

  •  -a 显示所有正在或不在侦听的套接字
  • -n 显示数字形式地址而不是去解析主机、端口或用户名
  • -p 显示套接字所属进程的PID和名称

 举例:

netstat -anp

netstat -anp | grep "进程名"

netstat -anp | grep "端口号"

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值