首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux bash的启动

Linux Bash的启动过程涉及多个阶段,每个阶段都有其特定的任务和功能。以下是详细的启动过程及其基础概念:

基础概念

  1. Shell: Shell是一个命令行解释器,它允许用户与操作系统内核进行交互。Bash(Bourne Again SHell)是Linux系统中最常用的Shell之一。
  2. 初始化脚本: 这些脚本在系统启动时运行,用于设置环境变量、启动系统服务和用户进程。
  3. 登录Shell与非登录Shell:
    • 登录Shell: 用户通过用户名和密码登录系统时启动的Shell。
    • 非登录Shell: 在已登录会话中通过终端模拟器(如xterm)启动的Shell。

启动过程

  1. 内核引导: 系统开机后,BIOS或UEFI固件会加载并启动内核。
  2. init进程: 内核启动后,第一个运行的进程是init(在现代系统中可能是systemd)。init负责启动其他进程和服务。
  3. 运行级别: Linux系统有不同的运行级别(如0-6),每个级别对应不同的系统状态(如单用户模式、多用户模式等)。initsystemd会根据配置文件进入相应的运行级别。
  4. 启动脚本: 在每个运行级别下,会执行一系列的启动脚本。这些脚本通常位于/etc/init.d/etc/systemd/system目录下。
  5. Bash启动:
    • 登录Shell:
      • 加载/etc/profile
      • 加载~/.bash_profile~/.bash_login~/.profile(按顺序查找,找到第一个就执行)。
      • 执行~/.bashrc(如果~/.bash_profile中调用了它)。
    • 非登录Shell:
      • 直接加载~/.bashrc

相关优势

  • 灵活性: 用户可以根据需要自定义启动脚本,设置特定的环境变量和启动程序。
  • 可维护性: 通过脚本管理启动过程,便于维护和更新系统配置。
  • 模块化: 启动脚本可以按功能分组,便于管理和调试。

类型与应用场景

  • 系统级脚本: 用于启动系统服务和守护进程,通常位于/etc/init.d/etc/systemd/system
  • 用户级脚本: 用于设置用户特定的环境变量和启动用户应用程序,通常位于用户的家目录下(如~/.bashrc)。

常见问题及解决方法

问题1: Bash启动时加载脚本失败

原因: 可能是脚本语法错误、路径问题或权限不足。

解决方法:

  1. 检查脚本语法:
  2. 检查脚本语法:
  3. 确保脚本路径正确且有执行权限:
  4. 确保脚本路径正确且有执行权限:

问题2: 环境变量未正确设置

原因: 可能是启动脚本中未正确设置环境变量或变量被覆盖。

解决方法:

  1. 在启动脚本中明确设置环境变量:
  2. 在启动脚本中明确设置环境变量:
  3. 使用source命令重新加载脚本:
  4. 使用source命令重新加载脚本:

示例代码

以下是一个简单的用户级启动脚本示例:

代码语言:txt
复制
# ~/.bash_profile

# 设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

# 执行.bashrc
if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi
代码语言:txt
复制
# ~/.bashrc

# 设置别名
alias ll='ls -alF'

# 其他自定义设置

通过理解这些基础概念和启动过程,可以更好地管理和调试Linux系统的启动脚本。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

升级linux bash

3.0的bash版本也可能受影响, 2)入侵方式:结合CGI方式可以导致远程代码执行,入侵服务器; 了解系统当前bash的版本 [root@test test]# bash --version GNU...bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) Copyright (C) 2009 Free Software Foundation,...There is NO WARRANTY, to the extent permitted by law. 3)Linux Bash严重漏洞修复紧急通知(2014年9月25日更新) 日前Linux官方内置...Bash中新发现一个非常严重安全漏洞,黑客可以利用该Bash漏洞完全控制目标系统并发起攻击,为了避免您Linux服务器受影响,建议您尽快完成漏洞修补,修复方法如下: 漏洞检测方法 可以使用如下命令来检查系统存在此漏洞...: env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 如果在一个含有版本号小于bash 4.3的linux或者unix系统上执行以上命令

