Linux 入门基础

购买云服务器

1、阿里云购买服务器:地址
2、购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登录了

  • 获取公网IP地址!
  • 修改自己的登录密码
    Linux 入门基础_第1张图片

关于安全组的说明: (在阿里云这个很重要,自己需要开放什么端口来这里配置就好啦,我们在后面安装环境的时候会再次说明)
Linux 入门基础_第2张图片
Linux 入门基础_第3张图片Linux 入门基础_第4张图片

走近Linux系统

今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL +PHP)组合

开机登录

开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。

一般来说,用户的登录方式有三种:

  • 命令行登录
  • ssh登录
  • 图形界面登录

最高权限账户为 root,可以操作一切

关机

在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
关机指令为:shutdown ;

sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff

最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中

系统目录结构

1、一切皆文件
2、根目录 / ,所有的文件都挂载在这个节点下

登录系统后,在当前命令窗口下输入命令:

ls /

你会看到如下图所示:
在这里插入图片描述
树状目录结构:
Linux 入门基础_第5张图片
以下是对这些目录的解释:

  • /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令。

  • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。(不要动)

  • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

  • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • /lib: 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。(不要动)

  • /lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放突然关机的一些文件)

  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。(我们后面会把一些本地文件挂载在这个目录下)

  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个
    目录下。默认是空的。

  • /proc: 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。(不用管)

  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /srv:该目录存放一些服务启动之后需要提取的数据。

  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。

  • /tmp:这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下,安装包!

  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • /usr/bin: 系统用户使用的应用程序。

  • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。Super

  • /usr/src: 内核源代码默认的放置目录。

  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

  • /www:存放服务器网站相关的资源,环境,网站的项目

在这里插入图片描述


常用的基本命令

目录管理

常用命令

touch :创建文件文件夹为蓝色 文件是白色的

echo : echo “I like yl”>>f1 追加内容到指定文件 f1

  • echo “hello linux” 直接输出字符串

vim & vi : 创建文件后直接编辑内容

  • :q 退出 :w 保存 :wq 保存退出 :q! 强制退出

mkdir: 创建目录

  • -p mkdir -p test1/test2 递归创建目录

rmdir : 删除空文件夹

  • -p rmdir -p test1/test2 递归删除文件夹

cp : 复制文件或者目录 cp wj.sh test/test1

rm : 移除文件或者目录!

rm -rf / # 强制递归删除系统中所有文件, 删库跑路操作!

  • -r 递归删除目录!
  • -f 不会警告,强制删除!
  • -i 互动询问删除

ls : 查看当前目录下的文件

  • -a :all ,查看全部的文件,包括隐藏文件
  • -l 或者 ll : 列出所有的文件,包含文件的属性和权限,没有隐藏文件

yum : 联网安装软件

  • 安装一个包 命令:yum [-y] install 软件包

    升级一个包 命令:yum [-y] update 软件包

    移除一个包 命令:yum [-y] remove 软件包

    列出所有软件名 命令:yum list 软件包

  • yum remove 卸载程序名

rpm:本地安装和卸载

  • 安装一个包 命令:rpm -ivh rpm文件

    升级一个包 命令:rpm –Uvh rpm文件

    移除一个包 命令:rpm –e 包名

    查询安装情况 命令:rpm –q 包名

    列出所有被安装的包 命令:rpm -qa

tar命令 :

  • 解包:tar zxvf FileName.tar
  • 打包:tar czvf FileName.tar DirName
  • 参数:
    -c :create 建立压缩档案的参数;
    -x : 解压缩压缩档案的参数;
    -z : 是否需要用gzip压缩;
    -v: 压缩的过程中显示档案;
    -f: 置顶文档名,在f后面立即接文件名,不能再加参数
  • 举例: 一,将整个/home/www/images 目录下的文件全部打包为 /home/www/images.tar
tar -cvf /home/www/images.tar /home/www/images ← 仅打包,不压缩
tar -zcvf /home/www/images.tar.gz /home/www/images ← 打包后,以gzip压缩
  • 在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,则以tar.gz 或tgz来代表gzip压缩过的tar file文件
  1. 将tgz文件解压到指定目录
    tar zxvf test.tgz -C 指定目录
    比如将/source/kernel.tgz解压到 /source/linux-2.6.29 目录
tar zxvf /source/kernel.tgz -C /source/ linux-2.6.29
  1. 将指定目录压缩到指定文件
    比如将linux-2.6.29 目录压缩到 kernel.tgz
tar czvf kernel.tgz linux-2.6.29

