当前位置: 首页 > news >正文

linux的profile文件被删除,Centos7 etc/profile和/bin被误删除的解决办法

Centos7 /etc/profile和/bin被误删除的解决办法

/etc/profile被删除的解决办法

/etc/profile被误删除了,ls、vim等shell命令都报如下错误:

-bash: /usr/bin/ls: Argument list too long

shell命令基本都在/usr/bin,/usr/sbin,/bin,/sbin,/usr/X11R6/bin中有定义,

因此通过下面这条命令,重新取出shell命令

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

新建立/etc/profile文件

通过vim /etc/profile新建立profile文件,把如下命令拷贝进去,再使用source /etc/profile是文件立即生效

# /etc/profile

# System wide environment and startup programs, for login setup

# Functions and aliases go in /etc/bashrc

# It's NOT a good idea to change this file unless you know what you

# are doing. It's much better to create a custom.sh shell script in

# /etc/profile.d/ to make custom changes to your environment, as this

# will prevent the need for merging in future updates.

pathmunge () {

case ":${PATH}:" in

*:"$1":*)

;;

*)

if [ "$2" = "after" ] ; then

PATH=$PATH:$1

else

PATH=$1:$PATH

fi

esac

}

if [ -x /usr/bin/id ]; then

if [ -z "$EUID" ]; then

# ksh workaround

EUID=`id -u`

UID=`id -ru`

fi

USER="`id -un`"

LOGNAME=$USER

MAIL="/var/spool/mail/$USER"

fi

# Path manipulation

if [ "$EUID" = "0" ]; then

pathmunge /usr/sbin

pathmunge /usr/local/sbin

else

pathmunge /usr/local/sbin after

pathmunge /usr/sbin after

fi

HOSTNAME=`/usr/bin/hostname 2>/dev/null`

HISTSIZE=1000

if [ "$HISTCONTROL" = "ignorespace" ] ; then

export HISTCONTROL=ignoreboth

else

export HISTCONTROL=ignoredups

fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell

# Current threshold for system reserved uid/gids is 200

# You could check uidgid reservation validity in

# /usr/share/doc/setup-*/uidgid file

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002

else

umask 022

fi

for i in /etc/profile.d/*.sh ; do

if [ -r "$i" ]; then

if [ "${-#*i}" != "$-" ]; then

. "$i"

else

. "$i" >/dev/null

fi

fi

done

unset i

unset -f pathmunge

#ulimit -SHn 1024000

/bin被误删除的解决办法

使用source /etc/profile报如下错误:

-bash: /usr/libexec/grepconf.sh: /bin/sh: bad interpreter: No such file or directory

(base) [root@kafka1 etc]# source /etc/profile

-bash: /usr/libexec/grepconf.sh: /bin/sh: bad interpreter: No such file or directory

发现是/bin目录被误删除,此时ssh远程连接服务器时,会无法连接:报错Permission deny,用户名或密码不正确。

b4a4bc6219fa52e8743518b19b6e36bc.png

补救办法是,在linux服务器上查找bash文件

(base) [root@kafka1 /]# whereis bash

bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz

如下图所示:直接建立/bin目录到/usr/bin目录的软连接

0395dba0d1115731d5cee303ebe810ed.png

创建软链接ln(link)的方法:

ln -s 源文件 目标文件

-s 选项,表示创建软连接。

源文件 就是要连接到的文件

目标文件 就是要创建的软连接文件,目标文件可以看作源文件的快捷命令

具体命令如下:

ln -s /usr/bin /bin

e18e4b46303ad341a466fc96763e2623.png

建立软连接成功后,再source /etc/profile即可成功

source /etc/profile

相关文章:

  • 深度linux怎么显示图标,Linux(Ubuntu/Deepin) 添加启动图标
  • c语言写入csv 逗号字符串,[转]C语言处理CSV文件的方法,以及kdd cup的简单说明...
  • c语言阅读程序求结果题型,阅卷教师面对面 C语言程序设计五种题型别马虎
  • C语言wait参数status,C语言-系统-wait()和waitpid()函数
  • claim用法c语言中,通过一个例子学习Kubernetes里的PersistentVolumeClaim的用法
  • ipv6报文封装linux,IPv6报文的路由头封装方法及装置与流程
  • android 7下载地址,Android7.0下载地址 安卓7.0系统手机下载安装教程
  • android 弹出菜单环形,谷歌新专利:安卓环形菜单 双指触屏效率高
  • android相机拍摄时动画完成效果,Android 仿微信图像拍摄和选择界面功能(代码分享)...
  • 安装android 模拟器 停止运行程序,才知道,原来修改程序后,不需要重新启动AVD模拟器就可以测试程序运行的!...
  • 修改sim卡号码 android,android 如何动态修改SIM卡应用名称 MT6572 MT6589
  • android studio sqliteopenhelper,android studio使用SQLiteOpenHelper()建立数据库的方法
  • 一加5android 系统耗电,一加5评测:可能是今年最好的Android旗舰
  • 在线html代码生成器,支持网页快速排版 CSS代码一键生成的在线设计工具
  • html文件如何放置web站点,如何使用Go Web服务器提供静态html文件?
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Android单元测试 - 几个重要问题
  • Fundebug计费标准解释:事件数是如何定义的?
  • Git的一些常用操作
  • Java 23种设计模式 之单例模式 7种实现方式
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JSDuck 与 AngularJS 融合技巧
  • maven工程打包jar以及java jar命令的classpath使用
  • mysql外键的使用
  • node-glob通配符
  • node和express搭建代理服务器(源码)
  • Redash本地开发环境搭建
  • TCP拥塞控制
  • 初识 beanstalkd
  • 读懂package.json -- 依赖管理
  • 将 Measurements 和 Units 应用到物理学
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 最近的计划
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (JS基础)String 类型
  • (二十四)Flask之flask-session组件
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (五)关系数据库标准语言SQL
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET delegate 委托 、 Event 事件,接口回调
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @ResponseBody
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [1204 寻找子串位置] 解题报告
  • [1525]字符统计2 (哈希)SDUT
  • [AIGC] Spring Interceptor 拦截器详解