web-dev-qa-db-ja.com

端末がusb情報を見つけるためのコマンドは何ですか?

ファイルマネージャで/media/user/nameOfFlashdriveにアクセスすると、フラッシュドライブの名前を見つけることができます。ただし、フラッシュドライブの名前を入力できる端末コマンドがあり、/dev/sdb1などのドライブの接続先がわかりますか?

6
user2669764

次を使用できます。

lsblk | grep <flashdrive>

これは私の状況で出力され、実行されます

$ lsblk | grep Passport
└─sdb1   8:17   0   1,8T  0 part /media/jacob/My Passport1
└─sdc1   8:33   0 698,6G  0 part /media/jacob/My Passport

デバイスとマウントポイントの両方を確認できます。ご覧のとおり、My Passportという2つのusbドライブがあります

デバイスのみを取得する

$ lsblk | grep Passport | awk '{ print $1 }'
└─sdb1
└─sdc1

同じですが、より正確な出力があります:

$ lsblk | grep Passport | awk -F'[─ ]' '{ print $2 }'
sdb1
sdc1

または、@ kos(ありがとう!)が示唆するように、lsblk-lオプションと一緒に使用すると(出力の└─がデバイスの前に省略されます)、さらに簡単になります。

$ lsblk -l | grep Passport | awk '{ print $1 }'
sdb1
sdc1

または(@kosによって示唆されているように)、grepコマンドを使用せずに、lsblkおよびawkのみを使用することもできます。

$ lsblk -l | awk '/Passport/{ print $1 }'
sdb1
sdc1

説明

  • lsblkは、マウントされているすべてのデバイスをリストします
  • grep <flashdrive>は、次のように、デバイス名と一致する行のみをリストします。

    └─sdc1   8:33   0 698,6G  0 part /media/jacob/My Passport
    
  • awk -F'[─ ]' '{ print $2 }'は、行を2つの区切り文字で分割します。

    (which─の2番目の文字です)

    そしてスペース。

その後、必要なセクションを簡単に取得できます。

3
Jacob Vlijm

実際には、そのためのコマンドがいくつかあります。テキスト処理ツールを使用して、出力をいつでも除外することができます。一般に、出力は1画面で読み込めるほど小さいです。

blkid

名前が示すように、このきちんとしたコマンド自体は、ブロックデバイスに関する情報を表示します。 -Lを使用すると、ラベル(名前)で特定のデバイスを検索できます。

$ blkid -L DTSE9                                               
/dev/sdb1

df

このきちんとしたコマンドはcoreutilsパッケージの一部であり、「デバイスファイル」のブロックサイズと使用量を表示します。マウントされている(つまり、どこかにあるフォルダーにリンクされている)デバイスに関する情報のみを表示します。例えば、

/dev/sdb5      115247656 84753976  24616332  78% /media/WINDOWS

2番目のハードドライブ上のWindowsパーティションが/media/WINDOWSパーティションにリンクされていることを通知します。

udisksctl

$ udisksctl status                                             
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
Radeon R7                 1.01      A22MD061520000172    sda     
TSSTcorp CDDVDW SU-208GB  TF01      S16T6YEFB00NKH       sr0 

ディスクがリンクされているモデルとデバイスファイルをリストする非常に便利なコマンド。上記の例では、Radeon R7 SSDは/dev/sdaデバイスにリンクされています。

さらに詳しく説明すると、udisksctl info -b /dev/sdaにはサイズやシンボリックリンクなどの追加情報がたくさんリストされます。

ワイルドにしたい場合、udisksctl dumpはすべてのディスクで詳細な出力を生成します。

partedおよびfdisk

どちらのコマンドもディスクユーティリティであり、パーティション分割、サイズ変更、その他多くの楽しいことのために使用されます。ただし、両方ともSudoを使用する必要があります。どちらもすばらしい詳細な情報を出力します

find

これは、より「実践的な」アプローチです。すべてのデバイスには、Linuxの下に特別なデバイスファイルがあります(すべてがファイルであると言うUnixの哲学を覚えていますか?ここで最適です)。ファイルがあることを知って/dev/disk/by-labelそのディレクトリを検索することも、単に/dev/diskを検索することもできます。間違いなく、より上級ユーザーが評価できるツール

$ find -L /dev/disk/by-label/ -name "DTSE9" -exec readlink -e {} \;               
/dev/sdb1

lsblk

すでにジェイコブによってカバーされています。

mount

$ mount | grep "DTSE9"                                                            
/dev/sdb1 on /media/xieerqi/DTSE9 type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)

マウントされているすべてのファイルシステムをリストします。特定のファイルシステムを探すためにgrepでフィルターできます。 grep 'DISKNAME OR UUID' /proc/mountsを実行することに似ています

lshw

このコマンドは、システム上のすべてのハードウェアに関する情報を提供します。特に、デバイス全体にlshw -c disk、またはパーティションにlshw -c volumeを使用してディスクに関する情報を表示できます。次のような行で出力が表示されます。

logical name: /dev/sdc1
   logical name: /media/xieerqi/BA02-AF80
4

...上記の包括的な回答に追加:

lsusb

lsusbは、システム内のUSBバスとそれらに接続されているデバイスに関する情報を表示するためのユーティリティです。

manページ を参照してください。 !

1
Campa