linux コマンド 備忘録

# システム情報
arch ディスプレイマシンのプロセッサアーキテクチャ
uname -m ディスプレイマシンのプロセッサアーキテクチャ
uname -r は使用しているカーネルのバージョンを示す
dmidecode -q ディスプレイハードウェアシステムパーツ- (smbios / dmi)
hdparm-i /dev/hda は1つのディスクのアーキテクチャ特性を羅列する
hdparm-tt /dev/sda は、ディスク上でテスト読み出しを実行する
cat /proc/cpuinfo cpuinfo の情報を表示します
cat /proc/interrupts 表示が途切れます
cat /proc/meminfo はメモリ使用をチェックする
cat /proc/swaps どのswapが使用されているかを表示します
cat /proc/version カーネルのバージョンを表示します
cat /proc/net/dev ディスプレイネットワークアダプタと統計
cat / proc mounts 結果がノードの文書システム
lspci-tv は pci デバイスを羅列する
lsusb-tv は usb デバイスを表示する
date システムの日付を表示します
cal 2007 2007年のカレンダー表を表示します
date 041217002007.00 日付と時刻を設定します。秒
clock -w は BIOS に時間修正を保存する

# シャットダウン(システムのシャットダウン、再起動、ログアウト)

shutdown -h now システムをシャットダウンします
init 0 システムをシャットダウンする
telinit 0 システムをオフにします
shutdown -h hours:minutes & システムを所定の時間にシャットダウンします
shutdown -c システムを所定の時間にシャットダウンすることをキャンセルします
shutdown -r now 再起動します
reboot 再起動します
logout ログアウトします

# ファイルとディレクトリ

