Linux实践【详细基础篇】

编程入门 行业动态 更新时间:2024-10-27 14:24:26

Linux实践【详细<a href=https://www.elefans.com/category/jswz/34/1770030.html style=基础篇】"/>

Linux实践【详细基础篇】

一、Linux介绍

 

1、什么是Linux?

Linux操作系统是一种免费使用和自由传播的类UNIX操作系统。其内核由林纳斯·托瓦兹于1991年10月5日首次发布,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统;它能运行主要的Unix工具软件、应用程序和网络协议,是一个性能稳定的多用户网络操作系统。
2、Linux发行版

Radhat、Cent OS、Ubuntu、dedian、SUSE、Deepin、银河麒麟、中标麒麟、优麒麟、统信UOS、Euler(欧拉)等

二、Linux目录结构

1、Linux中的目录是树形的结构
2、目录的名称是规定的,文件类型也是规定的  ——>一切皆文件
3、/bin :常用指令
4、/sbin :系统管理员使用的系统管理程序
5、/home:普通用户主目录
6、/root:超级用户主目录
7、/lib:系统开机所需要的最基本的动态链接共享库
8、/etc:系统管理所需要的配置文件和子目录
9、/usr:常用的重要目录,用户的很多应用程序都存放于此
10、/boot:存放Linux启动文件,比如镜像和一些连接文件
11、/proc:一个虚拟目录它是系统内存的映射
12、/tmp:存放临时文件
13、/dev: 类似玉Windows的设备管理器,把所有硬件以文件形式存储
14、/mnt:用于存放用户零时挂载的文件系统
15、/media:挂在设备的。比如U盘、光驱等
16、opt:给主机额外安装软件所摆放的目录
17、/usr/local:这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序
18、/var:这个目录存放着不断扩充的文件
19、/selinux:安全子系统

三、指令

1、vi编辑器

按i a o等进入编辑模式
按esc退出编辑模式进入底行命令模式
按:+wq保存退出,+!强制
按yy拷贝当前行,nyy拷贝n行
ndd删除n行
在底行命令模式下按 / 输入要查找的命令,注意特殊字符如[ ]等
在底行命令模式下输入:set nu 显示行号,:set nonu取消行号
定位到首行gg,定位到末行G,定位到第n行:n+shift+g
撤销 u

2、关机、重启

shutdown -h now 立刻关机
shutdown -h 1  一分钟后关机
shutdown -r  now   现在重新启动计算机
init 0  现在关机
reboot  现在重启
sync    把内存的数据同步到磁盘
halt     关机

3、用户登录和注销

logout  用户名  注销用户
su -用户名   切换用户/账户,如:su -root

4、用户管理

useradd  用户名    添加用户,useradd -d /home/test axiang:在home/test下创建用户axiang
passwd  用户名   给该用户设置密码
pwd  显示当前所在的目录
userdel 用户名   删除用户
userdel -r 用户名   删除用户及用户家目录(可以理解为用户信息)    一般情况下不建议使用

修改文件所有者:
    chown 用户名 文件名

5、切换用户

su -所要切换的用户名      注意:权限高的切换到权限低的不需要输入密码,权限低的切换到权限高的需要密码
    返回到原来的用户用 exit或者logout

6、查看当前登录用户信息

who am i

7、用户组

创建:groupadd  组名
    删除:groupdel   组名
    如果没有创建组,创建用户时,默认创建一个与用户名一样的组
    在创建用户时创建(分配)组:useradd  用户名 -g 组名 

创建组:group 组名
    useradd -g yunjisuan axiang 创建一个用户axiang,并放入到yunjisuan组中
    修改文件所在组:chgrp 组名 文件名

改变用户所在组
    usermod -g 新组名 用户名
    usermod -d 目录名 用户名 ————>改变该用户登录的初始目录(用户需要有进入该目录的权限)
权限的基本介绍
-rwxrw-r--
第一位:代表文件类型:
        l :链接文件
        d :目录
        b :块设备(硬盘)
        c :设备文件(鼠标、键盘)

第二位:r 可读
第三位:w 可写
第四位:x 可执行
另外:也可用数字表示权限
    r=4  w=2  x=1  rwx=4+2+1=7
权限修改的方式——————>u: 所有者,g: 所属组,o: 其他人,a: 所有人
    第一种:
        #chmod u=rwx,g=rx,o=r 文件/目录名 ————>赋予该文件的所有者可读可写可执行的权限和所有组可读可执行的权限以及所有人可读的权限
        #chmod o+w 文件名 ————>赋予其他人该文件写的权限
        #chmod a-x 文件名 ————>赋予所有人该文件的执行权限
        #chmod u=rwx,g=rx,o=r 文件/目录名 相当于:#chmod 754 文件名

