- 投稿日:2020-03-10T23:58:13+09:00
【Linuxコマンド】exportコマンド|環境変数やシェル変数を設定する
この記事では、《exportコマンド》について、
業務を通して学習した内容をまとめています。
- exportコマンド とは…?
- exportコマンド の使い方
こういった内容についてまとめています。
※本記事は、自分で学習したことのまとめ用として書いています。
尚、解説で誤った点があれば、スローして頂ければ喜んでキャッチしますのでお願い致します。【概要】 exportコマンド とは…?
exportコマンドは、環境変数やシェル変数を設定するコマンドで、以下の2つの使い方があります。
- 『シェル変数』を『環境変数』に設定する
- 指定した『環境変数』を削除する
Linux環境で使用する変数には、シェルからのみ参照できる…
『シェル変数』
と他のコマンドやプログラムからも参照できる…
『環境変数』
があります。
exportコマンド の使い方
exportコマンドの書式は、以下の通りです。export [オプション] [変数名]
オプション 説明 -n 指定した環境変数を削除する。 -p エクスポートされている環境変数のリストを表示する。 それでは、先ほど紹介した2つの使い方の例題を見ていきましょう。
- 『シェル変数』を『環境変数』に設定する
- 指定した『環境変数』を削除する
使い方①: 『シェル変数』 を 『環境変数』に設定する
export [変数名]例えば・・・
- シェル変数:
greeting="Hello World"の場合は、下記のようになります。
--- 例題 ---
#!/bin/bash greeting="Hello World" export greeting--- 実行結果 ---
シェルを実行したら、実際に環境変数
greetingが登録されているか、確認してみましょう。確認するには、
printenvコマンドを使用します。設定されている環境変数の一覧が表示されてしまうため…
grepコマンドと組み合わせて変数名を指定すると便利です。$ . sample.sh $ printenv | grep greeting greeting=Hello World
使い方②: 指定した『環境変数』を削除する
『環境変数』を削除する場合は、
-nオプションを使用します。export -n [変数名]例えば・・・
先ほど設定した環境変数の
greetingを削除する場合は、下記のようになります。--- 例題 ---
sample.sh#!/bin/bash export -n greeting--- 実行結果 ---
$ . sample.sh $ printenv | grep greeting # 何も表示されない
- 投稿日:2020-03-10T21:12:32+09:00
Vue CLIのバージョンが上らず困った件
概要
vue create を実行するために、Vue CLIのバージョンをあげようとしたらすごく初歩的なミスで躓いたので、同じようなミスをしてしまった人のためにメモしておきます。
vue create したい
nakanohatonoMBP:~ hayato$ vue create vue-chatkit vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You may want to run the following to upgrade to Vue CLI 3: npm uninstall -g vue-cli npm install -g @vue/cliVue CLIのバージョンが古い。3以上じゃないとダメらしい。
@vue/cli の更新(再インストール)
言われた通り、
"npm uninstall -g vue-cli" と "npm install -g @vue/cli" を実行。nakanohatonoMBP:~ hayato$ npm uninstall -g vue-cli up to date in 0.062snakanohatonoMBP:~ hayato$ npm install -g @vue/cli npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3. /Users/hayato/.nodebrew/current/bin/vue -> /Users/hayato/.nodebrew/current/lib/node_modules/@vue/cli/bin/vue.js > fsevents@1.2.11 install /Users/hayato/.nodebrew/current/lib/node_modules/@vue/cli/node_modules/fsevents > node-gyp rebuild No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'. No receipt for 'com.apple.pkg.DeveloperToolsCLILeo' found at '/'. No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'. gyp: No Xcode or CLT version detected! gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (/Users/hayato/.nodebrew/node/v13.3.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16) gyp ERR! stack at ChildProcess.emit (events.js:219:5) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:274:12) gyp ERR! System Darwin 19.0.0 gyp ERR! command "/Users/hayato/.nodebrew/node/v13.3.0/bin/node" "/Users/hayato/.nodebrew/node/v13.3.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /Users/hayato/.nodebrew/node/v13.3.0/lib/node_modules/@vue/cli/node_modules/fsevents gyp ERR! node -v v13.3.0 gyp ERR! node-gyp -v v5.0.7 gyp ERR! not ok npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 (node_modules/@vue/cli/node_modules/fsevents): npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 install: `node-gyp rebuild` npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 + @vue/cli@4.2.3 updated 1 package in 35.557sVue CLIのバージョンが上がったっぽい!
Vueのバージョン確認
nakano-hayatonoMacBook-Pro:~ hayato$ vue --version 2.9.6変わってない。。
install時のログを再確認してみる
/Users/hayato/.nodebrew/current/bin/vue -> /Users/hayato/.nodebrew/current/lib/node_modules/@vue/cli/bin/vue.jsVueのいるパスが変わってるっぽい。
環境変数(.bash_profile)に新しいVueのいるパスを追加
"export PATH=~/.nodebrew/current/lib/node_modules/@vue/cli/bin" を追加。
nakanohatonoMBP:~ hayato$ vi .bash_profile nakanohatonoMBP:~ hayato$ cat .bash_profile export PATH=~/.rbenv/shims:/usr/local/bin:$PATH eval "$(rbenv init -)" export PATH=/usr/local/opt/mysql@5.6/bin:$PATH export PATH=~/.nodebrew/current/lib/node_modules/@vue/cli/bin export PATH=$HOME/.nodebrew/current/bin:$PATH export PATH=~/.nodebrew/current/bin:$PATH export PATH=$HOME/.pyenv/shims:$PATH nakanohatonoMBP:~ hayato$ source .bash_profilenakano-hayatonoMacBook-Pro:~ hayato$ vue --version @vue/cli 4.2.3Vueのバージョンが上がった!が・・・
linuxコマンドが使えなくなる・・・
nakanohatonoMBP:~ hayato$ ls -bash: ls: command not found nakanohatonoMBP:~ hayato$ which -bash: which: command not found.bash_profileを再確認してみる
Finderで環境変数を確認 → :PATH$の記述が足りなかった
追加した "export PATH=~/.nodebrew/current/lib/node_modules/@vue/cli/bin" の末尾に":PATH$"の記述が足りなかった・・・
そのため、追加パスがPATHに代入される以前に代入されていたパスたちが、追加パスで上書きされてしまっていた。
"export PATH=~/.nodebrew/current/lib/node_modules/@vue/cli/bin" の末尾に":PATH$"の記述を追加。sourceコマンドが使えない → ターミナルをあげなおせばOK
まだlinuxコマンドが使える状態じゃないのでsourceコマンドが使えず、環境変数の反映ができずにパニック。
nakano-hayatonoMacBook-Pro:vue_app hayato$ source ~/.bash_profile env: bash: No such file or directory→先輩にターミナルの再起動で反映されることを教えてもらい救われる。
無事にlinuxコマンド復活。
vue createも使えるようになった。
環境変数について理解するいい機会になった。
- 投稿日:2020-03-10T18:06:20+09:00
全ユーザのcronを綺麗に表示するワンライナー
いつも https://qiita.com/ironsand/items/fb05869080f6ed724816 にお世話になってました(ありがとうございます)
ユーザが多いと
no crontabなユーザが多くて見難かったので、見やすく表示できるようにしました。for user in $(cut -f1 -d: /etc/passwd); do echo -n :kaigyo1:[${user}]:kaigyo2:;\ crontab -u $user -l 2>&1 ; done | grep -v "no crontab" | sed s/:kaigyo1:/\\n\\n/ \ | sed s/:kaigyo2:/\\n/
rootユーザ限定です。出力イメージ
[root@myserver ~]# for user in $(cut -f1 -d: /etc/passwd); do echo -n :kaigyo1:[${user}]:kaigyo2:; crontab -u $user -l 2>&1 ; done | grep -v "no crontab" | sed s/:kaigyo1:/\\n\\n/ | sed s/:kaigyo2:/\\n/ [a_san] #Ansible: kirei ni suru 0 6 * * * /bin/bash /home/a_san/hamigaki.sh >> /tmp/hamigaki.log #Ansible: energy hokyu 10 6 * * * /bin/bash /home/a_san/asa_gohan.sh >> /tmp/asa_gohan.log [c_san] #Ansible: miharasi ii 1 10 * * 0 /usr/bin/yamanobori --config /etc/yamanobori.yml /etc/yamanobori_action_file.yml(b_sanは no crontab なイメージ)
- 投稿日:2020-03-10T13:43:38+09:00
Docker on Linux でホストPCのホスト名を取得する
ブリッジネットワーク使用時、Windows, Macでは、コンテナ内から
host.docker.internalが解決でき、それでホストPCと繋げられるそうです。が、なぜかLinuxでは、20200310現在、その機能がありません。そのうちできるようになりそうな気配はありますが・・・。
それまでは、この方法で、コンテナ立ち上げ時にホストIPを渡せば良いみたいです。
docker run -it --add-host=host.docker.internal:$(ip route | grep docker0 | awk '{print $9}') debian bash
- 投稿日:2020-03-10T13:13:33+09:00
WSLでemacsを使うまでメモ
はじめに
emacs入門中なので会社のパソコンでもemacsでちょこっと遊べたらいいなと思い、軽くやり方調べたのでまとめます。
windows10前提です。WSLの有効化
コントロールパネル
↓
プログラムと機能
↓
Windowsの機能の有効化または無効化
↓
Windows Subsystem for Linuxにチェック
↓
OK。再起動したら有効になる旨のメッセージが出るので再起動。linux の選択
Microsoft Store開く
↓
wslで検索
↓
いくつかのディストリビューションが選べるので選択して入手。ubuntu,debian,openSUSE,kali,centosなどがあるみたいです。
centosは有料(といってもたったの230円ですが)
私はなんとなくdebianにしました。設定1
linuxのコンソールが起動するとusernameとpasswordの設定だけ求められたので入力。
このへんはディストリビューションによって異なるのかも。設定2
社内でプロキシサーバーがある場合その設定も必要です。(aptでエラーがでるので)
export http_proxy="http://username:passwd@proxyserver:port" export https_proxy="http://username:passwd@proxyserver:port"ちなみにこのときユーザー名やパスワードに記号が入っている場合%エンコードにしておく必要があります。
emacsをインストール
sudo -E apt update sudo -E apt install emacsさきほど設定した環境変数をsudoでも使うように-Eオプションをつけています。
とりあえずこれで使えるとこまで。以上。
- 投稿日:2020-03-10T11:18:16+09:00
Athlon 200GE(AMD)でDebian(Linux) & LXQtを動かす
はじめに
Athlon 200GEでPCを組み、Debianをインストールしてみるとデスクトップ環境が起動しませんでした。
色々調べて動かすことができたので、その方法を書いておきます。環境
CPU: AMD Athlon 200GE
GPU: Raedon Vega 3(CPU内蔵)
マザーボード: ASUS PRIME B450M-A
OS: Debian 10.3
デスクトップ環境: LXQt準備
- DebianをインストールするためのUSBメモリを用意します。
- Radeon™ Software for Linux® 19.50 Release Notes - AMDの「Radeon™ Software for Linux® version 19.50 for Ubuntu 18.04.3」からドライバ「amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz」をダウンロードし、USBメモリに入れておきます。
作業
- 先ずは普通にDebianをインストールします。
- インストールが終わって再起動すると、デスクトップ環境が起動せず、黒い背景に白い文字のコンソール画面が表示されます。
- コンソール画面が表示されない場合は、Ctrl+Alt+F2などで表示されるはずです。
- ログインして、ドライバの入ったUSBメモリを挿します。
- スーパーユーザに切り替えて(sudoでも良し)、/mntにマウントします。
- ホームディレクトリにでも中身をコピーしておきます。
- 「amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz」を解凍します。
username@debian:~$ tar -xf amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz
- 生成されたディレクトリに入り、スーパーユーザ(sudoでもOK)で次のコマンドを実行し、インストールします。
root@debian:/home/username# cd amdgpu-pro-19.50-967956-ubuntu-18.04 root@debian:/home/username/amdgpu-pro-19.50-967956-ubuntu-18.04# apt install ./amdgpu-core_19.50-967956_all.deb ./amdgpu-dkms_19.50-967956_all.deb
- 結構時間がかかりますが、インストールが終われば完了です。/mntをアンマウントして再起動します。
おわり
以上の方法でデスクトップ環境が起動できるようになりました。
この解決法に辿り着くのに時間がかかってしまいましたが、わかってしまえば面倒くさいだけで簡単な作業でした。参考文献
How to install official AMDGPU linux driver with kernel 4.19.x on Stretch and Buster
- 投稿日:2020-03-10T00:05:49+09:00
linuxで使う状態確認コマンド
作成や更新系は省き、業務で使っているlinuxの状態確認系のコマンドをまとめています。
osを確認uname uname -a # カーネル、リリース日など他の詳細も表示するフルパスを確認readlink -f ファイル名tarファイルの中身を(解凍せずに)確認するtar -tf ファイル名zipファイルの中身を(解凍せずに)確認するzipinfo ファイル名現在ログインしているユーザーを確認users所属グループを確認groups設定されているcronを確認するcrontab -eグローバルIPを確認curl ifconfig.me