.tar.gz 和 .tgz命令 :

  • 解压:tar zxvf FileName.tar.gz
  • 压缩:tar zcvf FileName.tar.gz DirName
  • 压缩多个文件:tar zcvf FileName.tar.gz DirName1 DirName2 DirName3 …

cd : 切换目录命令!

cd … : 返回上一级目录

cd 目录名(绝对路径都是以 / 开头,相对路径,对于当前目录该如何寻找 …/…/)Linux 入门基础_第6张图片mv : 移动文件或者目录!重命名文件

  • -f 强制
  • -u 只替换已经更新过的文件

Linux 入门基础_第7张图片

useradd 命令 添加用户

useradd -选项 用户名

-m : 自动创建这个用户的主目录 不加也一样 自动在home创建目录

-G : 给用户分配组!

理解一下本质:Linux中一切皆文件,这里的添加用户说白了就是往某一个文件中写入用户的信息了!/etc/passwd

删除用户 userdel

userdel -r zjt 删除用户的时候将他的目录页一并删掉!不加就保留用户目录了

修改用户 usermod

修改用户 usermod 对应修改的内容 修改那个用户

参数说明

  • -c<备注>  修改用户帐号的备注文字。
  • -d登入目录>  修改用户登入时的目录。
  • -e<有效期限>  修改帐号的有效期限。
  • -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
  • -g<群组>  修改用户所属的群组。
  • -G<群组>  修改用户所属的附加群组。
  • -l<帐号名称>  修改用户帐号名称。
  • -L  锁定用户密码,使密码无效。
  • -s  修改用户登入后所使用的shell。
  • -u  修改用户ID。
  • -U  解除密码锁定。

切换用户!

root用户
Linux 入门基础_第8张图片切换用户的命令为:su 用户名

  • root 切换其他用户不需要密码
  • 其他用户切换到 root 需要密码
    Linux 入门基础_第9张图片

在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

$表示普通用户

#表示超级用户,也就是root用户
在这里插入图片描述

用户的密码设置问题!

passwd 用户名 #只有root用户可以指定修改用户密码
passwd #普通用户只能使用 passwd 修改当前登录用户密码

锁定账户!

root,比如张三辞职了!冻结这个账号,一旦冻结,这个人就登录不上系统了!

passwd -l pp #-l lock的意思 锁定账户就不能登录了
passwd -d pp # 清空pp的密码 也不能登录了 一般用 -l

在公司中,你一般触及不到 root 用户!作为一个开发一般你拿不到! Linux是一个多用户的系统!

用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

创建一个用户组 groupadd

在这里插入图片描述在这里插入图片描述
创建完用户组后可以得到一个组的id,这个id是可以指定的! -g 520 , 若果不指定就是自增1

groupadd -520 gzjt #组id为520

删除用户组 groupdel

在这里插入图片描述

修改用户组的权限信息和名字 groupmod -g -n

在这里插入图片描述
在这里插入图片描述

拓展:文件的查看!(了解即可)

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
#用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell

这个文件中的每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在那里,可以看到属于哪一个组!
登录口令:把真正的加密后的用户口令字存放到/etc/shadow文件中,保证我们密码的安全性!

root:$6$Zupe1vNF$jRjuE8vo43uRMQCvM9QtH9wLxFzweioLA/DHFRYQ6W1iTwEJgeXujYXRj0Vhg/QXTP4

用户组的所有信息都存放在/etc/group文件中。

root:x:0:zjt2

进程管理

基本概念!

1、在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号!

2、每一个进程呢,都会有一个父进程!

3、进程可以有两种存在方式:前台!后台运行!

4、一般的话服务都是后台运行的,基本的程序都是前台运行的!

命令

ps 查看当前系统中正在执行的各种进程的信息!
ps -xx :

  • -a 只列出所有进程,并不显示环境变量(当前的进程一个)
  • ps - ef 列出所有进程,并显示环境变量,而且显示全格式 可以查看到父进程的信息
  • -u 以用户的信息显示进程
  • -x 显示后台运行进程的参数!
# ps -aux 查看所有的进程
ps -aux | grep mysql
# | 在Linux这个叫做管道符  A|B
# grep 查找文件中符合条件的字符串!

ps -ef | grep mysql # 看父进程我们一般可以通过目录树结构来查看!

# 进程树! 最方便的!  
# pstree未找到命令是因为没有安装psmisc yum install psmisc

pstree -pu
-p 显示父id
-u 显示用户组

Linux 入门基础_第10张图片
结束进程:杀掉进程,等价于window结束任务!

