neo3016.log

好きなことをまとめた備忘録的なそれ。

Linuxのメモ。

忘れそうなことをメモしていくスタイル

☆シバンの書き方

sudo which python3 ←フルパスを調べたいときに使う。
sudo which bash
#!/bin/sh

cat ./test.sh
#! /usr/bin/bash
sl

https://qiita.com/Nick_paper/items/b9655e02721a583f29b5
https://qiita.com/jkr_2255/items/84366f677be3365331cd

☆chroniumのエラー対処

https://wisdomtrees.net/?p=879

☆ファイル名を変更したい

sudo mv index.html index2.html

☆困ったときのwhich 実行コマンドをフルパスで表示

which sl

☆困ったときのrasp-config

sudo raspi-config

FTPサーバを導入

sudo apt update
sudo apt install vsftpd
☆☆再起動 ←これ大事!!!
sudo systemctl restart vsftpd

☆☆アップロード先のパーミッション
sudo chmod o+w 転送先のディレクト
☆☆ write_enableをコメントアウトを除く
/etc/vsftpd.conf を編集

☆仮想端末を導入

sudo apt install tmux

☆☆仮想端末での操作
tmux → 仮想端末起動
Ctrl + b → Shift + 5 :縦分割
Ctrl + b → Shift + 2 :横分割
Ctrl + b →十字キー  :操作コンソール選択
Ctrl + b → d :仮想端末から切断
tmux a → 仮想端末に再接続
tmux ls → 仮想端末一覧を表示
tmux kill-session * → *のセッションを削除
Ctrl + d → 仮想端末から完全に切断(セッションなし)

vim操作

文字列の検索:ノーマルモードで/検索したい文字列
文字列のコピー:コマンドモードでvを押してビジュアルモードへ
十字キーでコピーしたい箇所を選択後yでコピー、pで貼り付け。

アスキーアート文字の導入

sudo apt update
sudo apt install figlet

☆ログインバナーを作成する

ホームディレクトリにて
vim .bash_profile で.bash_profile を作成する。
パーミッションの変更は不要。

☆chmodの操作

chmod +x test.sh → すべてのユーザに実行権限を与える。

  • rw-r--r-- → -rwxr-xr-x

chmod -x test.sh → すべてのユーザに実行権限を取り除く

  • rwxr-xr-x → -rw-r--r--

u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限

  1. 後に記述した権限を付加する
  • 後に記述した権限を削除する

= 後に記述した権限にする

r 読み込み権限
w 書き込み権限
x 実行権限

s セットID
t スティッキ・ビット
(スティッキービットとは、UNIX系OSファイルシステムで設定される特殊なアクセス権の一つで、
ファイルやディレクトリの所有者とスーパーユーザー(rootユーザー)以外、ファイルの改名や削除をできないようにするもの。
多くのシステムではディレクトリにのみ設定できる。)

MariaDBのインストール

sudo apt -y install mariadb-server

mariaDBの基本操作
https://knt60345blog.com/mysql/
※rootのパスワードを予め変更して、rootユーザーで実行する。
sudo passwd root
su root

root :mysql -u root -p

mariaDBコンソール:create database neo3016db; (neo3016DBを作成する。)
mariaDBコンソール:use neo3016db; (neo3016DBを選択する。)

mariaDBコンソール:CREATE TABLE fruits_table (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,fruits VARCHAR(32),value INT); (フルーツテーブルの作成)
mariaDBコンソール:INSERT INTO fruits_table (fruits, value) VALUES ("apple", 100); (フルーツテーブルにappleレコードを追加する。)
mariaDBコンソール:SELECT * FROM fruits_table; (すべてのカラム(*)をフルーツテーブルを表示する。)
mariaDBコンソール:SELECT id,fruits,value FROM fruits_table; (すべてのカラム(*)をフルーツテーブルを表示する。) ※上と同じSQL

root権限にアクセス権を付与する。
https://qiita.com/yummy888/items/25621bc1451f218e010a

☆Webサーバ(Apache2)のインストール

sudo apt -y install apache2
☆☆Webサーバの再起動
sudo systemctl restart apache2

https://pentan.info/server/pdo_could_not_find_driver.html
https://www.delftstack.com/ja/howto/linux/how-to-start-stop-and-restart-apache-web-server-in-linux/#:~:text=Apache%20%E3%82%A6%E3%82%A7%E3%83%96%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7%E3%81%AF%E3%80%81%E8%B5%B7%E5%8B%95,%E7%94%A8%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82

☆☆index.htmlのありか
/var/www/htmlの内部
index.htmlのパーミッションは、sudo chmod o+r
画像とかあったのなら、どうようにパーミッションの設定をすること。sudo chmod o+r
sudo chmod o+r でおk

PHPのインストール

https://pentan.info/server/pdo_could_not_find_driver.html
sudo apt -y install php-mysql

☆☆PHPの本体もインストール
sudo apt install php


☆☆DBを参照するPHP
https://www.javadrive.jp/xampp/mysql/index6.html
query($sql) as $row) {
print($row['id'].',');
print($row['fruits']);
print($row['value']);
print('
');
}
}catch (PDOException $e){
print('Error:'.$e->getMessage());
die();
}

$dbh = null;
?>

☆☆Access denied for user 'root'@'localhost'の対処
https://qiita.com/yummy888/items/25621bc1451f218e010a

rootユーザで実行 :mysql -u root -p
mariaDBコンソール: use mysql;
mariaDBコンソール: truncate table user; ( テーブル内のデータ全て削除)
mariaDBコンソール: flush privileges;  ( テーブルを再ロード)
mariaDBコンソール: create user 'ユーザー名' identified by 'パスワード'; (ユーザー作成 & パスワード設定)
mariaDBコンソール: grant all privileges on *.* to 'root';  (GRANT OPTION を除き、指定されたアクセスレベルにあるすべての権限を付与します。)
mariaDBコンソール: flush privileges; ( テーブルを再ロード)

