Use `sed`
sed 's/\([^ ]*\) *\(.*\)/\2 \1/' infile
This `\([^ ]*\)` will match everything until a non-space characters seen.
The parentheses `\(...\)` is used to made a group matching which its index would be `\1`.
The `\(.*\)` matches everything after first group and it's indexed `\2`.
The ` *` in `\(...\) *\(...\)` out of matched groups will ignore to print in output which is matching spaces between group 1 and 2, you could use `\s*` (with GNU `sed`) or `[[:space:]]*` (standardly) instead to match any spacing characters instead of just ASCII SPC as well.
Then at the end first we are printing matched _group2_ than _group1_ with a space between.