The commands do exactly as expected of them. You may find out what is reasonable to expect of a command by looking at the manual page for that command.
E.G.
man cp: -i, --interactive prompt before overwrite (overrides a previous -n option)
If you find yourself thinking that some options are good to have all the time, there are various vays of persisting your choices. You may for example type in:
alias rm="rm -i" alias cp="cp -r"
But that will only last until you log out. To make such options permanent you can put these aliases in a file that is read by yor shell every time you log in. If you run bash, you can put your start-up commands in ~/.bashrc. Generally, ~/.profile is also a good place to put aliases.
The current state of things, when shells and command line utilities are concerned, is far from obnoxious. The initial shock of using the terminal instead of a graphical browser, may leave you confused and maybe somewhat enraged, but only after a couple of years You'll get very used to it and will laugh back at the time when you used to think that a GUI browser was "the current state of things".
For the sake of good will, and to welcome you to the world of command line interface I'll give you a couple of my favorite aliases. And I'll give you that cp -i and rm -i are byt far better to have as the default commands, because it's very easy to make a mistake and remove a lot of files unintentionally. I don't agree on the recursive option though.
# basic file manipulation, etc alias cd....='cd ../..' alias cd...='cd ../..' alias cd..='cd ..' alias cd.='cd .' alias cd~='cd ~' alias ....='cd ../..' alias ...='cd ../..' alias ..='cd ..' alias ~='cd ~' alias ls='ls --color=auto' alias l='ls -CF' alias l1='ls -1' alias ll='ls -l' alias lla='ls -la' alias la='ls -a' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' alias mc='mv -i' alias md="mkdir" alias rd="rmdir" alias less="less -i" alias bc="bc -q" alias KA="killall" alias swipe='screen -wipe' alias sdr='screen -dR $1' # and some functions: spelling () { echo $@ | LC_ALL=en_US aspell -a; } google-search () { BROWSER="firefox '%s' &" args="${@}"; args=`echo $args | sed 's/ /%20/g'`; url="https://www.google.no/search?hl=en&um=1&sa=1&q="; printf "$BROWSER\n" "$url$args" | sh }