8、、修改组

usermod -g 组名 用户名
/etc/passwd :用户的配置文件,用于记录用户的信息每行的含义如下
用户名:口令:用户标识号:组标识号:注释描述性:主目录:登录shell
/etc/shadow:口令的配置文件,每行的含义如下
登录名:加密口令:最后一次修改的时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
    /etc/group:组的配置文件,记录Linux包含的组的信息,每行的含义如下
    组名:口令:组标识号:组内用户列表

9、、指定运行级别

0  关机
    1  单用户  (可以在这里找回丢失的密码)
    2  多用户  无网络连接
    3  多用户  有网络
    4  保留
    5  图形界面
    6  重启
    应用案例:init 0  关机
    查看当前运行级别:systemctl get-default

10、如何找回用户密码(基于centOS 7)

重启时 三秒内按“E”,找到以Linux16开头的那一行,在该行的最后输入init=/bin/sh,按CTRL+X,输入mount -0 remount,rw /,完成后回车
    输入passwd再回车,输入新的密码,回车再次输入密码再回车,接着输入touch /.autorelabel回车,最后输入exec /sbin/init然后回车
    然后耐心等待。

11、帮助指令:man 、help

man 指令
    help 指令
    Linux下隐藏文件是以点开头的,加参数-a显示

12、显示当前工作绝对路径:

pwd(显示的是绝对路径)

13、显示文件信息:ls

-a:显示当前目录下的所有文件,包括隐藏文件
    -l:以列表的形式显示相对路径与绝对路径
    相对路径:从当前目录开始
    绝对路径:从根目录开始

查看文件所有者————>ls -ahl   -h显示文件大小,-a 显示隐藏文件,-l 以树形显示

14、cd指令

cd ~:回到自己的家目录
    cd .. :返回当前目录的上一层目录

15、mkdir用法

 用法:mkdir 目录名
    参数:mkdir -p :创建多级目录,例如:mkdir /etc/yunjisuan/axiang

16、touch用法:

touch表示创建一个空文件,或者修改文件时间,用法
    touch 文件名 ,如:touch axiang

17、cp用法:

cp :拷贝文件
    参数:-r :递归复制整个文件夹,用法如下
    cp (-r)文件名,例如,将/etc/groupd下的文件axiang.txt拷贝到/home/yunjisuan目录下
    cp /etc/groupd/axiang.txt /home/yunjisuan  
    强制覆盖不提醒:\cp

18、rm用法:

移除文件或者目录,参数
    -r:递归删除整个文件
    -f:强制删除不提醒

19、mv用法:

mv:移动文件与目录或者重命名,用法:
mv 文件与目录名,如果两个文件在同一个目录叫重命名

20、cat用法:

cat:查看文件内容,选项:
    -n:显示行号

管道的作用:相当于管道前面的结果执行后再交给管道后面的指令执行
more用法:
    more是一个基于vi编辑器的文本过滤器,它以全屏的形式按页显示文件内容(常与cat -n相结合使用)
    more 空格键:向下翻一页
    more enter(回车键):向下一行
    CTRL + B:返回上一屏
    输入等号表示输出当前行

less用法:用来分屏查看文件内容,功能强大
    less 需要查看的文件名
    空白键:向下翻一页
    /字串,n:向下查找,N:向上查找,

head用法:查看文件开头部分内容(默认前10行)
    head 文件名
    head -n 6 文件名:显示文件前6行内容

tail用法:显示文件结尾的内容(默认后十行)
    -f:实时追踪该文件的所有更新——>实时监控

21、echo用法:输出内容到控制台

echo "hello-world" :输出hello-world到控制台

>:输出重定向,即我可以把一个内容输入或者输出到一个文件里(覆盖)
    echo "hello-world" >opt/nihao.txt
    把hello-world输出到opt/nihao.txt

>>:追加

22、ln用法创建链接,类似于快捷方式

-s:创建文件软连接
ln -s 原文件或者目录名  软连接名

23、history用法:

查看已经执行过的历史命令,也可以执行历史命令,只看最近执行的10个指令:history 10

24、crontab进行定时任务的设置

