Псевдоним для "cd", который показывает текущий каталог каждый раз, когда я меняю каталоги?

Следующее делает некоторые предположения:

  • Все команды запускался как root, когда это возможно
  • Вам нужна файловая система ext4
  • Вы слабо знакомы на базовом уровне со всеми выполняемыми командами
  • Вы НЕ загружаетесь с RAID-устройства

Итак, начнем.

  1. Физически установить новый диск в компьютер и подключиться к доступному порту, оставив старый диск на прежнем месте.
  2. Загрузите компьютер в старую ОС.
  3. Подготовьте и смонтируйте новый диск; сначала определите новый диск

fdisk -l

  1. Разделите новый диск

fdisk / dev / (newdisk)

 Сделайте раздел основным разделом с типом файловой системы типа «83». 
 
  1. Создать файловую систему

mkfs.ext4 / dev / (новый раздел)

  1. Смонтировать новую файловую систему

mkdir / mnt / (newpartitionmountpoint)

mount / dev / (newpartition) / mnt / (newpartitionmountpoint)

  1. Копировать диск:

/ sbin / init 1 (переход в однопользовательский режим)

rsync -avxHAX / / mnt / (newpartitionmountpoint)

startx

  1. Обновить FSTAB на newdisk

blkid (обратите внимание на UUID нового раздел)

(выбранный редактор) / mnt / (newpartitionmountpoint) / etc / fstab

  Заменить существующий UUID / в FSTAB на UUID нового диска 
 
  1. Настроить grub и установить на новый загрузочный диск загрузчик:

grub-mkconfig

update-grub

grub-install / dev / (newdisk)

  1. Скопируйте grub.cfg со старого диска на новый

cp -ax /boot/grub/grub.cfg /mnt/(newpartitionmountpoint)/boot/grub/grub.cfg

  1. Откройте grub.cfg на новом диске и замените все UUID новыми диск

(редактор по выбору) /mnt/(newpartitionmountpoint)/boot/grub/grub.cfg

Замените все старые UUID на UUID нового диска

  1. Завершите работу компьютера

Завершение работы

  1. Физически переместите новый диск в расположение 1-го диска и удалите старый диск

    14. Запустите компьютер, и grub должен представить:

ошибка: такого устройства нет: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Спасение GRUB>

  1. Вручную загрузить новую ОС из grub; сначала определите диск и раздел с загрузочными файлами

ls [для определения вашего диска и параметров раздела]

ls (hdx, p) / [чтобы определить, в каком разделе находится папка / boot]

  1. Затем вы может загрузить меню загрузки вручную с диска и раздела, которые вы нашли выше. Обычно это (hd0, msdos1).

set prefix = "(hdx, p) / boot / grub"

set root = "(hdx, p)"

insmod normal

normal

  1. Войти в ОС на новом диске
  2. Снова настройте grub

fdisk -l (обратите внимание на разработчика newdisk)

grub-mkconfig

update-grub

grub-install / dev / newdisk

И все готово!

1
13.08.2016, 00:26
3 ответа

В tcsh вы можете определить специальный псевдоним cwdcmd hook , который вызывается каждый раз, когда изменения в текущем рабочем каталоге:

alias cwdcmd pwd

zsh скопировал эту концепцию (используя функцию перехвата вместо псевдонима ( tcsh не имеет функции)):

chpwd() pwd

В любом случае, если вы хотите, чтобы ваше приглашение содержало завершающий компонент текущего рабочего каталога, вам не нужно ничего подобного.

set prompt='%c !> '

было бы достаточно. Также обратите внимание, что tcsh уже устанавливает переменную $ cwd самостоятельно, нет необходимости устанавливать ее вручную в псевдониме cd .

2
27.01.2020, 23:16

Следующее работает для меня:

alias cd 'cd \!*; set cwd=`pwd`; pwd'

Это заменяет cd псевдонимом, который запускает три команды:

cd \!*

, который изменяет каталог,

set cwd=`pwd`

, который сохраняет результат pwd в переменной cwd и, наконец,

pwd

, который печатает текущий каталог.

Вторая команда больше бесполезна, так как она не нужна для приглашения, поэтому вы можете упростить ее до

alias cd 'cd \!*; pwd'

или, еще лучше,

alias cd 'cd -p \!*'

, которая использует параметр -p для печати результирующий каталог.

(Обратите внимание, что в tcsh вы можете указать % / или % ~ в приглашении, чтобы получить текущий рабочий каталог, вместо того, чтобы сохранять его в переменная. % / дает полный путь во всех случаях, % ~ упрощает его, используя ~ , когда это возможно.)

3
27.01.2020, 23:16

Другой альтернативой может быть использование rprompt , это работает точно так же, как приглашение, но на правой стороне:

например. с set rprompt = "% ~" :

% cd /usr/local/bin/                                       ~
% echo Hello                                               /usr/local/bin
Hello
%                                                          /usr/local/bin

Вы также можете использовать здесь свой псевдоним - все, что работает для приглашения , должно работать для rprompt .

Я не знаю, удовлетворяет ли это ваши «потребности проекта», которые не позволяют вам изменять обычное приглашение, но, возможно, это вариант.

0
27.01.2020, 23:16

Теги

Похожие вопросы