kill -9 进程的id

kill -9 1447(mysql进程的id) #表示强制结束该进程!

基本属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组
如:
Linux 入门基础_第11张图片
实例中,boot文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件
  • 若是[ l ]则表示为链接文档 ( link file )
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图):
Linux 入门基础_第12张图片
从左至右用0-9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中:

第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;

第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

在以上实例中,boot 文件是一个目录文件,属主和属组都为 root。

修改文件属性

1、chgrp:更改文件属组

chgrp [-R] 属组名 文件名
chgrp -R gzjt test

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:更改文件属主,跟chgrp配合使用

chown [–R] 属主名 文件名
chown -R zjt test

3、chmod:更改文件9个属性(必须要掌握)

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

r:4 w:2 x:1
可读可写不可执行 rw- 6
可读可写不课执行 rwx 7
chmod 777 test 文件赋予所有用户可读可执行

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[rwxrwx–]
分数则是:

  • 用户 = rwx = 4+2+1 = 7
  • 组 = rwx = 4+2+1 = 7
  • 其他 = — = 0+0+0 = 0

chmod 770 test


文件内容查看

我们会经常使用到文件查看!
Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容,用来读文章,或者读取配置文件啊,都使用cat + 文件名

  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

  • nl 显示的时候,顺道输出行号! 看代码的时候,希望显示行号! 常用
    Linux 入门基础_第13张图片

  • more 一页一页的显示文件内容,带余下内容的(空格代表翻页,enter 代表向下看一行, :f 行号)

  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页! (空格下翻页,↑,↓ 键代表翻动页面!退出 q 命令,查找字符串 ’ / ’ 要查询的字符向下查询,向上查询使用 ’ ?'要查询的字符串,n 继续搜寻下一个,N 上寻找!)

  • head 只看头几行 通过 -n 参数来控制显示几行! head -5 yum.conf

  • tail 只看尾巴几行 -n 参数 要查看几行!

网络配置目录:

[root@juntao17 /]# cd /etc/sysconfig/network-scripts

Linux 入门基础_第14张图片
ifconfig 和 ip addr 命令查看网络配置和ip!
windows 为 ipconfig

拓展:Linux 链接的概念(了解即可!)

Linux的链接分为两种:硬链接、软链接!

硬链接:A—B,假设B是A的硬链接,那么他们两个指向了同一个文件!允许一个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防止误删!

软链接: 类似Window下的快捷方式,删除的源文件,快捷方式也访问不了!
创建链接 ln 命令!
Linux 入门基础_第15张图片

  • 追加主文件内容 链接也都会变化

  • 追加链接内容 主文件和其他链接也一样会改变

删除 f1 之后, f2 依旧可读 而 f3 失效了,ln 类似复制 ln -s 类似快捷方式
Linux 入门基础_第16张图片

环境安装

安装软件一般有三种方式:

rpm, 解压缩, yum在线安装,

JDK安装

我们开发java程序必须要的环境!

1、下载JDK rpm。去oralce 官网下载即可!

2、安装java环境

# 检测当前系统是否存在java环境! java -version
# rpm -qa|grep jdk # 检测JDK版本信息
# rpm -e --nodeps jdk_ 强制卸载
# rpm -ivk jdk-8u141-linux-x64.tar.gz(或rpm包) 
# 配置环境变量!

配置环境变量: /etc/profile

#jdk
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
#mysql
export MYSQL_HOME=/usr/local/mysql8
export PATH=$PATH:$MYSQL_HOME/bin

让这个配置文件生效! source /etc/profile

# 开启防火墙端口
firewall-cmd --zone=public --add-port=9000/tcp --permanent
# 重启防火墙
systemctl restart firewalld.service
# 查看所有开启的端口,如果是阿里云,需要配置安全组规则!
firewall-cmd --list-ports

Vim编辑器(拓展)

vim 通过一些插件可以实现和IDE一样的功能!

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程

序员中被广泛使用。尤其是Linux中,必须要会使用Vim(查看内容,编辑内容,保存内容!)

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。

vim 则可以说是程序开发者的一项很好用的工具。

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。

连 vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个程序开发工具而不是文字处理软件。

vim 键盘图:
Linux 入门基础_第17张图片
Linux 入门基础_第18张图片
Linux 入门基础_第19张图片
Linux 入门基础_第20张图片
Linux 入门基础_第21张图片
Linux 入门基础_第22张图片
以上标红的掌握熟练即可 我们平时使用VIM 最多的就是修改下文件内容而已!

你可能感兴趣的:(linux,linux)