Linux简单入门学习
文章目录
- 一、入门概述
- 1.我们为什么要学习Linux
- 2.Linux简介
- 3.Linux的发行版本
- 二、Linux安装
- 1.虚拟机安装(耗资源)
- 2.购买云服务器(推荐)
- 三、 Linux文件系统
- 1.文件系统目录
- 2.目录管理
- 处理目录的常用命令(必须要掌握)
- 3.基本属性
- 1. 文件属性
- 2. 文件内容查看
- 4.Vim编辑器
- 5. 账号管理
- 用户账号的管理
- 6.用户组管理
- 四、 Linux上的相关环境搭建
- Java 环境搭建
- 1.jdk安装
- 2.Tomcat安装
一、入门概述
1.我们为什么要学习Linux
很多的大型项目都是部署在Linux服务器上,所有的Java岗位都需要掌握Linux的基本使用。
2.Linux简介
Linux 是一套免费使用和自由传播的类 Unix 操作系统(mac也是类Unix操作系统),是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想(即需要连网),是一个性能稳定的多用户网络操作系统。
Linux 是⼀个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和⽤户体验上进⾏优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX ⾮常类似。
3.Linux的发行版本
虽然Linux 的发⾏版本众多,但是系统的核⼼——内核却系出同⻔,所以只要学会使⽤其中⼀种,即可触类旁通。
二、Linux安装
1.虚拟机安装(耗资源)
安装 VMware 虚拟机软件(360软件管家一键安装),然后打开ubuntu镜像即可使用。
2.购买云服务器(推荐)
云服务器就是一个远程电脑,服务器一般不会关机!
虚拟机安装后占用空间,也会有些卡顿,我们作为程序员其实可以选择购买一台自己的服务器,这样的话更加接近真实线上工作。
1、阿里云购买服务器:
这里附上学生机链接
2、购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登录了
3、下载 xShell 远程连接工具(端口号22),进行远程连接使用!还需要下载xFtp(端口号21)进行文件上传(这里推荐360软件管家一键下载)
注意事项:
如果要打开端口,需要在阿里云的安全组面板中开启对应的出入规则,不然的话会被阿里拦截!
连接成功效果如下:
这就是我们的Linux操作系统了!以后的操作都在这里进行,项目也会在这里发布!
补充:Ctrl+鼠标滚轮,放大和缩小字体
三、 Linux文件系统
1.文件系统目录
在linux中,⼀切皆为⽂件。⽂件分为下⾯的⼀些类型:
1.普通⽂件
2. ⽬录⽂件
3. 链接⽂件
4. 设备⽂件
5. 管道⽂件
Linux⽂件系统⽬录结构和熟知的windows系统有较⼤区别,没有各种盘符的概念。根⽬录只有⼀个/,采⽤层级式的树状⽬录结构。
且Linux不像Windows那样的系统目录,Linux使用正斜杠"/“而不是反斜杠”"来标识目录。
- /:根⽬录,所有的⽬录、⽂件、设备都在/之下,/就是Linux⽂件系统的组织者,也是最上级的领导者。
- /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev:dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。·但是这⾥并不是放的外部设备的驱动程序。这⼀点和常⽤的windows,dos操作系统不⼀样。它实际上是⼀个访问这些外部设备的端⼝。可以⾮常⽅便地去访问这些外部设备,和访问⼀个⽂件,⼀个⽬录没有任何区别。
- /home:如果建⽴⼀个⽤户,⽤户名是"xx",那么在/home⽬录下就有⼀个对应的/home/xx路径,⽤来存放⽤户的主⽬录。
- /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:Linux超级权限⽤户root的主⽬录。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /usr:这是linux系统中占⽤硬盘空间最⼤的⽬录。⽤户的很多应⽤程序和⽂件都存放在这个⽬录下。类似windows系统的program files。
- /usr/local:这⾥主要存放那些⼿动安装的软件,即不是通过或apt-get安装的软件。它和/usr⽬录具有相类似的⽬录结构。
- /tmp:这个目录是用来存放一些临时文件的。
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。⽐如安装mysql的配置⽂件my.conf。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
2.目录管理
我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。
其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
我们需要先知道什么是绝对路径与相对路径。
•绝对路径:
路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。
•相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd …/man 这就是相对路径的写法啦!
处理目录的常用命令(必须要掌握)
注意:所有Linux命令都可以组合使用。
•ls: 显示当前目录文件下的目录或文件(Linux系统中最常用的命令,因为Linux不像windows是可视化的)。
选项与参数:
-a :显示所有的文件夹和文件,包括隐藏文件;
-l :列出所有的文件,包含文件的属性和权限,没有隐藏文件;
ls --help
•cd:进⼊⼀个路径或者⽬录,绝对路径或者相对路径都可以
⽤法:cd [相对路径或绝对路径]
cd ~【切换到宿主目录,如果你是以root登录的就切换到/root ,如果其他用户就切换到/home下对应的目录】
cd . 【当前⽬录】
cd … 【进⼊上⼀级⽬录】
cd /home 【进⼊绝对路径home⽬录下】
•pwd:显示目前所在的目录(Print Working Directory 的缩写)
•mkdir:创建一个新的目录 (make directory的缩写)
选项与参数:
-m :配置文件的权限;
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来;
•rmdir:删除一个空的目录
语法:rmdir [-p] 目录名称
选项与参数:
-p :连同上一级『空的』目录也一起删除
•cp: 复制文件或目录
cp [options] 来源档(source) 目标档(destination)
选项与参数:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
•rm: 移除文件或目录(使用较多)
语法:
rm [-fir] 文件或目录
选项与参数:
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
rm -rf:系统中所有的文件就都被删除了(删库跑路)
•mv: 移动文件与目录,或修改文件与目录的名称
mv ( 移动文件与目录,或修改名称 )
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级(只替换已更新过的文件)
3.基本属性
1. 文件属性
在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
当为[ d ]则是目录;(常用)
当为[ - ]则是文件;(常用)
若是[ l ]则表示为链接文档 ( link file );(常用)
若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图):
第1位:-表示是⼀个普通的⽂件;d表示是⼀个⽬录;(最常⽤)
rwx:Read、Write、Execute,读、写、执⾏权限,这个顺序不会变,如果没有权限的话就⽤-代替
第2-4位:表示⽂件所有者的权限
第5-7位:⽂件所在组的拥有的权限
第8-10位:⽂件其他组⽤户拥有的权限
修改文件属性
1、chgrp:更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3、chmod:更改文件9个属性(必须要掌握)
chmod [-R] xyz 文件或目录
Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4 w:2 x:1
可读可写不可执行 rw- 6
可读可写不可执行 rwx 7
chomd 777 文件赋予所有用户可读可写可执行!
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx—] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0
2. 文件内容查看
Linux系统中使用以下命令来查看文件的内容:
•cat 由第一行开始显示文件内容,用来读取文章或者配置文件(常用)
• tac从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
•nl 显示的时候,顺道输出行号!看代码的时候,希望显示行号(常用)
•more 一页一页的显示文件内容(空格代表翻页,enter代表向下看,:f行号)
•less 与 more 类似,但是比 more 更好的是,他可以往前翻页!(空格下翻页,pageDown,pageUp翻动页面,,退出q命令,查找字符串/要查询的字符,向上查询使用?要查询的字符串,n继续搜寻下一个,N向上寻找!)
•head 只看头几行,通过-n参数来控制显示几行!
•tail 只看尾巴几行
你可以使用 man [命令]来查看各个命令的使用文档,如 :man cp。
•cat 由第一行开始显示文件内容
ifconfig命令查看网络配置!
4.Vim编辑器
Ubuntu默认没有安装vim,需要先安装vim⼯具。
sudo apt-get install vim
vim通过一些插件可以实现和IDE一样的功能!
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。尤其是Linux中,必须是要会使用Vim
查看内容,编辑内容,保存内容!
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
a,i,o都可以进入输入模式,只是光标的位置不同
i 从【目前光标所在处】输入字符。
a从【目前光标所在处的下一个字符处】输入字符。
o从【目前光标所在的下一行处】输入新的一行。
- x 删除当前光标所在处的字符。
-
切换到底线命令模式,以在最底一行输入命令。如果是编辑模式,需要先退出编辑模式(ESC键)
快捷切换光标:数字+空格
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
在命令模式下按下i就进入了输入模式。
输入i,a,o都可以进去输入模式,只是光标的位置不同
在输入模式中,可以使用以下按键:
**字符按键以及Shift组合,**输入字符
**ENTER,**回车键,换行
**BACK SPACE,**退格键,删除光标前一个字符
**DEL,**删除键,删除光标后一个字符
**方向键,**在文本中移动光标
**HOME/END,**移动光标到行首/行尾
**Page Up/Page Down,**上/下翻页
**Insert,**切换光标为输入/替换模式,光标将变成竖线/下划线
**ESC,**退出输入模式,切换到命令模式
底线命令模式(只能在最后一行输入)
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q 退出程序
w 保存文件
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
完整的演示说明:
新建或者编辑文件,按i进入编辑模式,编写内容,编写完成后退出编辑模式,esc,退出之后进入底线命令模式,:wq保存退出!
5. 账号管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。
用户账号的管理
用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。
添加用户useradd
useradd -选项 用户名
参数说明:
选项 :
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
理解一下实质:在Linux中一切皆文件,这里的添加用户其实就是往某一个文件中写入用户的信息!
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 :
指定新账号的登录名。
删除用户 userdel
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
修改用户usermod (这个还不太懂)
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
usermod 对应的修改内容 修改那个用户
修改完毕之后查看配置文件即可!
Linux下切换用户
$表示普通用户
#表示超级用户,也就是root用户
1.切换用户的命令为:su username 【username是你的用户名哦】
2.从普通用户切换到root用户,还可以使用命令:sudo su
3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其
实ctrl+d也是执行的exit命令
4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】
用户密码的设置
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
一旦冻结这个用户,这个人就登陆不上系统了!
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
我们一般通过root创建用户的时候,要配置密码!
Linux上输入密码是不会显示的,正常输入即可
如果是超级用户:
passwd username:
Enter new UNIX password:
Retype new UNIX password:
如果是普通用户:
passwd
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
锁定账户
一旦冻结这个用户,这个人就登陆不上系统了!
6.用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
创建一个用户组 groupadd
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
如果不指定就是自增1。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组 groupdel
修改用户组的权限信息和名字
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字
拓展:文件的查看!(了解即可)
/etc/passwd
用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell
这个文件中的每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在那里,可以看到属于哪一组!
登录口令:把真正的加密后的用户口令字存放到/etc/shadow文件中,保证我们密码的安全性!
四、 Linux上的相关环境搭建
Java 环境搭建
1.jdk安装
从oracle官⽹下载linux的jdk8,⽤xFtp⼯具等将jdk8上传到linux机器上。
依据jdk所在的路径,在linux中输入相关命令
sudo mkdir /usr/local/java
cd /usr/local/java
sudo tar -zxvf jdk-8u141-linux-x64.tar.gz
sudo vim /etc/profile
进入vim编辑器,配置环境变量,添加下⾯⼏句
export JAVA_HOME=/usr/local/java/jdk1.8.0_141
export JRE_HOME=/usr/local/java/jdk1.8.0_141/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
执⾏命令 source /etc/profile 使环境变量配置⽂件⽣效
执⾏命令 java -version 查看JDK环境变量是否已经搭建好
2.Tomcat安装
#先把tomcat压缩包丢进服务器⾥⾯去
mkdir /usr/local/tomcat
sudo tar -zxvf apache-tomcat-8.5.50.tar.gz
chmod -R 777 *
cd bin
#启动tomcat
./start.sh
Linux简单入门学习相关推荐
- linux修改时间_技术干货||基于Centos8的Linux简单入门学习笔记
很基础 以后不想记笔记了 最后分享一次
- linux系统入门学习Linux认证:linux系统学习方法入门体
Linux认证考试:操作系统linux学习方法入门体 在学习linux的工程中,linux学习方法有很多种,这里是小编的学习,给大家拿出来分享一下, Linux!Linux只是个内核!这点很重要,你必 ...
- VBoxvmware虚拟机安装Linux及Linux基础入门学习
VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...
- 粤嵌实验板 linux 环境,粤嵌linux基础入门学习 linux系统中添加系统调用
linux系统中添加系统是怎样调用的?从linux基础入门学习出发,一起来看看: 1.每个体系下面均有对应的系统调用列表: arch/arm/kernel/calls.S 在最后添加一个新的系统调用标 ...
- 基于RHEL8的Linux基础入门学习总结笔记(附示例代码)
Linux简单介绍 特性 完全开源 多用户多任务系统 继承了UNIX多用户多任务的设计理念,允许多人同时上线工作,合理分配资源. 安全稳定高效 严格的用户权限管理使不同使用者之间保持高度的保密性和安全 ...
- Linux的入门学习
原文链接:转载 Linux入门篇 1.1 Linux操作系统简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统 ...
- Linux Storage入门学习
前言 本文大量代码基于linux 0.11,因为早期linux的版本更加适合初学者入门.虽然代码比较早,但是不妨碍我们学习Linux Storage的精髓. 一.hello world 1.1 Dem ...
- JS简单入门学习笔记一
JS的HelloWorld 在页面中输出一个内容 document.write(); 向控制台输出一个内容 console.log(); /**1.JS中严格区分大小写*2.JS中每一条语句以分号结尾 ...
- linux云计算与java比较,Linux系统有什么优势?linux云计算入门学习
Linux技术的快速发展吸引了众多企业和个人.很多企业开始转向Linux服务器的应用,市场增加了对Linux运维人员的需求,吸引了很多想进入it行业学习Linux技术的人.为什么Linux系统深受众人 ...
最新文章
- HDU 4540 威威猫系列故事――打地鼠(DP)
- Python 初学者常犯的5个错误,布尔型竟是整型的子类
- 专利申请超全球!新崛起的中国人工智能,还有哪些你不知道的事
- Android之如何获取Android设备的唯一识别码笔记
- 任务切换的基础:模拟任务切换时寄存器的保存与恢复
- centos7下qt creator python配置
- 利用CVE-2019-1040 - 结合RCE和Domain Admin的中继漏洞
- EWSN 2019 (待续)
- Vue深入学习3—数据响应式原理
- 小瓦怕扫地机器人_小瓦扫地机器人青春版评测报告
- 使用Jquery+CSS实现的表格隔行凸显和当前行高亮效果
- shell 脚本创建虚拟机 并配置网卡ip地址(两个脚本)
- Godaddy域名解锁、获取转移码(Authorization Code)及转出注意事项
- java.lang.Class解析
- VOJ1067 【矩阵经典7 构造矩阵】
- java鼠标中键_java-selenium鼠标键盘操作Actions类和Robot
- java8 新特性之 -- lamdba 表达式 -- Optional类 --遍历 Map List
- SSM毕设项目户籍管理系统jrg02(java+VUE+Mybatis+Maven+Mysql)
- CDN 网站部署全站加速服务
- 如何通过SEO思维收割各大平台的流量?