任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:①、系统工作:有些重要的工作必须定期执行,比如病毒扫描
                    ②、个别用户工作:个别用户希望执行某些程序,比如MySQL的备份
    基本语法
        crontab [选项]
        -e 编辑crontab定时任务
        -l 查询crontab任务
        -r 删除当前用户所有的crontab任务

25、crond任务调度

 -r 终止任务调度
 -l 列出当前有哪些任务调度
    service crond restart重启任务调度

26、ps -a 显示现行终端下的所有应用程序包括其他用户的程序

ps -A 显示所有程序
ps -ef 用于查看当前所有的进程

27、at定时任务

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行
    默认情况下atd守护进程每60s检查一次作业队列
    ps -ef | grep atd 只查看atd是否运行
    用法:at [选项] [时间]    ctrl+D结束at命令的输入
    选项
        -m 当指定的任务完成后,给用户发邮件,即使没有标准输出
        -I atq的别名
        -d atrm的别名
        -v 显示任务将被执行的时间
        -c 打印任务的内容到标准输出
        -V 显示版本信息
        案例:两天后下午五点执行/bin/ls /home
        #at 5pm +2 days
        #at > /bin/ls /home  输入两次CTRL + D  atq查看结果
        atrm 删除任务,用法 atrm 进程号

28、Linux分区