python のpip でシンタックスエラーを吐く

律儀にptyhonでプロンプトを>>>にした状態でpip installで発生する。
通常のlinuxのターミナルでpip install で問題なし

☆ttyUSB*の番号を調べる。

USBシリアルケーブルをLinuxマシンにUSB接続したらdmesgコマンドを実行してください。 一番最後の行で「ttyUSB0」としてデバイスファイルが認識された事がわかります。

☆強制的にディレクトリを削除する。

 sudo rm -Rf "ディレクトリ名"
強制的にディレクトリを削除する。

☆強制的にディレクトリを削除する。

 sudo rm -Rf Android-cliant--Python-server-/

☆vsftpd (FTPサーバの起動)

 sudo service vsftpd start

ubuntu@open-ssh-server の再起動

 sudo /etc/init.d/ssh restart

☆定期的にコマンド(≠シェル)を実行したい。

 while ture ; do sudo python3 ./※※.py ; date ; sleep 300 ; done
 ※; 実行したいコマンド ; でおk

環境変数を確認したい

printenv

追記パート

パーミッションごと、ファイルをコピーする。

cp -p

ユーザの確認

sudo cat /etc/passwd

プロセスの確認

sudo ps aux | grep "確認したいプロセス"

プロセスの停止

プロセスIDをしているのが一般的っぽいが、pkillのほうが簡単だった←
sudo pkill "停止したいプロセス 例:sshd / apache2 /vsftpd…"

プロセスの確認(現在実行中のプロセスをCPU利用率が高い順に表示)

sudo top

ログの確認

sudo cat /var/log/syslog or sudo cat /var/log/auth.log
          (長すぎるので↓)
sudo tail /var/log/syslog or sudo tail /var/log/auth.log
※ tail -f は、ァイルの追記を監視するため、待機する。とのこと。

誰がログインしているか確認

sudo who
※ 一般的にssh,telnetなどで接続されたらpts RS232Cからのログインはtty*とのこと。

Ssystemctlについて

systemctl [オプション] 命令 [サービス名]

start サービスの開始
stop サービスの停止
restart サービスの再起動
reload サービスの再読み込み
status サービスの状態表示
enable サービスの自動起動オン
is-enable サービスの自動起動確認
disable サービスの自動起動オフ
daemon-reload 設定ファイルの再読み込み

serviceの登録

sudo cd /etc/systemd/system (systemのディレクトリに移動)
sudo vim ./lampp_start.service (serviceファイルの作成)

投入例:

[Service]
ExecStart=/opt/lampp/lampp start
Type=forking

[Install]
WantedBy=multi-user.target

sudo systemctl enable lampp_start.service (enable=起動時に指定されたサービスを起動するように)

sudo systemctl status lampp_start.service (サービスのステータスが確認できる=failだと失敗している
                   runningだとおけ。)
sudo systemctl restart lampp_start.service (サービスの再起動)

sshでrootによるログインを許可する。


とりま、rootのパスワードを設定しておく。


sudo vim /etc/ssh/sshd_config で設定を変更する
PermitRootLogin yes を追記する。

sudo systemctl restart sshd.service でsshのサービスを再起動する。
sudo systemctl status sshd.service でsshのサービスの状況を一応確認しておく。

USBをマウントする。

USBを指す前にデバイスの確認
ls /dev/sd*
USBを刺した後にデバイスの確認
ls /dev/sd*
表示内容に差異が起こるので、sdaXの値を確認しておく。

いざ、マウントしる。
mount -t vfat /dev/sda[先ほど調べた値] /media

アンマウント(未確認)
umount -t vfat /dev/sda[先ほど調べた値] /media

リンクを作る。(シンボリックリンク、ハードリンク)

$ ln -s /var/xxx yyy  
(-s オプションは、シンボリックリンクを作成する意)
※オプション無は、ハードリンクでリンクを作成する。

シンボリックリンクwindowsのショートカットと同じ働き
ハードリンク:ファイル・ディレクトリに別名を追加する。(本名A,別名B的なイメージ)
ちな、別名Bが設定されている場合、本名Aを指定して削除をしても別名が生きているので、ファイル参照・編集が可能。

画面のコマンドをいったんクリアする。

単純にclear でおk

Xlampp関連

XLAMPPインストール後、htmlなどを置くディレクトリは以下の通り。

/opt/lampp/htdocs/

Ubuntuのバージョン確認方法

cat /etc/os-release

LXCなどのIPアドレスCLIで変更したい

※netplanの設定ファイルの作成
vim /etc/netplan/99-config.yaml

※設定ファイルの中身、ひな形として利用
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
addresses:
- 192.168.0.16/24
routes:
- to: default
via: 192.168.0.254
nameservers:
search: []
addresses: [192.168.0.254]
~

※netplanの設定変更を反映させる。
netplan apply

ユーザを作成する(ubuntu

sudo adduser test (ユーザ名)

ユーザをsudoグループに追加する

sudo usermod -G sudo test(ユーザ名)

sudo権限付与

gpasswd -a test(ユーザ名) sudo

グループにユーザーが所属しているか確認する(ubuntu

※sudoグループに所属しているユーザの確認
getent group sudo

ユーザを削除する

sudo userdel test(ユーザ名)
ホームディレクトリも削除する場合は、-r オプションを設定する。

アカウントのデフォルトログインシェルを /bin/bash に変更

usermod -s /bin/bash test(ユーザ名)

linuxのバージョン確認

cat /etc/os-release



参考文献
qiita.com