curl
オプション | 意味 | 参考サイト |
---|---|---|
-X | HTTPメソッドを指定する | |
-H | HTTPヘッダを指定する | |
-d {パラメータ名}={値} | データをPOSTみたいに送る | curl を使って JSONデータをPOSTする - Takuya71 のぶろぐ |
-v / --verbose | リクエストとレスポンスをを表示する | |
-k / --insecure | 証明書チェックしない | |
-s / --silent | 進捗の表示をしない | Curlでリクエスト中の進行状況を表示しない | ex1-lab |
-sS / --show-error | 進捗は表示をしないがエラーは表示する | curl option 覚え書き - Qiita |
# ヘッダを複数指定する
$ curl -v -H 'Connection: keep-alive' -H 'Content-Type: application/json' http://www.example.com
# BacklogAPIでプロジェクト一覧を取得する
$ curl -X GET -H 'Content-Type:application/json;charset=utf-8' -d '{"archived":false}' https://{ドメイン}.backlog.jp/api/v2/projects?apiKey={APIキー}
# Kintone REST APIでアプリのレコードを一括取得する
$ curl -X GET -H 'X-Cybozu-Authorization:{「ログイン名:パスワード」をBASE64エンコードしたもの};Content-Type:application/json;charset=utf-8' https://{サブドメイン名}.cybozu.com/k/v1/records.json?app={アプリのID}
- curlコマンドでダウンロードしたい - Qiita
- curlのレスポンスをデコードする - Qiita
- Proxy環境下でcurlを実行する | 404 motivation not found
- APIを使ってエラーになった時の原因記録 - Qiita
- URLが空白を含むときは「スペース」と「%20」、「+」のどれを使うべきか? – 海外SEO情報ブログ
jq
オプションや関数 | 意味 | 参考サイト |
---|---|---|
--raw-output -r
|
フィルタの結果が文字列の場合、引用符付きのJSON文字列としてフォーマットされるのではなく、標準出力に直接書き込まれる。 | jq Manual (development version) |
tostring |
入力を文字列として出力する | jq Manual (development version) |
--arg 変数名 値 |
jqコマンドに変数を渡す | シェル芸で使いたい jqイディオム - Qiita |
@csv |
配列をCSVとして出力する | jq コマンドで JSON を CSV に変換する | Medium |
sort_by(要素) |
値でソートする | jqでsortする - Qiita |
- jqコマンドをインストール
- RedmineのRest APIをcurlとjqで使ってみたサンプル - Qiita
- Kintoneのアプリのアクセス権をBashでCSV出力する方法 - 助っ人サービス for kintone
- jqコマンドで文字化けした時の対応方法 - Qiita
- 【jq】複数のjsonオブジェクトを1つの配列にする方法 - Qiita
- bashでjqを使ってJSONの配列をループさせる - Qiita
- 【jq】bashでjson配列をループさせる
- jqコマンドをでやりたいことをやるサンプル集 - Qiita
〇〇を見たい
# 使っているシェルを確認したい
$ echo $SHELL
# ユーザ名をソートして一覧を見たい
$ cat /etc/passwd | sort
ユーザー名:パスワード(xで表示される):ユーザーID:グループID:何も表示されない箇所は作成時に任意でつけるコメント:ホームディレクトリ:シェルの場所
# グループの一覧を見たい
$ cat /etc/group
# 自分が所属するグループを見たい
$ groups
# 所属するグループを見たい
$ groups {ユーザー名}
# CPUの情報を見たい
$ cat /proc/cpuinfo
# アーキテクチャ(64bitか32bitか的な)を見たい
$ arch
x86_64
$ uname -m
x86_64
$ uname -a
Linux localhost.localhost 2.6.32-276.el6.x86_64 #1 SMP Tue May 29 17:38:19 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
- メモリ不足っぽいからメモリを見たい時に使ってみるコマンド - Qiita
- LinuxのOSを確認する方法 - Qiita
- ユーザー一覧を確認する方法
- CentOSでグループの一覧を表示する - Qiita
- Linuxの各種スペック確認 - Qiita
- CentOSでOSが64bitか32bitの確認方法 | server-memo.net
- 現在使用されているシェルが知りたい - ITmedia エンタープライズ
ログファイルを流し見したい
# tailを使う場合
$ tail -f {ログファイル}
# lessを使う場合(スクロールしても画面から見切れた上の部分はもう見れない)
$ less {ログファイル}
# lessで表示して更新部分を見たいときは Shift+F
使っているポートの一覧を見たい
$ ss -version
ss utility, iproute2-ss170501
# 名前解決しない(n)で接続全部(a)のTCP(t)とUDP(u)をみる
$ ss -natu
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:68 *:*
tcp LISTEN 0 128 *:111 *:*
$ netstat --version
net-tools 1.60
netstat 1.42 (2001-04-15)
# 名前解決しない(n)で接続全部(a)のTCP(t)とUDP(u)をみる
$ netstat -natu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 1 0 127.0.0.1:12345 127.0.0.1:1234 CLOSE_WAIT
udp 0 0 127.0.0.1:54321 0.0.0.0:*
# Windowsの場合 : 名前解決しない(n)で接続全部(a)をプロセスIDと合わせて(o)みる
$ netstat -nao
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4104
UDP [::1]:52633 *:* 6704
ss コマンドのオプション |
意味 | 参考サイト |
---|---|---|
-n --numeric
|
サービス名の名前解決を行わない(ポート番号を表示) | 【 ss 】コマンド――ネットワークのソケットの情報を出力する:Linux基本コマンドTips(150) - @IT |
-a --all
|
接続待ち状態(LISTEN)のソケットと接続待ち状態にないソケットの両方を表示する | |
-t --tcp
|
TCPソケットを表示 | |
-u --udp
|
UDPソケットを表示 | |
-p --processes
|
ソケットを使用しているプロセスも表示する | netstat(ss) -pでポートを掴んでいるプロセス名・PIDを出すにはroot権限で実行する必要がある - Qiita |
ssコマンドでkillしたいポートをみつける
# ポート番号とSIDの組み合わせはを確認するには、lsofコマンドがいいけどない
$ lsof
bash: lsof: command not found
# そんな時は、sudoでssコマンドを-pオプションつけるといいらしい
$ sudo ss -natup | grep 8080
[sudo] password for ponsuke:
tcp LISTEN 0 100 *:8080 *:* users:(("java",pid=2657,fd=46))
# 見つけたら殺す
$ kill -9 2657
ロケールを見たい
$ locale
LANG=ja_JP.utf8
LC_CTYPE="ja_JP.utf8"
LC_NUMERIC="ja_JP.utf8"
LC_TIME="ja_JP.utf8"
LC_COLLATE="ja_JP.utf8"
LC_MONETARY="ja_JP.utf8"
LC_MESSAGES="ja_JP.utf8"
LC_ALL=ja_JP.utf8
# ロケールに設定できるのを見たい。大量にあるから日本のだけ。
$ locale -a | grep -i ja
ja_JP
ja_JP.utf8
ja_JP@cjknarrow
ja_JP.utf8@cjknarrow
IPアドレスを確認したい
# MacOSで使うにはインストールが必要です
$ ip addr show
$ ip route
# インターネットへの接続が必要です
$ curl ifconfig.co
$ curl ifconfig.me
# CentOSで使うにはインストールが必要です
$ ifconfig
# ホスト名を確認したい
$ hostname
# ホストのIPアドレスを確認したい
$ hostname -i
- CentOS 7でネットワークの状態確認するためのipコマンド、ssコマンドについてメモ - 完熟トマト
- グローバルIPをcurlで確認 - Qiita
- Homebrewでipコマンドをインストールする - Qiita
プロセスを○○したい
GlassFishのプロセスを見たい
$ ps aux | grep glassfish
# ps 実行中のプロセスを表示する
# psのオプション------------------------
# a 自分以外のユーザーのプロセスも表示する
# u ユーザー名と開始時刻を表示する
# x 制御端末のないプロセスの情報も表示する
殺したい
# 対象のPIDを確認(Linux)
$ top -d1a
# 対象のPIDを確認(Windows)
$ netstat -nao
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP .....省略
# 殺す
$ sudo kill -9 {PID}
〇〇を設定したい
サービスを〇〇したい
# RHEL6以前
# 自動起動サービスの一覧
$ ls -la /etc/init.d/
# RHEL7以降
# サービスの一覧(状態付き)
$ systemctl list-unit-files --type=service
# サービスの一覧(依存関係と状態付き)
$ systemctl list-dependencies
# 自動起動の確認
$ systemctl is-enabled {サービス}yum
cronにタスクを登録したい
# cronが設定されているファイルの場所
/etc/crontab
/etc/cron.{d/daily/weekly/hourly/monthly}/配下
# crontab -eで設定した場合
/var/spool/cron/{設定をしたユーザー名}
〇〇を作りたい
作りたい
# ディレクトリを再帰的に作りたい
mkdir -p ./pon/suke/chovin
# シンボリックリンクを作りたい
$ ln -s {リンク元のディレクトリパス} {リンク先のパス}
# AからZまでの羅列を作りたい
$ echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
$ echo {G..Q}58
G58 H58 I58 J58 K58 L58 M58 N58 O58 P58 Q58
# 「'」を含めたい場合は「"」で囲えばOK
$ echo WHERE name{1..13}"_kana LIKE '%pon%' OR"
WHERE name1_kana LIKE '%pon%' OR name2_kana LIKE '%pon%' OR name3_kana LIKE '%pon%' OR name4_kana LIKE '%pon%' OR name5_kana LIKE '%pon%' OR name6_kana LIKE '%pon%' OR name7_kana LIKE '%pon%' OR name8_kana LIKE '%pon%' OR name9_kana LIKE '%pon%' OR name10_kana LIKE '%pon%' OR name11_kana LIKE '%pon%' OR name12_kana LIKE '%pon%' OR name13_kana LIKE '%pon%' OR
- ファイルのハードリンクとシンボリックリンクを作る - @IT
- 空ファイルを作りたい
- bashのブレース展開についてまとめ - Qiita
- bashで連番を生成する方法(ブレース展開) - Qiita
- ファイルサイズを指定してファイルを作る方法 - Qiita
- echoコマンドのブレース展開で便利に連番の文字を作る - Qiita
〇〇を数えたい
# 任意の文字列が含まれる行数を数えたい
$ grep -a {任意の文字列} {ファイルパス} | wc -l
## 例) hoge.iniで「key(大文字小文字区別なし)」かつ「;(コメント)で始まらない」行数を数えたい
$ grep -ai key hoge.ini | grep ^[^\;] | wc -l
# 任意の文字列が含まれる行数を数えたい
$ grep -c {任意の文字列} {ファイルパス}
yumとかaptとか
yum
# アップデート
$ sudo yum -y update
# パッケージを検索したい
$ yum search {インストールしたいもの}
# コマンドやファイル名でパッケージを検索したい
$ yum provides {ファイル名}
$ yum provides */{コマンド}
# インストールしたい
$ yum install {インストールしたいもの}
# インストールしたものを見たい
$ yum list installed
# yumでインストールしたときのインストール場所を見たい
$ rpm -ql {パッケージ名}
# アンインストールしたい
$ yum -y remove {アンインストールしたのも}
- yumコマンドで既にインストールしたソフトを調べる
- yumコマンド一覧 - Qiita
- コマンドが含まれるパッケージをyumコマンドで探す方法 - 一馬力のメモ帳
- 【yum remove】yumで安全にアンインストールする方法 | UX MILK
apt
# インストールしたものを見たい
$ sudo dpkg -l
# インストールしたい
$ sudo apt-get -y install {インストールしたいもの}
ファイラーとかファイルブラウザとかエクスプローラとかFinderとかを開きたい
OS | コマンド | 補足 | 参考リンク |
---|---|---|---|
Windows | $ start {パス} |
start はディレクトリパスを「/」にしていると怒られるので「\」にします。 |
コマンドプロンプト start - [新たなコマンドプロンプト画面を開く] |
Windows | $ explorer {パス} |
下記参照 | エクスプローラーを開く方法まとめ - Qiita |
Mac | $ open {パス} |
||
CentOS |
gio open {パス} OR $ nautilus {パス}
|
$ xdg-open {パス} は「非推奨です」的なメッセージが出る |
ファイルブラウザをターミナルから起動する方法 - Linuxと過ごす |
Windows10でエクスプローラを開くコマンドを作る
# explorerはパスを「/」で指定すると[ドキュメント]ディレクトリを開いてきます。だからエイリアスでなんとかしてみます。
# 1. .bash_profileに「open」でエイリアスを追記する
$ vi ~/.bash_profile
# -----以下を追記する----
alias open='explorer /e , $($1 | sed -e "s/^\\/\\([a-zA-Z]\\)\\//\\1:\\\\/" | sed -e "s/\\//\\\\/g")'
# 2. 反映する
$ source ~/.bash_profile
# 3. 「open パス」でエクスプローラーが開く
$ open /c/apps/
explorerコマンドのオプション | 意味 |
---|---|
/e | デフォルトの表示設定で開く |
- Windowsのエクスプローラで目的のフォルダだけを開く:Tech TIPS - @IT
- Git Bash on Windowsでパス区切り文字をバックスラッシュに変換する(そしてExplorer.exeでカレントディレクトリを開く) - ごらくらいふ
パスワードを変えたい
# ponsukeのパスワードを変えたい
$ sudo passwd ponsuke
[sudo] password for ponsuke:
Changing password for user ponsuke.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
権限を変えたい
# 構文
$ chmod {アクセス権限} {ファイル名かディレクトリ名}
# 他人に書き込み権限をあげる
$ sudo chmod o+w {ファイル名かディレクトリ名}
# 再帰的に権限を変更したい
$ chmod -R {アクセス権限} {ファイル名かディレクトリ名}
持ち主を変えたい
$ chown --version
chown (GNU coreutils) 8.22
# 再帰的に持ち主を変更する
$ chown -R {ユーザ} {ディレクトリ}
ディレクトリとファイルを○○したい
Linuxコマンドを使ってディレクトリとファイルでやりたいことをやるためのリンク集 - Qiita
環境変数を××したい
# 設定した環境変数を見たい。
$ printenv {環境変数名}
# PATHを見たい。
$ printenv PATH
/usr/local/bin:/Users/mana/.phpenv/shims:/Users/mana/.phpenv/bin:...:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
# PATHを改行で見やすく区切ってみたい
$ printenv PATH | sed -e 's/:/:\n/g'
/c/app/Java/jdk1.8.0_231/:
...
/mingw64/bin:
/usr/local/bin:
/usr/bin:
/bin:
# 曖昧な名前で見たい。
$ printenv | grep -i oracle
# 環境変数を設定したい(bash)
$ echo 'export {環境変数名}="{環境変数値}"' >> ~/.bash_profile
$ source .bash_profile
# 設定されている区切り文字(IFS)を確認したい : printfのオプション %q-文字列をそのままシェルで利用できるように文字をエスケープ
$ printf "%q\n" "$IFS"
$' \t\n'
- メリーおばさんのLinux講座 Linuxの使い方 - より高度なシェルの使い方 環境変数一覧
- IFS の取り扱い [Bash] – Site-Builder.wiki
- printf コマンド – フォーマット形式で文字列を表示 | Linuxコマンド.NET
iptablesとか認証用の鍵とかSSHでやりたいことをやりたい
とにかくいろいろ探したい
とあるOSを使いたい
コマンドじゃないけど・・・
Linuxで使えるフォントをインストールしたい
viエディタですぐ忘れる
やりたいこと | キー |
---|---|
undo | u |
paste | p(カーソル行の下にpaste) P(カーソル行にpaste) |
現在行を切り取り | dd |
ファイルの最後に移動 | Shift + G |
検索 | /{検索文字} |
行番号を表示したい | :set number |
困った!
- MacのVirtualBoxに作った仮想マシンへCentOSをインストールまでしたがインターネットに接続できない時の対応方法 - Qiita
- line 1: #!/bin/bash: No such file or directory - Qiita
- find: paths must precede expression - Qiita
- find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional - Qiita
- Error: Cannot retrieve repository metadata (repomd.xml) for repository: - Qiita
- WARNING: UNPROTECTED PRIVATE KEY FILE! - Qiita
- bind: Cannot assign requested address - Qiita
- grep: warning: recursive search of stdin - Qiita
- Binary file (standard input) matches - Qiita
- Failed to set locale, defaulting to C - Qiita
- i386.rpm is for architecture i386 ; the package cannot be built on this system - Qiita
- This does not look like a tar archive - Qiita
- tar (child): cannot run bzip2: No such file or directory - Qiita
- curl: (60) Issuer certificate is invalid. - Qiita
- is not in the sudoers file.This incident will be reported. - Qiita
- resize2fs: Bad magic number in super-block - Qiita
- zsh: no matches found: - Qiita
- zsh: parse error near - Qiita