LoginSignup
24
38

More than 1 year has passed since last update.

Linuxコマンドでやりたいことをやるためのリンク集

Last updated at Posted at 2017-05-16

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}

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

〇〇を見たい

# 使っているシェルを確認したい
$ 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

ログファイルを流し見したい

# 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

プロセスを○○したい

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

〇〇を数えたい

# 任意の文字列が含まれる行数を数えたい
$ 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 {アンインストールしたのも}
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 デフォルトの表示設定で開く

パスワードを変えたい

# 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'

iptablesとか認証用の鍵とかSSHでやりたいことをやりたい

とにかくいろいろ探したい

とあるOSを使いたい

コマンドじゃないけど・・・

Linuxで使えるフォントをインストールしたい

viエディタですぐ忘れる

やりたいこと キー
undo u
paste p(カーソル行の下にpaste)
P(カーソル行にpaste)
現在行を切り取り dd
ファイルの最後に移動 Shift + G
検索 /{検索文字}
行番号を表示したい :set number

困った!

24
38
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
38