硬盘说明
①、Linux硬盘分IDE硬盘和SCSI硬盘两种,目前常用的是SCSI硬盘
    对于IDE硬盘,驱动器标识符为hdx~,其中hd表明分区所在的设备类型,在这里指IDE硬盘
    其中X为盘号(a为基本盘、b为基本从属盘、c为辅助主盘、d为辅助从属盘,~代表分区,
    前四个分区用1-4表示,它们是主分区或者扩展分区,从第5个开始为逻辑分区

对于SCSI硬盘标识为sdx~,sd表示硬盘类型为SCSI硬盘

②、查看所有设备挂载情况
lsdlk或者lsdlk -f
如何增加一块硬盘
    虚拟机添加硬盘
    分区
        分区指令:fdisk /dev/sdb
    格式化建立文件系统
        mksf -t ext4 /dev/sdb1
    挂载
        先创建一个文件mkdir /newdisk,然后将硬盘挂载到这个文件下,mount /dev/sdb1 /newdisk/
        卸载:umount /dev/sdb1 或者umount newdisk
    设置可以自动挂载
        永久挂载/自动挂载:
        修改/etc/fstab实现挂载,添加完成后执行mount -a即刻生效
        注意:UUID可以换成/dev/sdb1

③、磁盘情况查询
    查询系统整体磁盘使用情况
    df -h
    查询指定目录:du -h 目录    默认查询当前目录
    -s 指定目录的磁盘占用大小汇总
    -h 带计量单位
    -a 含文件
    -c 列出明细的同时增加汇总值

以树状显示目录结构
    tree 目录    注意,默认情况下,tree并未安装

网络配置
主机映射修改
    编辑/etc/hostname,重启后生效

29、进程管理

①、ps显示系统的进程
    -a 显示当前终端的所有进程信息
    -u 已用户的格式显示进程信息
    -x 显示后台进程运行的参数
②、kill终止进程
    -9 强制停止
    kill [选项] 进程号
    killall 进程名称
    杀死多个进程:killall gedit 进程名称
启动进程:/bin/systemctl start 进程名称
⑥、pstree查看进程树
    -p 显示进程的PID
    -u 显示进程的所属用户
⑦、服务管理,从centos7以后大部分服务管理都由systemctl负责,只有少部分指令支持service
    目前service管理的服务在/etc/init.d里面,用法:
    service 服务名 [start | stop | reload | status],例如
    service network restart

    systemctl start network

⑧、开放端口:例如开放TCP的8080端口
    #firewalld -cmd --permanent --add-port=8080/tcp
    #firewalld -cmd -reload
    当然更干脆的办法,直接关掉防火墙

systemctl可以管理在/usr/lib/systemd/system下的服务,可对该目录下的服务进行开启、关闭、设置开机自启动等等
    systemctl is-enabled 服务名——————>查询某个服务是否是开机自启,对3和5两个运行级别都同时用

30、动态监控进程

①、top与ps都是用来显示正在运行的进程,与之不同的是,top在执行一段时间后可以更新正在运行的进程
    用法:top [选项]
            -d 指定top每隔几秒更新,默认是3秒
            -i 不显示任何闲置或僵尸进程
            -p 通过指定监控进程id来仅仅监控某个进程的状态
            按P键:以CPU使用率排序,默认为此项
            按M键:以内存的使用率排序
            按N键:以PID进行排序
            按Q键:退出,或者CTRL+D
            按u键:监控指定用户
            按k键:结束指定进程PID

②、netsat监控网络状态,用法:netstat
    -an :按一定的顺序排列输出
    -p :显示那个进程在调用

31、RPM与yum

rpm用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中,他生成具有.RPM扩展名的文件
    rpm -qa:查询已安装的所有RPM包
    rpm -q 软件包名 :查询该软件包是否安装
    rpm -ql 软件包名 :查询软件包中的文件
    rpm -qi 软件包名 :查询该软件包的详细信息
    rpm -qf 文件全路径名 :查询文件所属的软件包,例如:
        #rpm -qf /etc/yum/
    rpm包的卸载:rpm -e rpm包的名称,强制删除可加参数--nodeps,例如:卸载wget
        #rpm -e wget
    安装rpm包,基本语法:rpm -ivh RPM包的全路径名称
        -i:install 安装
        -v:verbose 提示
        -h:hash 进度条

①、yum
    yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,
    可以自动处理依赖性关系,并且一次性安装所有依赖的软件包
    yum list 查询yum服务器是否有需要安装的软件,例如:
    yum list |grep xx软件列表
    yum install -y 软件包名 下载安装某软件包(-y:回复确认)

32、MySQL安装

#mkdir /opt/mysql
#cd /opt/mysql
#wget .7.26-1.el7.x86_64.rpm-bundle.tar    获取MySQL
#tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar      解压MySQL
#rpm -qa |grep mari      查询是否有mari,
# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64      因为maridb与MySQL会产生冲突,
安装相关依赖包
# rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
# rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
# rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm 
# rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
# systemctl start mysqld.service             开启MySQL
    设置随机密码,运行grep "password"/var/log/mysqld.log可看到当前密码

三、Linux之shell

1、Linux之shell编程

shell是什么:shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便于运行程序的界面系统级程序
    用户可以用shell来启动、挂起、停止甚至编写一些程序
    #./hello.sh   执行hello.sh

2、脚本格式要求:

脚本以#!/bin/bash开头
脚本需要有可执行权限
#chmod u+x 脚本名

3、例如:

[root@赵庆想 opt]# vim hello.sh
#!/bin/bash
echo "这是一个测试文件"
执行的时候可以这样写(未赋予可执行权限前)
 #sh hello.sh  或者使用绝对路径
赋予权限后:
[root@赵庆想 opt]# ./hello.sh

4、shell变量介绍

shell变量分为系统变量和用户自定义变量
    系统变量:$HOME ,$PWD ,$SHELL ,$USER等,比如:echo $HOME等等
        显示当前shell中所有变量:set

5、shell变量的定义

基本语法:
        定义变量:变量=值
        撤销变量:unset 变量
        声明静态变量:readonly变量,静态变量的特点:不能被unset
    注意:
        shell在定义变量的时候等号两边不能打空格
        变量名称可以由字母、数字、下划线组成,但是不能以数字开头
        变量名称一般习惯为大写

6、将命令的返回值赋给变量变量需要加反引号,反引号在esc下面

例如
        A=`date`   运行里面的命令,并把结果返回给变量A
        A=`date`等价于A=$(date)

7、设置环境变量

export 变量名=变量值 ————>将shell变量输出为环境变量
source 配置文件 ————>让修改后的配置信息立即生效
echo $变量名 ——————>查询环境变量的值

8、位置参数变量:

当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
基本语法
    $n:(功能描述:n代表数字,$0代表本身,$1-$9代表第一到第九个参数,十个以上的需要用大括号,${10})
    $*:这个变量代表命令行中的所有参数,把所有的参数看为一个整体
    $@:这个变量代表命令行中的所有参数,不过$@把每个参数区分对待
    $#:这个变量代表命令行中所有参数的个数

9、预定义变量

shell设计者事先已经定义好的变量,可以直接在shell脚本中使用

10、基本语法:

$$ 当前进程的进程号
    $! 后台运行的最后一个进程的进程号
    $? 最后一次执行的命令的返回状态。如果这个变量为0,证明上一个命令正确执行,否则错误
    例如:
        [root@赵庆想 opt]# vim 测试.sh
        #!bin/bash
         echo "当前执行的进程id=$$"
        #一后台的方式运行一个脚本
        /root/shcode/var &
        echo "最后一个后台方式运行的进程id=$!"
        echo "执行的结果是=$?"
        [root@赵庆想 opt]# sh 测试.sh
        当前执行的进程id=7454
        最后一个后台方式运行的进程id=7455
        执行的结果是=0

11、运算符

基本语法:
        "$((运算式))"或"$[运算式]"或者expr m +n ————>注意空格,m和n代表数字
        例如:
            #!bin/bash
            one=$(((999+888)*8889578457478457957464785927485389898988888889))
            echo "one=$one"
            #第二种写法
            too=$[(65535+32768)*255]
            echo "too=$too"
            [root@赵庆想 opt]# sh jisuan.sh 
            one=801204074711884071
            too=25067265

12、条件判断

基本语法
        [ condition ]————>注意前后空格
        非空返回true,0为true,1为false
    常用判断条件
        = 字符串比较
        -lt 小于
        -le 小于等于
        -eq 等于
        -gt 大于
        -ge 大于等于
        -ne 不等于

13、流程控制

if判断基本语法
    if[ 条件判断式 ]
    then
    代码
    fi
    或者多分枝
    if[ 条件判断式 ]
    then
    代码
    elif [ 条件判断式 ]
    then
    代码
    fi

        注意中括号之间必须有空格

四、Linux系统命令

1、日志记录

日志是重要的系统信息文件,其中记录了许多的重要系统事件
系统常用的日志
    系统常用的日志文件通常保存在/var/log下
    boot.log   系统启动日志
    cron       记录与系统定时任务相关的日志
    lasllog       记录系统中所有用户最后一次时间的日志,二进制文件,需用lastlog命令查看
    mailog     记录邮件信息的日志
    message    记录系统重要信息的日志,他会记录Linux系统中绝大多数重要信息文件,如果系统出现问题,应该首先查看该文件
    secure     记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录
    ulmp       记录当前已经登陆的用户的所有信息,不能用vi查看,可用w、who、usrts等命令查看

2、日志管理服务rsyslogd

查询日志服务是否启动
#ps -aux |grep rsyslog
查询日志服务是否自启动
# systemctl list-unit-files |grep rsyslog

3、Linux内核

Linux 0.01

4、备份(dump)与恢复(restore)

 # yum install -y dump
 # yum install -y restore

5、Linux可视化管理

  webmin和bt运维工具
        webmin是功能强大的基于web的Linux系统管理工具,管理员可通过浏览器webmin的各种管理功能
        并完成相应的操作。
            安装和配置:
                下载地址:/  用下载工具下载即可
                也可以用wget .700-1.noarch.rpm
                # yum install -y wget
                # wget .700-1.noarch.rpm
                因为文件包后缀名是rpm,所以建议用下面的方法安装
                # rpm -ivh webmin-1.700-1.noarch.rpm 
                # /usr/libexec/webmin/changepass.pl /etc/webmin root test ——————>重置密码
                    把webmin的root用户的用户密码改为test
                # vim /etc/webmin//miniserv.conf ——————>修改端口,
                将port=10000修改为其他端口号——————>出于安全考虑
                还有监听端口(listen)尽量与port保持一致,然后再进行如下操作
                # /etc/webmin/restart  ——————>重启webmin
                # firewall-cmd --zone=public --add-port=3355/tcp --permanent ——————>开放端口
                # firewall-cmd --reload ——————>更新防火墙配置
                # firewall-cmd --zone=public --list-ports ————>查看开放的端口号
                然后浏览器http://IP地址:端口号   就可以在浏览器访问了
                http://192.168.80.129:3355
                进去后点击 webmin——>webmin configuration进行IP、语言等相关设置

 

6、bt宝塔

bt宝塔Linux面板是提升运维效率的服务器管理软件
安装
    # yum install -y wget && wget -O install.sh .0.sh && sh install.sh
    这里的&&意思是,我先执行前面一个指令然后再执行后面一条指令,最后再执行最后一条指令

    成功后的界面
success
==================================================================
Congratulations! Installed successfully!
==================================================================
外网面板地址: http://117.188.253.64:8888/ed504302
内网面板地址: http://192.168.80.129:8888/ed504302
username: t0iuzben
password: 3b5786b7
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================
Time consumed: 1 Minute!

打开浏览器用内网面板地址: http://192.168.80.129:8888/ed504302 登录————>需要引用手机号
如果bt密码忘记了可以执行如下指令查看
# bt default

 

更多推荐

Linux实践【详细基础篇】

本文发布于:2024-02-13 01:44:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690225.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基础   详细   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!