Linux基础

1.基本命令的学习

1.1系统的重启和关机
syns:#将数据由内存同步到磁盘上
shutdown:#关机
shutdown -h now # 立马关机
shutdown -r now #系统立刻重启
shutdown -h 10  #十分钟后关机
reboot # 系统重启
halt  # 系统关闭
1.2系统的目录结构
bin //Binary的缩写,一般存放我们经常用指令
boot //存放启动Linux时的核心文件,包括一些连接文件以及镜像文件
dev //存放Linux的外部设备
etc(重要) //这个目录存放所有系统管理所需要的配置文件和子目录
home(重要) //用户的主目录,在Liunx中每个用户都有自己的目录
lib(重要) //存放系统中最基本的动态连接共享库 
lost+found //此目录一般为空,系统非正常关机后,这里就存放了文件
media //系统会自动的识别一些设备:比如:U盘,光驱....
mnt //用户临时挂载别的文件的目录
opt() //主机安装额外软件时所需要的目录
proc  //是个虚拟目录,它是系统内存的映射
root //系统管理员目录,也是超级管理员目录
tmp() //该目录用来存放一些临时的文件
usr(重要) //用户的许多应用程序和文件都存放在此处,类似于Window下面的program file目录
var() //这个目录存放着不断扩充的东西,习惯的将一些被修改的文件存放在次目录之下,还由一些日志文件。

2.常用的基本指令

2.1目录管理
  1. ls: 列出目录
[root@Dice /]# ls -a //列出所有文件,包含隐藏文件
[root@Dice /]# ls -l //列出所有文件,包含文件的属性和权限
[root@Dice /]# ls -al //列出所有文件,隐藏目录以及属性和权限
  1. cd:切换目录
绝对路径:/
相对路径:相对与当前目录,如何寻找
[root@Dice home]# cd home // 在根目录下进入home
[root@Dice home]# cd ../usr //通过绝对路径进入usr
[root@Dice home]# mkdir DiceStudy  //创建一个新文件夹
[root@Dice /]# cd /home/DiceStudy //绝对路径进入文件夹
[root@Dice DiceStudy]# cd ~ //回到当前用户目录
[root@Dice ~]# pwd //显示当前用户所在的目录
/root
[root@Dice ~]# cd /bin
[root@Dice bin]# pwd
/bin
  1. mkdir:创建目录
[root@Dice bin]# cd /home
[root@Dice home]# mkdir() test //home下创建test目录
[root@Dice home]# mkdir -p() test1/test2/test3 //使用-p 参数创建多级目录
  1. rmdir:删除目录(只可以删除空目录,如果有文件删除文件先)
[root@Dice home]# cd /home
[root@Dice home]# ls
test  test1  
[root@Dice home]# rmdir() test //删除test目录
[root@Dice home]# ls
test1 
[root@Dice home]# rmdir -p() test1/test2/test3 //递归删除层级目录 加 -p参数
  1. cp:复制文件或者目录
 cp 文件原来的地方  新的目录
[root@Dice home]# cp install.sh DiceStudy/
[root@Dice home]# cd DiceStudy/
[root@Dice DiceStudy]# ll
install.sh
  1. rm:移除文件或者目录
-f : 忽略不存在的文件,不发出警告,强制删除
-r :递归删除目录
-i :互动,询问是否删除
rm -rf目录名 :删除当前目录下所有的文件
rm -rf/ :系统中的所有文件就被删除了(删库跑路的做法)
  1. mv:移动文件或者目录(重命名文件)
-f :强制移动
-u :只替换已经更新过的文件
[root@Dice home]# ls
 DiceStudy  install.sh  
[root@Dice home]# mv() install.sh  DiceStudy(移动文件)
 mv: overwrite 'DiceStudy/install.sh'? y
[root@Dice home]# ls
 DiceStudy  
[root@Dice home]# ls  
 DiceStudy  
[root@Dice home]# mv() DiceStudy DiceStudy2(重命名文件)
[root@Dice home]# ls
 DiceStudy2 
