Error using cd after running a shell script

Ever since running a shell script on my computer I have been getting this error whenever I try to use the "cd" command:

Screenshot from 2024-01-05 03-00-47

This is the shell script that I ran that I got from github, it was called "prank script" so I didn't think it could do any harm but now I think it may have broken something. I don't know much about shell scripts because I only just started researching them, which I know seems foolish, but from what I can see it looks as though the script has messed up the cd alias.

Any help on how to fix this would be highly appreciated.

Edit your .bashrc file at:

Look for a line that starts with:
alias cd

Delete that line.

But that's only a tiny amount of what's messed up in your .bashrc, so here's what mine looks like... you can just copy-n-paste this, erasing everything in your original file, then saving it:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;

# Edit files by using sudoedit {/path/file}
export SUDO_EDITOR='/usr/bin/gedit -w'

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion

# Set up 'report' alias for sharing configuration files with Zorin help
# Use it like this:
# dmesg | report
# cat /etc/default/grub | report
alias report="curl -F 'file=@-'"

# Trap the 'exit' command and mousing out of the terminal window.
trap 'history -cw && cd ~ && sudo cp .good_history .bash_history && sleep 3' SIGHUP EXIT

The last two lines are related to this:

The 5 lines above that (about reporting a problem to Zorin) are about this:

1 Like

@Mr_Magoo Thank you so much! I was really worried I would have to reinstall the whole OS again but you saved me, I cannot thank you enough!

If you use Mozilla Firefox, you will need to also remove the ~.mozilla directory and re-install Firefox.

You will also need to run

crontab -r

To restore Crontab to default and remove the Crontab prank that script includes.

I imagine you have already checked your Keyboard Layouts and Display settings?

Lesson learned... never run random scripts or commands unless you research to find out what they do first.

I'd recommend you use the Disks application to create a whole-disk .IMG file of your drive, then compress it with 7z so it takes less space. You'll need another external drive to save the .IMG file to that's at least twice as large as the drive you're backing up. That way, if something goes topsy-turvy, you can just extract the .7z file to get the .IMG file, then use Disks to write that .IMG file to your drive, and you're back up and running as though nothing went wrong.

To back up:
Boot the Zorin OS USB stick and select "Try Zorin". Open Disks application, select the drive you're going to back up, click the '3 vertical dots' button at upper-right, select "Create Disk Image", select the drive you're going to save the .IMG file to, set it running. Once it's done, right-click the .IMG file and select "Compress", then select ".7z" and set it running. Once the compression is done, you can delete the .IMG file.

To restore:
Boot the Zorin OS USB stick and select "Try Zorin". Open Nautilus File Manager, navigate to the disk where you have the compressed backup. Right-click the compressed backup and select "Extract", then let it run. When it's done, open Disks application, select the drive you'll be restoring to, select the "3 vertical dots" button, select "Restore Disk Image", navigate to the .IMG file and select it, then set it running. Once the restore is done, you can delete the .IMG file.

I'm not too sure what else the script has messed up, but I will run that just in case and check keyboard layouts as you suggested. I have deleted the script now but the fact that it mentioned doing things weekly is a little concerning, I don't know if it will still have any kind of effect in the future. I don't know much about shell script like I said so it was a really bad idea to run it, but hey, lessons are there to be learned, and I certainly won't be doing that again in a hurry unless it's a script I wrote and I know exactly what it does.

Crontab schedules tasks, which is why I recommended that you restore it to default.

Being as I am someone who messes with files a lot and tries (and usually fails) at customising as much as possible, I think that would be a good idea, thanks!

Don't run random scripts you find on the web without inspecting them to see what changes they do. If you can't read scripts - then only run scripts from sources you really trust.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.