5.5K90
  • Linux的Bash Shell详解

    一、Bash Shell概述   1.什么是bash           bash是Bourne Again Shell的简称,是从unix系统中的sh发展而来的,是用户和Linux内核交互的工具,用户通过...bash操作内核完成系统的使用和管理。   ...3.bash的历史和发展 ? 二、Bash Shell的变量概述   1.变量是代表一些值的符号。   2.可以通过变量来设置shell或者其他程序。   3.变量存在于内存中。   ...4.Linux有自定义变量(local)和环境变量(environment)。   5.自定义变量和环境变量的作用范围不同。   ...2.non-login shell:             不需要登录流程就可以执行的shell,如su和原bash下的新bash动作             ~/.bash_rc、/etc/bashrc

    3.4K40

    Linux-Bash指令

    查询指令 type [-tpa] name:查询指令是否为Bash内建指令: 没有参数的话,显示name是外部命令还是内建命令 -t:以如下方式显示命令含义: file:外部命令 alias:命令别名...builtin:内建指令 -p:如果name为外部指令,才会显示完整的文件名 -a:会由PATH变量定义的路径中,将所有name的指令都列出来,包含alias 2....> + a 让光标移动到整个指令串的最前面 + e 让光标移动到整个指令串的最后面 3....指令搜寻顺序 在bash shell中输入一个指令并执行后,指令运作的顺序如下: 以相对/绝对指令执行指令,例如/bash/ls,..../ls 由alias找到该指令来执行 由bash内建的(builtin)指令来执行 通过$PATH变量的顺序搜索到的第一个指令来执行

    3.3K10

    Linux Bash基础(一)

    (ksh) zsh 各个shell的功能都差不太多,在某些语法的下达下面有些区别,Linux预设就是bash。...简单点说,直接把shell和bash先理解为一个东西好了,就是Linux中的那个终端窗口(Terminal),也就是那个小黑框,下面的例子都是在Linux的终端窗口中运行的。...,示例: echo $((2+5*2**(5-3)/2)) 返回代码 在Linux中,每个可执行程序运行完后会有一个整数的返回值,可以使用**$?.../bin/bash 值得注意的是: sh一般设成bash的软链 在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模 也就是说 /bin/sh 相当于.../bin/bash --posix 所以,sh跟bash的区别,实际上就是bash有没有开启posix模式的区别

    10.1K20

    浅谈Linux下的shell--BASH

    C shell,提供更多的功能) /bin/csh (被/bin/tcsh替换) 我们可以发现,Linux默认的shell就是bash,所以我们常说的命令行解释器,其实就指的是bash。...文件中的内容 我们打开后,会发现每一个用户都有自己的shell,这个shell就是bash,当然这也可以说明一点:Linux是一个多人多任务的环境,即每一个用户都有自己对应的bash。...★这里简单总结一下; Linux默认的shell就是bash。 在我们登陆时,系统会自动给我们分配对应的shell—bash,并且每个用户都有自己的bash。即Linux是一个多人多任务的环境。...bash的功能 Linux既然使用bash作为默认shell,那么bash就一定有它的优点吸引住了Linux。...由此可见,bash的功能真的很香,怪不得Linux默认的shell是bash。

    98040

    kali linux下的常用bash命令

    虚拟机版本默认用户root 密码toor ls:显示当前目录包含的文件及文件夹 ls -l:以常规格式显示当前目录包含的文件及文件夹(开头字母解释:d:目录 -:文件 c:设备文件 l:链接 b:块设备...,如硬盘分区) ls -a:显示隐藏文件(以.开头) ls-lh:以适合阅读的常规格式显示当前目录包含的文件及文件夹 ls -lh --sort=size:按照文件大小排序(=time:时间) cd /...:查看网络配置信息(ip等) ifconfig eth0 down/up:关闭/启动eth0网卡 macchanger -m 00:11:11:11:11:11 eth0:改变eth0网卡的mac(重启后恢复默认...,打印到控制台 vi:vim的简称,一个非常复杂的命令模式下的文件编辑器,直接在vi后加要编辑的文件名,基本用法:输入 :后输入命令,set nu可以显示行号,:wq保存并退出,i 插入状态,a添加状态...管道符: | 后面可以添加执行前面命令的条件 &按顺序执行两个相连的命令 && 前面执行成功才执行后面命令 || 前面执行不成功才执行后面

    1.8K40

    Linux私房菜:走进bash

    本文内容精简、整理、摘抄、有感于《鸟哥的Linux私房菜 - 基础篇第四版》第十章 • 认识与学习BASH。 Bash功能 命令编辑修复能力:history。...用户bash指令使用记录文件:~/.bash_history 命令与文件补全:tab 命令别名设定:alias 工作控制、前景和背景控制 程序化脚本:shell scripts 通配符:wildcard...,执行上一个指令,相当于↑ + Enter ctrl + u 提示符命令输入下可快速删除整行 ctrl + s 暂停屏幕的输出 ctrl + q 恢复屏幕的输出 特殊符号 bash特殊符号 说明 #...如$可保留相关变量引用) `xxx` 可执行的指令,亦可使用$() () 中间为子shell的起始和结束 {} 中间为命令区块的结合 cmd1 && cmd2 cmd2仅在cmd1正确执行的情况下执行...d后接某一字符用于删除 s后接被替换的字符和待取代的字符 col [-xb],将tab键转换成对等的空格键 join -[til2] file1 file2,处理两个文字的数据 paste [

    2.5K20

    Linux系统Bash的常用功能

    』,而是一种Linux的命令接口,在 Linux 的世界中,默认使用的是 GNU 开发出来的 shell ,称为 BASH Shell,简单来说,我们之前使用的几个命令都是 bash 管理的,除此之外,...这个无法登陆的Shell.Bash-Shell的常用功能既然 /bin/bash 是 Linux 默认的 shell 那么总是得了解一下这个Shell有哪些特性吧,bash 是 GNU 计划中重要的工具软件之一...,目前也是 Linux 发行版的标准 shell ,bash 兼容于 sh ,下面我们看一下bash到底有哪些特点吧,好让我们以后的使用更加得心应手. ● 命令记忆功能(history) 在默认的Linux...,这些都是需要注意的,下面我们就来介绍一下吧.关于Bash的登陆tty终端提示信息其实我们的Bash也有登陆提示信息的,细心的你也会发现,当我们登陆Linux系统时,默认会提示,Linux的版本等相关信息...,但是一进入 bash 就取得一堆有用的变量了,这是因为系统有一些环境配置文件案的存在,让 bash 在启动时直接读取这些配置文件,以规划好 bash 的操作环境,而这些配置文件又可以分为全体系统的配置文件以及用户个人偏好配置文件

    3.3K30

    Linux系列教程(二十二)——Linux的bash变量

    上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的。本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫。...使用变量可以保存有用信息,使系统获知用户的相关设置,变量也可以保存暂时信息。 2、变量的声明规则 ? ? ? ? 3、变量的分类 ? 4、用户自定义变量的用法   用户自定义变量也就是本地变量。...③、变量查看 set   set 是查看当前系统中定义的所有变量。 ?   ④、变量删除 unset 变量名 5、环境变量的用法   环境变量主要保存的是和系统操作环境相关的变量。   ...解决办法就将hello.sh的所在路径添加到 $PATH 变量中,如下: ?   ⑥、定义系统提示符的变量 $PS1 ? ? 6、位置参数变量的用法 ? ?...12、环境变量配置文件   前面我们在将环境变量的时候,我们将脚本的路径加入到 $PATH 路径中,然后就可以直接通过脚本的名称来执行脚本。

    1.2K100

    Linux&bash闯关CTF

    关卡说明 每一关的目标是获取下一关的入口密码,有了这个密码才能进行下一关。 第一关 描述 下一关的密码保存在当前目录下的readme中。 命令 ?...命令 第一步:写一个bash脚本,循环连接 ? 第二步:查看成功后的结果 ? 将上面的私钥保存为cert.cer供下一关使用。...发现一个可写目录 /run/lock 第三步:在/run/lock下创建一个bash脚本bandit24pwd.sh ? 第四步:添加执行权限等待执行 ?...第二十五关 描述 这一关的任务是利用目录下的key文件登入服务器,但是在登入的时候由于返回的不是/bin/bash无法进行操作,所以要想办法突破他。 命令 第一步:尝试登入 ?...总结 这篇文章主要内容就是讲解了老外写的一片关于linux以及bash的命令使用的CTF,提供不同的场景使用不同的命令,这里肯定是不全的,不可能包含linux的所有命令以及所有情况,只能作为一个参看,能学多少学多少

    3K01

    Linux系统安全 | Linux中的Shell和Bash

    学安全的我们,经常会听到说获得某服务器的shell,就是指获得某个服务器的操作权限。我们学习linux时,经常会遇到bash,bash也是指的是某个服务器的权限。那么,这两者有什么区别和联系呢?...所以,我们就不难理解Linux中的shell有多种类型了吧,这其中最常用的几种是 Bourne shell(sh)、Bourne Again shell(bash) 和 Debian Almquist...bash bash (Bourne Again shell),它是Linux操作系统缺省的shell,是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne...而且在Redhat系列的Linux 操作系统中的 /bin/sh 是 /bin/bash 的符号链接。所以,用 sh执行脚本和bash 执行脚本,效果是一样的。所以我们通常会在脚本第一行写 #!...但是鉴于bash过于复杂,有人把bash从NetBSD移植到Debian Linux并更名为 dash (Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度

    3K10

    Linux系统安全 | Linux中的Shell和Bash

    我们学习linux时,经常会遇到bash,bash也是指的是某个服务器的权限。那么,这两者有什么区别和联系呢?...所以,我们就不难理解Linux中的shell有多种类型了吧,这其中最常用的几种是 Bourne shell(sh)、Bourne Again shell(bash) 和 Debian Almquist...bash bash (Bourne Again shell),它是Linux操作系统缺省的shell,是Bourne shell的扩展,简称Bash,与Bourne shell完全向后兼容,并且在Bourne...而且在Redhat系列的Linux 操作系统中的 /bin/sh 是 /bin/bash 的符号链接。所以,用 sh执行脚本和bash 执行脚本,效果是一样的。所以我们通常会在脚本第一行写 #!...但是鉴于bash过于复杂,有人把bash从NetBSD移植到Debian Linux并更名为 dash (Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度

    1.6K20

    在linux上创建永久的Bash别名

    命令,使用 alias 创建别名 alias ll='ls -alh' 注意:等号前后不要有空格,不能写成 alias ll = 'ls -alh' 可以直接使用 alias 命令显示已经创建的别名列表...,发现 ll 已经创建成功 删除别名 unalias name # name 为你要删除的别名名称 unalias ll 再使用 alias 命令显示别名列表,发现 ll 已经成功删除 / 取消 alias...永久生效和永久删除 按照上面的操作,在当前终端下使用 alias 创建了别名,在新启动的终端中竟然无效!!!...所以还是将 alias 添加到环境变量中才能永久生效 Linux下 > vim ~/.bashrc # 将新建的别名命令按行逐一写入,比如 alias ll='ls -alh' alias print=...source ~/.bash_profile使之生效 重启新的终端,输入 print 测试,输出入门小站二字即为成功,或 输入 alias 查看内容 那要想永久删除就很简单了,再去编辑对应文件,将不需要的那一行删除

    1.6K10
    领券