2.2基本属性
[root@Dice /]# ll
total 28
lrwxrwxrwx.   1 root root    7 May 11  2019 bin 
dr-xr-xr-x.   5 root root 4096 Feb 18  2020 boot
  • d: 表示是一个目录
  • -:表示是一个文件
  • l:表示是文档链接
  • r:read
  • w:write
  • x:execute
2.3文件内容查看
  • cat:从文件开头的第一行显示文件
  • tac:从文件的最后一行开始显示文件的内容
  • nl:显示的时候输出行号
[root@Dice network-scripts]# nl ifcfg-eth0 
     1	# Created by cloud-init on instance boot automatically, do not edit.
     2	#
     3	BOOTPROTO=dhcp
     4	DEVICE=eth0
     5	ONBOOT=yes
     6	STARTMODE=auto
     7	TYPE=Ethernet
     8	USERCTL=no
  • more:一页一页的显示文件的内容(空格表示翻页,enter读取下一行)
  • less:和more的作用相似,但是可以实现向前翻页
  • /+字符串:表示从下到上查找对应的字符
  • ?+字符串:表示从上到下查找字符串
  • q:退出文件查看
[root@Dice etc]# less csh.login 
  • head:只看头几行 (-n 参数表示行数)
  • tail:只看尾巴几行
  • 可以通过 man来查看各个命令的使用文档:例如:man cp
  • 网络配置目录:
[root@Dice home]# cd /etc/sysconfig/network-scripts/ifcfg-eth0
  • ifconfig:查看网络配置
  • ping:Ctrl+C 停止ping 命令
2.4拓展:Linux中链接的概念
  • 硬链接:允许一个文件有多个目录,用户可以通过这种机制建立硬链接在一些重要的文件上,防止误删。
  • 软链接:类似于Window下的快捷方式,删除源文件快捷方式也使用不了了。

3.Vim编辑器

3.1什么是Vim?
  • 通过一些插件可以实现和IDEA一样的功能
  • 从vi发展过来的一个文本编辑器(查看,编辑,保存内容)
3.2三种模式
  • 命令模式
    1.进入vim就进入到命令模式
    2.按 i切换到输入模式
    3.esc退出输入模式,切换到命令模式
    4.命令模式下:按 : 进入到底线命令模式
    5.wq :保存退出
    6.w:将数据写入硬盘文档中
    7.w!:若文档显示只读时,强行写入文档
    8.q: 离开vim
    9.q!:若修改过文档不想存储,则强制离开
    10./字符串:搜索字符串

4.Linux的账号管理

4.1实现用户的账号管理:
  • 用户账号添加,修改,删除
  • 用户口令的管理
  • 用户组的管理
4.2命令
  • useradd : 添加用户
-m :自动创建这个用户的主目录(/home/Dice)
[root@Dice etc]# useradd -m Dice
[root@Dice etc]# cd /home
[root@Dice home]# ll
Dice

linux中一切皆文件:新建一个用户也就是新建一个文件夹,然后写入用户信息。/etc/passwd

  • userdel :删除用户
[root@Dice home]# userdel -r Dice:删除用户,并且清理用户文件
  • usermod: 修改用户
参数:
-d:指定用户的主目录
-g:指定用户所述的用户组
-u:指定以用户的用户号
-G:给用户分类组
  • 切换用户 su 用户名
[用户名 主机名 当前目录]#超级管理员
[root@Dice home]# su() Dice
[Dice@Dice home]$ 
/*查看主机名和修改主机名*/
[Dice@Dice home]$ hostname()
 Dice
[Dice@Dice home]$ hostname Dice1
  • 用户的密码设置
[root@Dice home]# password Dice 
Changing password for user Dice.
New password: 密码是不会显示的
//修改root密码
[root@Dice home]# passwd root
Changing password for user root.
New password: 

锁定用户
passwd -l Dice//锁定无法登录

5.用户组的管理

属主、属组

  • 组的添加,修改,删除本质就是对/etc/group文件进行更新的
  • 创建一个用户组:groupadd
[root@Dice home]# groupadd Dices
[root@Dice home]# cat /etc/group
Dices:x:1004:(用户组id)
  • 创建组的时候指定id,默认创建时系统会自增id
