ubuntuの小技

最近は、apt-getではなくて、aptなのね。Debian管理者ハンドブックによると、もっとも推奨されるのはaptとのことだ。
でも、apt list –installedとかすると、apt does not have a stabel CLI interfaceと警告が出る。
# apt update
# apt upgrade
# apt autoremove
# apt autoclean
リリースの表示は、/etc/lsb-releaseを見てもよい。
ハイフンとアンダーバーがややこしい。
# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial
# cat /etc/debian_version
stretch/sid
# apt install nginx
# ufw app list
# systemctl start nginx
# systemctl status nginx
再インストール
# apt install nginx –reinstall
インストール済みパッケージの確認
# apt list –installed | grep -i nginx

再インストールで設定ファイルも含めて初期化するためには、パッケージをpurgeしておく必要があるが、autoremoveでもpurgeしておかないといけない。
# apt purge asterisk
# apt autoremove –purge
# apt install asterisk

タイムゾーンの変更
# dpkg-reconfigure tzdata

DNSサーバの問い合わせ、hostやdigを使うため。
Arch linuxなら、bind-toolsなのだが。
# apt install dnsutils
ドメインの情報には、whoisの方が便利。

ハイフンで始まるファイル名の削除
# rm -i — -bad_name

Arch Linux MBR+BIOS編

ARCHを久々にインストール。今回は、MBRのパーティションにセットアップ。
インストールガイドどおりで問題ないのだが、ブートローダーにsyslinuxを使用したので、嵌ってしまった。
ISOをダウンロードしたら、DDWinでUSBに書込み。
USBから起動したら、インストールするパーティションを、”fdisk -l”で確認したら、ext4でフォーマット。
mkfs.ext4 -O \^64bin /dev/sdxx
ここで、64bitオプションを無効にしておかないと、syslinuxの起動の時に、”Failed to load ldlinux.c32″でエラー終了する。
あとは簡単。
“wifi-menu”で無線LANに接続したら、”ping www.yahoo.com”でインターネットアクセスを確認。
mount /dev/sdxx /mnt
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
“vi /etc/locale.gen”で、en_US.UTF-8とja_JP.UTF-8をコメントアウトして
locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
# echo hname > /etc/hostname,再起動時のホスト名を設定。
# hostname hname; 現在のホスト名を変更。
vi /etc/hosts
pacman -S syslinux
syslinux-install_update -ima
vi /boot/syslinux/syslinux.cfg
wifi-menuのために、”pacman -S dialog wpa_supplicant”を導入しておく。
exit
reboot
wifi-menuで無線LANに接続したら、次回から自動化のために
pacman -S wpa_actiondを導入。
ip linkでポートの確認
systemctl enable netctl-auto@wlp3s0でセット。
vi /etc/pacman.confで,Colorのコメントを外すと表示がわかりやすい。
その他、pacman -S pkgfileを導入して、pkgfile -uで更新。
その後、pkgfile arch-chrootで検索して、pacman -S arh-install-scriptsをレスキュー用に導入しておく。
pacman -S sudoも入れたら、visudoで、%wheel ALL=(ALL) ALLを追加(コメントアウト)。
useradd -m -G wheel xxxで常用アカウントを追加するが,固有のグループを作らないときは,-g wheel。
# gpasswd -a user group //後から追加する場合
pacman -S bind-toolsで,digとhostをインストール。

syslinuxは昔から慣れていたのだが,どうも最近は更新がない様子。

bashのスタートアップ

起動が、ログインシェルであるかどうか、インタラクティブであるかどうかによって、設定ファイルの読み込みが違う。

インタラクティブでないときは、$BASH_ENVのファイルが読み込まれる。

ログインシェルであれば、1)と2)が呼び出されるが、2)はいずれかひとつで、Archは、~/.bash_profileを使用している。
1)と2)のスクリプトから1s)と2s)が、呼び出されているが、インタラクティブでないときは、実行されない。
1) /etc/profile
1s) /etc/bash.bashrc
2) ~/.bash_profile, ~/.bash_login, ~/.profile
2s) ~/.bashrc

ログインシェルでなく、インタラクティブなときは、以下の順で直接呼び出される。
/etc/bash.bashrc
~/.bashrc

sudo -iのとき、/root に.bash_profileがないので、/root/.bashrcがあっても呼び出されないが、sudo -sの場合、/root/.bashrcが呼び出される。
雛形は、/etc/skel/にある。

スーパーユーザ

rootでの操作は便利だが、危険でもあるとのこと。
suよりsudoを使うのが世の流れ。
suはrootのpasswordで起動するが、sudoはユーザのpasswordで起動する。
また、sudoはvisudoで/etc/sudoersを編集して、使用者などの権限を決めておく必要がある。とりあえず、rootの行をコピーして、標準ユーザに全権を与えておく。
$ sudo -i ; rootに成れる。
$ sudo -s ; 現在のユーザの環境のままrootに成れる。
-sの方が常用環境が使えるので便利。