cd /home 「/home」ディレクトリに入る
cd .. 上の目次に戻る
cd ../.. 上の2つの目次に戻る
cd 個人のホームディレクトリに入ります
cd ~user1 個人のホームディレクトリに入る
cd - 前回あったディレクトリに戻る
pwd 動作経路を表示する
ls ディレクトリ内のファイルを見る
ls -F はディレクトリ内のファイルを見る
ls -l はファイルやディレクトリの詳細を表示する
ls -a 隠しファイルを表示する
ls *[0-9]* 数字を含むファイル名とディレクトリ名を表示します
tree ファイルとディレクトリがルートディレクトリから始まるツリー構造を表示する
lstree ファイルとディレクトリがルートディレクトリから始まるツリー構造を表示する
mkdir dir1 「dir1」というディレクトリを作る
mkdir dir1 dir2 同時に二つのディレクトリを作成する
mkdir -p /tmp/dir1/dir2 ディレクトリツリーを作成する
rm -f file1 「file1」というファイルを削除する
rmdir dir1 「dir1」というディレクトリを削除する
rm -rf dir1 'dir1'というディレクトリを削除し、同時にそのコンテンツを削除する
rm -rf dir1 dir2 両方のディレクトリとその内容を同時に削除する
mv dir1 new_dir ディレクトリの名前を変更/目次を移動する
cp file1 file2 ファイルをコピーします
cp dir/* . ディレクトリ内の全てのファイルをカレントディレクトリにコピーする
cp -a /tmp/dir1 . あるディレクトリを カレントディレクトリにコピーします
cp -a dir1 dir2 ディレクトリをコピーします

cp -r dir1 dir2 ディレクトリとサブディレクトリをコピーします
ln -s file1 lnk1 ファイルまたはディレクトリへのソフトリンクを作成する
ln file1 lnk1 ファイルまたはディレクトリへの物理リンクを作成する
touch -t 0712250000 file1 ファイルまたはディレクトリのタイムスタンプを修正する - (YYMMDDhhmm) 
file file1 outputs the mime type of the file as text 
iconv -l 既知の符号化を示す
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. 
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick) 

# ファイル検索
find / -name file1 '/'からルートファイルシステムに入ってファイルとディレクトリを検索する
find / -user user1 ユーザー'user1'に属するファイルやディレクトリを検索します
find /home/user1 -name \*.bin 「/home/user1」ディレクトリ内の「.bin」で終わるファイルを検索します
find /usr/bin -type f -atime +100 過去100日間使用されていない実行ファイルを検索する
find /usr/bin -type f -mtime -10 10日以内に作成または修正されたファイルを検索する
find / -name \*.rpm -exec chmod 755 '{}' \;  '.rpm'で終わるファイルを検索し、その権限を定義します
find / -xdev -name \*.rpm ドライブやジェットドライブなどの取り外し可能なデバイスは無視して、` .rpm'で終わるファイルを検索します
locate \*.ps  '.ps'で終わるファイルを探します-まず'updatedb'コマンドを実行します
whereis halt バイナリファイル、ソースコード、または man の位置を表示します
which halt バイナリまたは実行可能ファイルの完全なパスを表示します

# ファイルシステムをマウントする
mount /dev/hda2 /mnt/hda2   'hda2'という名前のディスクをマウントします。ディレクトリ'/ mnt/hda2'が存在することを確認
umount /dev/hda2  hda2と呼ばれるディスクをアンインストールする—マウントポイント'/ mnt/hda2'から先に終了します
fuser -km /mnt/hda2 デバイスが忙しいときに強制的にアンインストールされます
umount -n /mnt/hda2  /etc/mtabファイルを書き込まずにアンインストールを実行します。ファイルが読み取り専用である場合や、ディスクがフル書き込みされている場合に便利です
mount /dev/fd0 /mnt/floppy フロッピーディスクをマウントする
mount /dev/cdrom /mnt/cdrom  cdromまたはdvdromをマウントします
mount /dev/hdc /mnt/cdrecorder  cdrwまたはdvdromをマウントします
mount /dev/hdb /mnt/cdrecorder cdrwまたはdvdromをマウントします
mount -o loop file.iso /mnt/cdrom ファイルまたはisoイメージファイルをマウントします
mount -t vfat /dev/hda5 /mnt/hda5 ： windows fat32ファイルシステムをマウントする
mount /dev/sda1 /mnt/usbdisk ： usbメモリまたはフラッシュメモリデバイスをマウントします
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share ： windowsネットワーク共有をマウントする

# ディスク空間
df -h マウントされているパーティションのリストを表示する
ls -lSr |more ファイルとディレクトリをサイズごとに並べます
du -sh dir1 ディレクトリ'dir1'が既に使用しているディスク空間'を推定する
du -sk * | sort -rn ファイルやディレクトリのサイズを容量の大きさに応じて順次表示します
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n  インストール済み rpm パッケージが使用されるスペースをサイズ順に表示する(fedora, redhat系システム)
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n  インストール済み deb パッケージに使用されるスペースをサイズ順に表示する(ubuntu, debian系システム)

# ユーザーとグループ
groupadd group_name 新しいユーザーグループを作成します
groupdel group_name ユーザグループを削除します
groupmod -n new_group_name old_group_name ユーザグループの名前を変更します
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 ： "admin"ユーザーグループに属するユーザーを作成します
useradd user1 新規ユーザを作成します
userdel -r user1 ユーザを削除する（'-r'はホームディレクトリを除外する）
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 　ユーザ属性を変更する
passwd 　パスワードを修正する
passwd user1 　ユーザのパスワードを修正する（rootのみ実行可能）
chage -E 2020-12-31 user1  　ユーザパスワードの有効期限を設定する
pwck  ：　'/etc/passwd'のファイルフォーマットや構文修正、存在するユーザーをチェックする
grpck ：　'/etc/passwd'のファイルフォーマットや構文修正、存在するグループをチェックする
newgrp group_name 　新しいグループに登録して、新しく作成されたファイルのプリセットのグループを変更する

# ファイルの権限-「+」を使用して権限を設定し、「-」を使用してキャンセルする
ls -lh  権限表示
ls /tmp | pr -T5 -W$COLUMNS  ：端末を5つの列に分けて表示します
chmod ugo+rwx directory1 ディレクトリのすべての人(u)、グループ(g)、その他の人(o)の読み取り(r)、書き込み(w)、実行(x)の権限を設定する
chmod go-rwx directory1 　グループ(g)と他の人(o)のディレクトリの読み取り、読み書き、実行権限を削除する
chown user1 file1 ファイルの所有者属性を変更します
chown -R user1 directory1 　：　1つのディレクトリの所有者属性を変更し、同時にディレクトリ下のすべてのファイルの属性を変更する
chgrp group1 file1 ファイルのグループを変更する
chown user1:group1 file1 ：ファイルの所有者とグループ属性を変更します
find / -perm -u+s ：　1つのシステムで　SUID　制御を使っているファイルをすべて羅列する
chmod u+s /bin/file1 バイナリファイルの　suid　ビットを設定します。このファイルを実行するユーザにも所有者と同じ権限が与えられます
chmod u-s /bin/file1 　：　バイナリファイルの　suid　ビットを無効にする
chmod g+s /home/public 　：　suidのようなディレクトリの　sgid　ビットを設定するが、これはディレクトリ用である
chmod g-s /home/public 　：　ディレクトリのsgidビットを無効にする
chmod o+t /home/public 　ファイルのstikyビットを設定します
chmod o-t /home/public 　ディレクトリのstikyビットを無効にする

# ファイルの特殊な属性-「+」を使用して権限を設定し、「-」を使用してキャンセルする
chattr +a file1 　ファイルを追加的に読み書きすることしかできない
chattr +c file1 　このファイルがカーネルによって自動的に圧縮/伸張される
chattr +d file1 　ファイルシステムのバックアップ時、dumpプログラムはこのファイルを無視する
chattr +i file1 　変更不可ファイルに設定されており、削除、修正、名前の変更、またはリンクすることができない
chattr +s file1 　1つのファイルを安全に削除できる
chattr +S file1 　アプリケーションがこのファイルに書き込みを行うと、システムはすぐに修正結果をディスクに書き込むようにします
chattr +u file1 　ファイルが削除されると、システムは削除されたファイルを後で復元することができます
lsattr 　特殊な属性を表示する

# ファイルをパッケージ化して圧縮します
bunzip2 file1.bz2 　「file1.bz2」というファイルを解凍します
bzip2 file1 　「file1」というファイルを圧縮します
gunzip file1.gz 　「file1.gz」というファイルを解凍します
gzip file1 　「file1」というファイルを圧縮する
gzip -9 file1 　最大圧縮
rar a file1.rar test_file 　「file1.rar」というパッケージを作成する
rar a file1.rar file1 file2 dir1 　　'file1', 'file2'及びディレクトリ'dir1'を同時に圧縮する
rar x file1.rar 　　パッケージを解凍します
unrar x file1.rar 　　パッケージを解凍します
tar -cvf archive.tar file1 　　ファイル1非圧縮のtarballを作成します
tar -cvf archive.tar file1 file2 dir1 　　'file1', 'file2', 'dir1'を含むアーカイブファイルを作成します
tar -tf archive.tar 　　パッケージの中身を表示します
tar -xvf archive.tar 　　パッケージをリリースする
tar -xvf archive.tar -C /tmp 　　圧縮パケットを　/tmp　ディレクトリに解放します
tar -cvfj archive.tar.bz2 dir1 　　　bzip2フォーマットの圧縮パケットを生成する
tar -jxvf archive.tar.bz2 　　　 bzip2形式の圧縮パケットを解凍します
tar -cvfz archive.tar.gz dir1 　　 gzip形式の圧縮パッケージを作成する
tar -zxvf archive.tar.gz 　　 gzip形式の圧縮パッケージを解凍します
zip file1.zip file1 　　zip形式の圧縮パッケージを作成します
zip -r file1.zip file1 file2 dir1 　　複数のファイルとディレクトリを同時にzip形式に圧縮した圧縮パッケージです
unzip file1.zip 　　 zip形式の圧縮パッケージを解凍します

# rpmパッケージ- (fedora、redhatなど)
rpm -ivh package.rpm 　　パッケージをインストールします
rpm -ivh --nodeeps package.rpm 　　依存関係の警告を無視してrpmパッケージをインストールします
rpm -U package.rpm　設定ファイルを変更せずに、rpmパッケージを更新します
rpm -F package.rpm 　インストール済みのrpmパッケージを更新します
rpm -e package_name.rpm 　　パッケージを削除します
rpm -qa 　　システムにインストールされているすべてのrpmパッケージを表示します
rpm -qa | grep httpd 　　名前に"httpd"という文字を含むすべてのrpmパケットを表示します
rpm -qi package_name 　　インストールされたパッケージに関する特別な情報を取得します
rpm -qg "System Environment/Daemons" 　　コンポーネントのrpmパッケージを表示します
rpm -ql package_name 　　インストール済みのrpmパッケージが提供するファイルのリストを表示します
rpm -qc package_name 　　インストール済みのrpmパッケージが提供するプロファイルのリストを表示します
rpm -q package_name --whatrequires  rpmパッケージの依存関係のリストを表示します
rpm -q package_name --whatprovides 　　rpmパッケージが占めるボリュームを表示します
rpm -q package_name --scripts  　 インストール/削除時に実行されるスクリプトを表示します
rpm -q package_name --changelog　　 rpmパッケージの変更履歴を表示します
rpm -qp package.rpm -l 　　インストールされていないrpmパッケージによって提供されるファイルのリストを表示します
rpm --import /media/cdrom/RPM-GPG-KEY 　　公開鍵のデジタル証明書を導入する
rpm --checksig package.rpm 　　一つのrpmパッケージの完全性を確認する
rpm -qa gpg-pubkey　　インストール済みのすべてのrpmパッケージの完全性を確認する
rpm -V package_name 　　ファイルサイズ、ライセンス、タイプ、所有者、グループ、md5チェック、最終修正時刻をチェックする
rpm -Va 　　システムにインストールされているすべてのrpmパッケージを検査します
rpm -Vp package.rpm 　　 rpmパッケージがインストールされていないことを確認します
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 　　 rpmパッケージから実行ファイルを実行します
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 　　ビルドしたパッケージをrpmソースからインストールします
rpmbuild --rebuild package_name.src.rpm 　　 rpmソースからrpmパッケージをビルドします

# yumパッケージアップグレード- (fedora、redhatなど)
yum install package_name 　　パッケージをダウンロードしてインストールします
yum localinstall package_name.rpm 　　rpmパッケージをインストールし、自分のソフトウェアリポジトリを使って依存関係を解決します
yum update package_name.rpm 　　現在のシステムにインストールされているすべてのrpmパッケージを更新します
yum update package_name 　　 rpmパッケージを更新します
yum remove package_name　　　rpmパッケージを削除します
yum list 　　現在のシステムにインストールされているすべてのパッケージがリストされています
yum search package_name 　　rpmリポジトリでパッケージを検索します
yum clean packages 　　rpmキャッシュをクリーンアップ　　ダウンロードしたパッケージを削除します
yum clean headers 　　すべてのヘッダファイルを削除します
yum clean all 　　キャッシュされたすべてのパケットとヘッダファイルを削除する

# debパッケージ(debian、ubuntuおよび類似システム)
dpkg-i package.deb  　　パッケージをインストール/更新します
dpkg-r package_name　　システムからdebパッケージを削除します
dpkg -l 　　システムにインストールされているdebパッケージをすべて表示します
dpkg-l | grep httpd　　"httpd"という文字を含む全てのdebパッケージを表示します
dpkg-s package_name　　システムにインストールされている特別なパッケージの情報を取得する
dpkg-l package_name　　システムに既にインストールされているdebパッケージから提供されるファイルの一覧を表示します
dpkg——contents package.deb　　インストールされていないパッケージのファイルリストを表示します
dpkg-s /bin/ping　　渡されたファイルがどのdebパッケージで提供されているかを確認する

# 文書処理
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT

cat file1 | command( sed, grep, awk, grep, etc...) > result.txt    1つのファイルの詳細説明文をマージし、概要を新しいファイルに書き込む
cat file1 |コマンド(sed, grep, awk, grep, etc…)>> result.txt 1つのファイルの詳細説明テキストをマージし、概要を既存の1つのファイルに書き込む
grep aug /var/log/messagesファイル'/var/log/messages'内のキーワード" aug "を検索する
grep ^ aug /var/log/messagesファイル「/var/log/messages」の中から「aug」で始まる単語を探します
grep [0-9] /var/log/messages「/var/log/messages」ファイルに数字を含むすべての行を選択します
grep aug - r/ var/log/*ディレクトリ'/var/log'以降のディレクトリで文字列" aug "を検索する
sed 's/stringa1/stringa2/g' example.txt example.txtファイルの"string1"を"string2"に置き換える
sed '/^$/d' example.txt example.txtファイルから空白行をすべて削除する

sed-n '/stringa1/p'単語"string1"のみを含む行を見る
sed-e 's/ *$//' example.txt各行の最後の空白文字を削除する
sed-e 's/stringa1//g' example.txt文書から単語"string1"のみを削除し、残りは全て保持する
sed -n '1,5p;5q' example.txtは1行目から5行目までを見る
sed—n '5p;5q' example.txt 5行目を見る
sed-e 's/00*/0/g' example.txt複数のゼロを単一のゼロに置き換える
cat-n file1はファイルの行数を表示する