[root@Dice home]# groupadd -g 520 Dice2
Dices:x:1004:
Dice2:x:520:
  • 删除用户组
[root@Dice home]# groupdel Dices
  • 用户切换用户组
登录当前用户
$ newgrp root
  • 拓展:(文件的查看)

etc/passwd:这个配置文件中每一行代表一个用户,可以查看用户的主目录,和属于哪个组

etc/shadow:加密后的用户口令就存放在此文件中

6.Linux下的磁盘管理

  • df:列出系统磁盘的整体使用量
  • du:检查当前磁盘的使用量
[root@Dice home]# df()  
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          921176       0    921176   0% /dev
tmpfs             936584       0    936584   0% /dev/shm
tmpfs             936584     492    936092   1% /run
tmpfs             936584       0    936584   0% /sys/fs/cgroup
/dev/vda1       41931756 6455720  35476036  16% /
tmpfs             187316       0    187316   0% /run/user/0
[root@Dice home]# df -h() //按照M后者G计算
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        900M     0  900M   0% /dev
tmpfs           915M     0  915M   0% /dev/shm
tmpfs           915M  492K  915M   1% /run
tmpfs           915M     0  915M   0% /sys/fs/cgroup
/dev/vda1        40G  6.2G   34G  16% /
tmpfs           183M     0  183M   0% /run/user/0
[root@Dice home]# 

