- 投稿日:2020-02-26T23:46:05+09:00
Android でも Android アプリを開発したい(デバッグ編)
はじめに
Android でも Android アプリを開発したいの続きです。
デバッグを行うためのツール、adb のインストールから実際に Android Studio を使ってデバッガを起動するところまでを記載します。注意点
PCが一台必要です。Android 単体では実施できません。
今回は Windows を使った手順を紹介します。Android はWifiでルータ等に繋がっている必要があります。
Ubuntu の画面表示には XSDL を使用している前提で記載しています。
SDK Platform Tools のダウンロード
Windows で以下のサイトを開いて、SDK Platform Tools をダウンロードして解凍して下さい。
https://developer.android.com/studio/releases/platform-tools.html
解凍すると platform-tools フォルダに adb.exe ファイルがあるはずです。
後で adb.exe を使用します。USBドライバのインストール
Windows に USB ドライバをインストールします。
後で Windows と Android 端末を USB ケーブルで接続しますが、
Windows から Android 端末を認識するために USB ドライバを使用します。
Android 端末を開発している会社ごとにドライバーが異なるため手順を書ききれません。
丸投げになりますが、以下のサイトを参考にインストールしてください。https://developer.android.com/studio/run/oem-usb
USB デバッグの有効化をオンにする
Android 端末で開発者向けオプションをオンにしてから、USB デバッグの有効化をオンにします。
有効化するとデバッグモードで動作し、プログラムの途中で停止したりできるようになります。
Android 端末ごとに手順が違うので、書ききれないため以下のサイトを参考にして下さい。https://developer.android.com/studio/debug/dev-options
Ubuntu に adb のインストール
Android 端末で UserLAnd または Termux の Ubuntu を立ち上げて LXTerminal 等から以下のコマンドを実行して adb をインストールして下さい。
# adb を Ubuntu にインストール(Termux の場合は sudo は不要です。UserLAnd の場合は sudo が必要です。) sudo apt install -y adb # adb をコピーして Android Studio から使えるようにする cp /usr/bin/adb ~/Android/Sdk/platform-tools/Android 端末をWifi経由でデバッグできるようにする
USB ケーブルで Windows と Android を接続して下さい。
ダイアログが出るのでOKボタンを押して下さい。Windows マークを右クリックして「ファイル名を指定して実行」を選択してください。
名前 の入力欄に cmd と入力し Enter キーを押してコマンドプロンプトを立ち上げてください。以下のように adb コマンドのある platform-tools ディレクトリまで cd コマンドで移動し、adb を使用して Android 端末にWifi経由で接続できるようにしてください。
# D:\platform-tools_r29.0.6-windows\ に platform-tools がある場合。ご自分の指定した解凍先に合わせて適宜読み替えて下さい。 cd D:\platform-tools_r29.0.6-windows\platform-tools # Android 端末をWifi経由で接続できるように設定する adb tcpip 5555adb を実行し「restarting in TCP mode port: 5555」と出たら USB ケーブルを外して下さい。
ここで行った設定は Android を再起動するまで有効になります。デバッガの実行
Ubuntu のデスクトップ環境を立ち上げ、それから Android Studio を立ち上げます。
(もし既に Android Studio を立ち上げてあった場合には一旦、終了してから立ち上げ直して下さい。)
メニューの下のコンボボックスの中に Android 端末名が出ていたら成功です。デバッグが可能な状態になっています。実際にデバッガを試してみましょう。
まず適当にプロジェクトを生成したら、MainActivity.java を開いて下さい。
onCreate メソッドが見えるはずです。
メソッド内の1行目、super.onCreate~ と書かれている行、の左側の行番号の書かれている箇所の右側をクリックして下さい。丸が付いたでしょうか。この丸の位置で実行中のプログラムを一時停止しします。続いてメニュー下の Android 端末名の4つ程右側のボタンに虫のような形をしたものがあります。その虫ボタンを押して下さい。
しばらく待つと、アプリが立ち上がり、Waiting For Debugger と出ます。
この時に Force Close は押さないで下さい。Android の通知領域を開いて XServer XSDL is running をクリックします。(右側の Stop は触れないように気をつけて下さい)
Android Studio に戻り、しばらく待っていると Waiting For Debugger が自動的に消えてデバッグを開始します。
先程、丸を付けた行で停止しているはずです。以上でデバッグを行うことが出来るようになります。
エミュレータが不要なのは利点と言えるかもしれません。
- 投稿日:2020-02-26T22:53:56+09:00
仮想ブリッジの作成方法
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [root@localhost ~]# rpm -ivh openvswitch-2.11.0-3.el7.x86_64.rpm 準備しています... ################################# [100%] 更新中 / インストール中... 1:openvswitch-1:2.11.0-3.el7 ################################# [100%] [root@localhost ~]# [root@localhost ~]# systemctl start openvswitch [root@localhost ~]# systemctl status openvswitch ● openvswitch.service - Open vSwitch Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; disabled; vendor preset: disabled) Active: active (exited) since 水 2020-02-26 22:19:37 JST; 4s ago Process: 2347 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 2347 (code=exited, status=0/SUCCESS) 2月 26 22:19:37 localhost.localdomain systemd[1]: Starting Open vSwitch... 2月 26 22:19:37 localhost.localdomain systemd[1]: Started Open vSwitch. [root@localhost ~]# [root@localhost ~]# ovs-vsctl add-br ovs1 [root@localhost ~]# [root@localhost ~]# ovs-vsctl add-port ovs1 enp0s3 # ovs-vsctl show [root@localhost ~]# ovs-vsctl show 0392cade-478d-4802-a4a3-190227e098d4 Bridge "ovs1" Port "ovs1" Interface "ovs1" type: internal Port "enp0s3" Interface "enp0s3" ovs_version: "2.11.0"
- 投稿日:2020-02-26T21:43:08+09:00
検証環境にてnpm scriptが通らずハマったのでメモ
したかったこと
リリース済みで本番稼働しているprojectの検証環境にフロント環境を整えたかった。
やったこと
- 検証環境に入りgit clone
- ローカルと同じように
npm run dev
起きたこと
sh: next: コマンドが見つかりません
とりあえずエラー文を読んでみました。
(リポジトリー名をhogeに変えてます)$ npm run dev sh: next: コマンドが見つかりません npm ERR! Linux 3.10.0-862.11.6.el7.x86_64 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "dev" npm ERR! node v6.16.0 npm ERR! npm v3.10.10 npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! hoge@1.0.0 dev: `next -p 8080` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the hoge@1.0.0 dev script 'next -p 8080'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the hoge package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! next -p 8080 npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs hoge npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls hoge npm ERR! There is likely additional logging output above. npm WARN Local package.json exists, but node_modules missing, did you mean to install? npm ERR! Please include the following file with any support request: npm ERR! /var/www/apps/hoge/npm-debug.log
Local package.json exists, but node_modules missing, did you mean to install?
package.jsonはあるけど、node_modulesがない、インストールしないのか?みたいなことを言われてるのでnode_modulesを用意します。
(node_modulesはignoreしてるからそりゃそうですw)node_moduleの用意
npm install
念のため
node -v
でversion確認しときます$ node -v v6.16.0入っていることが確認できたので、再度
npm run dev
(一番最初に、npm run dev
を実行したときはnpm install
をする前なので、動かなくて当たり前でしたw)さっきのエラーは消えましたが
$ npm run dev npm ERR! Linux 3.10.0-862.11.6.el7.x86_64 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "dev" npm ERR! node v6.16.0 npm ERR! npm v3.10.10 npm ERR! code ELIFECYCLE npm ERR! hoge@1.0.0 dev: `next -p 8080` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the hoge@1.0.0 dev script 'next -p 8080'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the hoge package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! next -p 8080 npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs hoge npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls hoge npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /var/www/apps/hoge/npm-debug.log
Failed at the hoge@1.0.0 dev script 'next -p 8080'.
scriptが失敗してると言われますローカル環境では動くが、テストサーバーやステージングサーバーでは動かない
調べていたら同じような状況の時にすべきことが載っている素晴らしいところにたどり着いたので
一つ一つ試してみました。ログのエラー確認
先ほどのエラーに
Please include the following file with any support request:/var/www/apps/hoge/npm-debug.log
とあったので
$ vi npm-debug.log
で確認します
(error以降のみ表示してます)[追記]
記事公開後にlogの確認は、一般的にはcat or less or tailのほうが良いと思いますと指摘をいただきました!
logの確認をエディタなどで開いてしまうと、改変や削除の危険があり危険だということみたいです。
詳しくはこちらを運用や調査でログを確認するときによく使うコマンド集(2020.02.27)17 error Linux 3.10.0-862.11.6.el7.x86_64 18 error argv "/usr/bin/node" "/usr/bin/npm" "run" "dev" 19 error node v6.16.0 20 error npm v3.10.10 21 error code ELIFECYCLE 22 error hoge@1.0.0 dev: `next -p 8080` 22 error Exit status 1 23 error Failed at the hoge@1.0.0 dev script 'next -p 8080'. 23 error Make sure you have the latest version of node.js and npm installed. 23 error If you do, this is most likely a problem with the hoge package, 23 error not with npm itself. 23 error Tell the author that this fails on your system: 23 error next -p 8080 23 error You can get information on how to open an issue for this project with: 23 error npm bugs hoge 23 error Or if that isn't available, you can get their info via: 23 error npm owner ls hoge 23 error There is likely additional logging output above.先ほどのエラー文とほぼ同じですね。
追加したパッケージがpackage.jsonに記載されているか
ローカルと検証環境それぞれで
$ vi package.json
で出力しみましたが特に問題なかったです。本番で必要なパッケージがdevDependenciesに書かれていないか
こちらも確認しましたが問題なかったです。
nodeとnpmのバージョンが同じかどうか
とりあえずversion確認
$ npm -v 3.10.10 $ node -v v6.16.0怪しいのと、かなり古いのもあったので、とりあえずローカルに合わせるために
$ nodebrew use v10.15.3
(nodeのversionに合わせてnpmのversionも上がるので強制的に同じversionになります)[追記]
記事公開後、ローカルの環境に合わせるのは悪で、検証環境にローカルの環境を合わせる方がいいと指摘をいただきました。
もし、検証環境のversionを変更するなら「検証環境version upタスク」を作り慎重にやる方が良さそうです!
そして既にリリース済みの場合は、本番環境を元に環境構築を行うのが大前提のようです。(2020.02.27)-bash: nodebrew: コマンドが見つかりません
nodebrewが入ってないということなので、入れます。
nodebrewのinstall
nodebrewの公式の通りにやってみます。
詳しくはこちら
(.bash_profileの部分は、SHELLの設定なので.bashrcや.zshrcに変えたりしてください)$ curl -L git.io/nodebrew | perl - setup $ vi .bash_profile $ source ~/.bash_profile再度実行します
$ nodebrew use v10.15.3 v10.15.3nodeのversionをあげられました!
npmのversionも確認します。$ npm -v 6.4.1無事npmのversionも上がりました!!
(今回は、npm scriptを通しただけなので実際にアクセスはまだできていません)npm script実行
無事npm script通りました!!!!
まとめ
- node_modulesを用意する
- nodeとnpmのversionを揃える
- nodebrewを入れる
以上です!
SpecialThanks: tweeeety
- 投稿日:2020-02-26T21:24:57+09:00
bundle install時にsaasに関するエラーが発生した
発生したエラー
RUNTEQのRuby on Railsの技術試験を受験し、環境構築をしている際に以下のエラーが発生しました。
ターミナルで以下のコマンドを入力
ターミナルbundle install --path=vendor/bundleすると最後の段階で以下のエラーが発生
ターミナルRuby Sass has reached end-of-life and should no longer be used. * If you use Sass as a command-line tool, we recommend using Dart Sass, the new primary implementation: https://sass-lang.com/install * If you use Sass as a plug-in for a Ruby web framework, we recommend using the sassc gem: https://github.com/sass/sassc-ruby#readme * For more details, please refer to the Sass blog: https://sass-lang.com/blog/posts/7828841何やら使用しているものに関する注意書きのようです。
googleで翻訳をしてみるとエラーを解読
ターミナルRuby Sassはサポートが終了したため、使用しないでください。 * Sassをコマンドラインツールとして使用する場合、新しいDart Sassの使用をお勧めします 主な実装:https://sass-lang.com/install * SassをRuby Webフレームワークのプラグインとして使用する場合は、 sassc gem:https://github.com/sass/sassc-ruby#readme *詳細については、Sassブログを参照してください。 https://sass-lang.com/blog/posts/7828841とのこと、私はコマンドラインツールは別のものを使用しているため、今回は2番目のRaisでsassを使用する際に発生した注意みたいですね、記述通りにgithubに飛びREADMEを確認すると対応が書いてありました。
解決策
Gemfilegem 'sassc'こちらを記述すれば良いみたいです。
その後bundle installすると、無事完了しました。原因
・sassって?
後日記載します
- 投稿日:2020-02-26T21:07:26+09:00
bundle install時にMySQLのエラーが発生
bundle install時にMySQLのエラーが発生
RUNTEQのRuby on Railsの技術試験を受験し、環境構築をしていた際に以下のエラーが発生しました。
入力したコマンド
ターミナルbundle install --path=vendor/bundle発生したエラー
ターミナルGem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/atsukikomuro/projects/133_atsuki1224_runteq_selection_rails_basic/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/ext/mysql2 /Users/atsukikomuro/.rbenv/versions/2.6.4/bin/ruby -I /Users/atsukikomuro/.rbenv/versions/2.6.4/lib/ruby/2.6.0 -r ./siteconf20200226-71382-91nqge.rb extconf.rb checking for rb_absint_size()... yes checking for rb_absint_singlebit_p()... yes checking for rb_wait_for_single_fd()... yes ----- Using mysql_config at /usr/local/opt/mysql@5.6/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for SSL_MODE_DISABLED in mysql.h... no checking for MYSQL_OPT_SSL_ENFORCE in mysql.h... no checking for MYSQL.net.vio in mysql.h... yes checking for MYSQL.net.pvio in mysql.h... no checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes checking for my_bool in mysql.h... yes ----- Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load ----- ----- Setting libpath to /usr/local/opt/mysql@5.6/lib ----- creating Makefile current directory: /Users/atsukikomuro/projects/133_atsuki1224_runteq_selection_rails_basic/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/ext/mysql2 make "DESTDIR=" clean current directory: /Users/atsukikomuro/projects/133_atsuki1224_runteq_selection_rails_basic/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/ext/mysql2 make "DESTDIR=" compiling client.c compiling infile.c compiling mysql2_ext.c compiling result.c compiling statement.c linking shared-object mysql2/mysql2.bundle ld: library not found for -lssl clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [mysql2.bundle] Error 1 make failed, exit code 2 Gem files will remain installed in /Users/atsukikomuro/projects/133_atsuki1224_runteq_selection_rails_basic/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2 for inspection. Results logged to /Users/atsukikomuro/projects/133_atsuki1224_runteq_selection_rails_basic/vendor/bundle/ruby/2.6.0/extensions/x86_64-darwin-18/2.6.0/mysql2-0.5.2/gem_make.out An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling. In Gemfile: mysql2解決策
以下のコマンドを入力後にbundle installを行うことで正常に終了しました。
ターミナルbundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include"原因
後日記入します。
参考文献
RailsプロジェクトでMySQLがbundle installできなかった
bundle installでmysql2がエラーになる件
- 投稿日:2020-02-26T20:22:56+09:00
Apache環境でのMysql周りのあれこれ(備忘録)
- 投稿日:2020-02-26T18:45:53+09:00
expectコマンドを使用してsshを自動化したい!
はじめに
題名に記載の通り、expectコマンドを使用してsshの自動化を目標に
記事を記載する。具体的目標
現在自分の端末に入れてあるvagrantへのssh接続を自動化
及びいくつかの確認コマンドまで自動化する。目標にあたって下記の記事を参考にさせて頂きました。
https://qiita.com/ine1127/items/cd6bc91174635016db9b#comments①思考錯誤
手を動かしながら考えるのがモットーの為、取り敢えずコマンドを書いてみる。
#!/bin/sh expect -c " set timeout 5 spawn vagrant /usr/bin/ssh expect \"$\" exit "結果は上手くいかず、、、
spawn vagrant /usr/bin/ssh
上記の表現がおかしいのだろうとは思うが、
具体的にどうすれば良いかがわからない。。。②思考錯誤
よくわからないが、vagrant sshで入るのではなく
IPアドレスでssh接続をすれば事例も沢山あるし、上手く行くのではないかと予想。。cat Vagrantfile config.vm.network "private_network", ip: "192.168.33.10"IPアドレスも確認し、いざSSH接続開始!!
ssh 192.168.33.10 192.168.33.10: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).無念、、
軽くググると権限関係が原因っぽい気がしないでもないが、、
知識不足の為、今日は終了。。
- 投稿日:2020-02-26T18:17:59+09:00
Docker Compose でホストとクライアントの両方にて Rails を起動したいそこのあなた!
なにこれ?
あんまりいないとは思うけど、Rails で Docker Compose を使用しているときにホスト側とクライアント側で Rails server を起動したいときはありませんか?自分の場合だと、System Test がどうしても Docker 環境のみで動作させる方法が見つけ出せなかったので、自分の場合 Rails を Ubuntu 環境でシステムテストを走らせて、それ以外は Docker 内のコンテナで動作させたいと思ったのでこういう環境が必要になった。そんなことをしようとしていると困るのが、(Rails のルート)/tmp/ に作られるファイルがホスト側とクライアント側で競合して、同時に起動できないという問題だった。そんなときに読んで解決できる糸口となったのが「DockerでVolumeをマウントするとき一部を除外する方法」だったので、自分もココにその軌跡をのこしておくことにする。
なにするの?
要は Rails 同時に起動できない原因は tmp フォルダが存在するからである。こいつさえなければ、ポートの競合とかはともかく、起動できるのだ。要はお互いが疎な関係になればいい。つまり、クライアントとホストの tmp フォルダが同期しなければいい。以下のコードは tmp フォルダだけはホストと動悸しないようにしてある。
version: '3' volumes: rails_tmp_data: services: as: build: context: ./ ports: - 3333:3000 volumes: - ./:/usr/src/app/ - rails_tmp_data:/usr/src/app/tmp/ command: /bin/sh -c "yarn install --check-files && bundle install && rails db:create && rails db:migrate && rm -f /usr/src/app/tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0' --early-hints"なお上記のコードは、要点だけに絞っている。そのため、コピペでは動かないのは、予めご了承いただきたい。
これでおしまい
ポートの設定を端折ってしまった。そこらへんは、ココでは記事にしない。途中で記事を書くのがめんどくさくなったからね。ググるかなにかしてください。そんじゃねー。
タイトルについて
スタパ斉藤マジリスペクト、というわけでなく、冗談抜きでこんなタイトルしか思いつかなかった。
- 投稿日:2020-02-26T18:08:48+09:00
Ubuntuのtofuを日本語環境に直す
はじめに
日本語が文字化けして、四角に表示される(俗に言う、Tofu 豆腐 )であったため、日本語表示の環境を設定する。
環境
Ubuntu 16.04.5 LTS
Windows10
Vagrant手順
現在の文字コードを確認すると、英語環境でした
echo $LANG en_US.UTF-82つの日本語パッケージ(language-pack-ja-baseとlanguage-pack-ja)をaptでインストールする
sudo apt install language-pack-ja-base language-pack-jaインストール済のロケールの一覧を表示して、ja_JP.utf8が表示される事を確認する
locale -aホームに移動して、.bashrcの一番下に下記を追加する
case $TERM in linux) LANG=C ;; *) LANG=ja_JP.UTF-8;; esac解説
$TERMの環境変数には、ターミナルの種類がセットされる。因みに、自分の環境では、xterm-256colorがセットされている。ターミナルの種類がlinuxの場合は、ローカライゼーションをCにして、それ以外の場合は、日本語にしている。ターミナルの種類がlinuxというのは、クライアントからターミナルでSSH接続して使うのではなく、サーバーを直接触る場合になる。この場合、日本語にすると逆に文字化けを起こすようなので、英語環境にするために、Cをセットしている。サーバーを直接触る事はないよという場合であれば、LANG=ja_JP.UTF8の1行のみでもOK.bashrcを実行して反映させる
source .bashrc日本語表示ができました!
- 投稿日:2020-02-26T17:29:53+09:00
【Linux】フォルダを圧縮してリモートからローカルへファイル転送
- 投稿日:2020-02-26T13:53:19+09:00
【Linux】teratermでDBに接続してSqlplusコマンドを打った後DB(oracle)にログインするまで
【Linux】teratermでDBに接続してSqlplusコマンドを打った後DB(oracle)にログインするまで
SQLDeveloperから応答が帰ってこない
SELECTもUPDATEも固まってしまって更新不可能。
直接DBに問い合わせてみることにする。Teraterm
DBのいるip(XX.XX.XX.XX)
サーバーユーザ
サーバーパスワード
portはサーバ設定に合わせるログイン後
sqlplusを入力エンター
DBユーザ
DBパスワード
を順番に入力する入れた!SQL打ってみることにする。To be continue...
課題:sqlplusを入力エンター後めっちゃ文字化けするのなんで?
Teraterm設定は両方UTF-8だった
- 投稿日:2020-02-26T12:15:02+09:00
Bashスクリプトメモ
bashメモ
MyDNS.JPのIPv4更新用スクリプトをシェルスクリプトで作ってみた(MyDNS.jp-v4-Update.sh)ので、そのときの知見をメモ
変数代入
スペースを開けずに代入する
hoge="hoge"
NG例
以下のようにスペースを開けて代入すると
not found
とかコマンドが見つかりません
とか怒られる
hoge = "hoge"
文字列長取得
数値として取れる模様
${#hoge}
文字列変数展開
頭にドルつける
echo $hoge
文字列結合
echo "もじ${hoge}もじ"
コマンド展開
その1
バッククォートで囲む
hoge=`echo "hoge"`
その2
$()
で囲む。ネストするときに書きやすい
hoge=$(echo "hoge")
1と2を繋げたネストのサンプル
例えばip_resの内容は
"127.0.0.1 200"
の様になる
ip_res=`echo "\""$(curl inet-ip.info/ip -s -m 10 -w ' %{http_code}')"\""`
日付取得
hoge_date=`date "+%Y/%m/%d %H:%M:%S"`
if文
hoge="hoge" if [ ${hoge} = "hoge" ]; then # ほにゃらら elif [ 1 -eq 1 ]; then # 数値と文字列で比較演算子が違う? else # ふにゃらら fi関数
明示的に指定しない限りスコープの概念はないっぽい
fuga() { # ふがゃらら } fugaechoでエスケープシーケンス
-e
オプションを付ける
echo -e "\n"
参考記事
- 投稿日:2020-02-26T09:11:18+09:00
linuxの基本(ユーザー/グループ)
Linuxでのユーザー、グループの確認方法のまとめ
- ユーザー
- 一覧
/etc/passwd
ユーザー名の抽出
cut -d: -f1 /etc/passwd- 情報変更
usermod- パスワード変更
passwd- 追加
useradd- 削除
userdel- グループ
- 一覧
/etc/group
グループ名の抽出
cut -d: -f1 /etc/group- 情報変更
groupmod- 追加
groupadd- 削除
groupdel