sort file1 file2 | uniq - u削除。ひょっとしたら、残して他の行
sort file1 file2 | uniq-d 2つのファイルの共通部分を取り出す(2つのファイルに同時に存在するファイルのみを残す)
comm−1 file1 file2  二つの文書内容だけを削除' file1 '校の内容
comm−2 file1 file2   2つのファイルの内容を比較して「file2」に含まれるもののみを削除する
comm−3 file1 file2　　二つ文書の内容だけを削除ファイル共有の一部

# バックアップ
dump -0aj -f /tmp/home0.bak /home　　 「/home」ディレクトリの完全なバックアップを作成します
dump -1aj -f /tmp/home0.bak /home 　　/home'ディレクトリの対話型バックアップを作成します
restore -if /tmp/home0.bak 　　対話型バックアップを復元します
rsync -rogpav --delete /home /tmp　　両方のディレクトリを同期
rsync -rogpav -e ssh --delete /home ip_address:/tmp 　　sshチャンネル経由rsync
rsync -az -e ssh --delete ip_addr:/home/public /home/local 　　sshと圧縮によりリモートディレクトリをローカルディレクトリに同期します
rsync -az -e ssh --delete /home/local ip_addr:/home/public 　　 sshと圧縮でローカルディレクトリをリモートディレクトリに同期します
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 　　sshを介してリモートホスト上のローカルディスクを1回バックアップする動作を実行する
dd if=/dev/sda of=/tmp/file1 　　ディスク内容をファイルにバックアップします
tar -Puf backup.tar /home/user 　　ディレクトリの対話型バックアップを実行します
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 　　ssh経由でリモートディレクトリにディレクトリの内容をコピーします
(tar c /home) | ssh-c user@ip_addr 'cd /home/backup-home && tar x-p ' ssh経由でリモートディレクトリにローカルディレクトリをコピーします
tar cf- . | (cd /tmp/backup;tar xf -)ローカルにあるディレクトリを別の場所にコピーし、権限とリンクを保持する
find /home/ user1-name '*.txt' | xargs cp-av——target-directory=/home/backup/——parents一つのディレクトリから「.txt」で全てをコピーします。最後のファイルは別のディレクトリに移動する
find /var/ log-name '*.log' | tar cv——files-from=- | bzip2 > log.tar.bz2 '.log'で終わる全てのファイルを検索してbzipパッケージを作成する
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 mbr (master boot record)の内容をフロッピディスクにコピーする動作をします
dd if=/dev/fd0 of=/dev/hda bs=512 count=1フロッピーディスクに保存されたバックアップからmbrコンテンツを復元する