du -sm /*: 检查根目录下每个文件所占的容量

[root@Dice /]# du -sm /*
0	/bin
198	/boot
0	/dev
23	/etc
197	/home
0	/lib
0	/lib64
0	/media
0	/mnt
0	/opt
1	/patch
du: cannot access '/proc/14932/task/14932/fd/4': No such file or directory
du: cannot access '/proc/14932/task/14932/fdinfo/4': No such file or directory
du: cannot access '/proc/14932/fd/4': No such file or directory
du: cannot access '/proc/14932/fdinfo/4': No such file or directory
0	/proc
150	/redis-6.0.10
1	/root
1	/run
0	/sbin
0	/srv
0	/sys
77	/tmp
56	/user
2624	/usr
218	/var
2200	/www

7.进程管理

作为开发人员,试下使用Linux就可以

7.1什么是进程?
  • Linux中每一个程序都有一个进程,每个进程都有一个id号
  • 每一个进程都会有一个父进程
  • 进程可以有两种存在方式,前台!后台!
  • 一般的话服务都会在后台,基本的程序都会在前台
7.1命令

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

参数
-a :显示当前终端的所有进程
-u :以用户信息显示进程
-x :显示后台允运行的参数
# ps-aux :查看所有进程的信息
# | :管道符!!! A|B 左边的命名的结果作为右边的命令
# grep 查找文件中符合条件的字符串
ps -aux|grep mysql (查看关于mysql的所有的进程)

在这里插入图片描述
记住命令:ps -xx|grep 进程名字 !!过滤进程信息

  • ps -ef|grep 进程名字 查看父进程
  • pstree -pu(通过目录树的结构进行查看)
参数解释:
-p : 显示父进程的id
-u : 显示用户组

结束进程:杀掉进程,等价与Window结束任务
kill -9 进程id
一般java代码死循环会使用次命令

8.环境安装(JDK)

8.1软件安装的三种方式:

1.rpm
2.解压缩
3.yum在线安装

8.2jdk安装

1.rpm安装步骤:
命令: rpm -ivh rpm安装包
2.卸载步骤:
1.查看版本信息 rpm -qa|grep jdk 过滤查看jdk的版本信息
2.rpm -e --nodeps 软件名字

8.3环境配置
  • 配置环境变量:etc/profile
export JAVA_HOME=/data/program/software/java/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH:JRE_HOME/bin
export JRE_HOME=/data/program/software/java/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

保存配置之后再使用 source /etc/profile刷新配置文件

9.shell编程

1.shell变量

1.系统变量
2.自定义变量

2.变量的定义:

1.基本语法:
定义变量: 变量名=值
销毁变量: unset 变量
静态声明的变量: readonly变量,注意:不可以 unset

#!/bin/bash //头文件
A=100
echo $A
echo A=$A
echo "A=$A"
unset A
echo A=$A
#定义静态的变量B,
readonly B=2
echo "B=$B"
unset B  //静态变量不可以unset

3.shell变量的定义规范

1.名称可以由字母和下划线组成,但是不可以由数字开头
2.变量的两侧不可以有空格
3.变量名一般为大写

4.将命令的返回值赋给变量

1.A=data 反引号,运行反引号里面的命令,并且将结果返回给A
2.A=$(data) 和反引号的作用相同
在这里插入图片描述
在这里插入图片描述

5.设置环境变量

1.export 变量名=变量值
2.source 配置文件
3.echo $变量名
注:在一个配置文件中定义好一个环境变量之后,可以在其他的shell程序中使用

shell脚本中的多行注释:
set nu:显示vim中代码的行号
<<!
被注释的内容
!

6.预定义变量

就是shell设计值预先定义好的变量,可以直接在shell中使用

基本语法:
$$ (当前进程的进程号)
$! (后台运行的最后一个进程的进程号)
$? (最后一次执行命令时候返回的状态,如果这个变量的值为0,则证明最后一条命令正确执行,非0结果反之)

7.运算符
基本的语法:

方式一: $((运算式))
方式二: $[运算式]
方式三: expr m + n
注意:+ 号两边要有空格,要想expr的结果赋值给一个变量,那么就要加上
expr 乘(*) 除(/)取余(%)

8.条件判断

基本语法
[ condition ] (注意条件前后是要有空格的)
#非空返回true ; >1则返回false

判断语句

  1. = 字符串的比较
    2.两个整数直接的比较
    2.1 lt : 小于
    2.2 le: 小于等于
    2.3 eq: 等于
    2.3 gt: 大于
    2.4 ge:大于等于
    2.5 ne: 不等于
    在这里插入图片描述

9.流程控制

多分支
if [条件判断式]
then
代码
elif [条件判断式]
then
代码
fi

注意:中括号和条件判断式中间必须有空格

case语句
基本语法:
case $变量名 in
“值1”)
如果说变量名的值等于值1,就执行程序1
;;
“值2”)
如果说变量名的值等于值1,就执行程序2
…省略其他分支
*)
不满足所有的值,就执行此操作
;;
esac

10.for循环

基本语法:
for 变量 in 值1 值2 值3…
do
程序
done
基本语法2:
for((初始值;循环控制条件;变量变化))
do
程序
done

11.while循环

基本语法:
while [ 条件判断式 ]
do
程序
done
注意 while那一行两两直接都有空格

12.read读取控制台输入

基本语法
选项:
-p : 指定读取值时的提示符
-t : 在读取值时的等待时间,如果指定时间没有输入,就不再等待
参数:
变量:指定读取值的变量名
举例:

#!/bin/bash
read -p "请输入一个数字num1=" num1
echo "num1=$num1"             

12.系统函数
13.自定义函数

基本语法:
[ function ] funame[()]
{
Action;
[return int;]
}
调用直接写函数名: funname [ 值]


#!/bin/bash
function getsum() {
          SUM=$[$n1+$n2]
          echo "SUM=$SUM"
}
read -p "请输入一个值n1" n1
read -p "请输入一个值n2" n2
#调用自定义函数
getsum $n1 $n2

在这里插入图片描述

Linux下安装软件(jdk为例子)

  • 1、新建一个mkdir /softWareInstall文件夹来存放需要安装的软件的安装包
  • 2、通过tar -zxvf 安装包名 解压软件
  • 3、新建一个 mkdir /data/program/software文件夹作为安装软件的位置
  • 4、在安装软件文件夹中新建一个对应自己软件名的文件夹(mkdir java为例)
  • 5、进入安装包目录,通过 mv 文件名 /data/program/software/安装软件的文件名 来移动安装包
  • 6、配置相应的环境变量 vim /etc/porfile
  • 7、查看防火墙状态:firewall-cmd --state
  • 8、关闭防火墙:systemctl stop firewalld.service
  • 9、禁止防火墙开机自启动:systemctl disable firewalld.service
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值