タグ付けされた質問 「command-line」

コマンドラインは、シェルへのインタラクティブなインターフェースです。

3
ポート22だけでなくセカンダリポートも毎回試すようにsshを設定するにはどうすればよいですか?
ログのノイズを減らし、発見可能性を少し減らす(そしてfail2banに加えて、公開鍵認証のみを許可するなど)ための私の取り組みの一環として、別のポートに設定したサーバーのsshdポートを定期的に変更します(例:5492)。 sshコマンドに-p 5492を追加するか、特定の各サーバーのポートをmyに追加しますssh_config。 ポート22が機能しない場合に、ポート22とポート5492の両方に接続するようにsshを構成する方法はありますか?

2
CTRL + Cの後でコンソールをリセットする必要があるのはなぜですか
一部のコマンドラインインターフェイスツールは、によってキャンセルされると、壊れたコンソールを返しますCTRL+C。コマンドが実行されるまで、テキストが表示されない場合や、グラフィックの問題が発生する場合がありますreset。 (私はbashを使用していますが、シェルから独立していることを期待しています。) この効果には名前がありますか?これは何が原因で、どのようにしてプログラマはツールでこれを防ぐことができますか?主要なプログラミング言語でこの問題に対処する方法はありますか?

2
コマンドを入力でフィードするには、合計でいくつの方法がありますか?
Linuxで最初に気付いたのは、コマンドにデータを供給するさまざまな方法でした。いくつかは知っていますが、全体の数はわかりません。 私がこれまでに知っている方法: 配管: echo -e "zorro\nwurst\nlahmacun\nsozialhilfe" | sort End of File信号を使用したキーボードから: sort >gurken >zucker >braunkohle ファイルから: sort foo こちらの文字列(実際にはこちらのドキュメントと呼ばれます): sort << HERE >wasserkopf >elternzeit >schuldeingeständnis >währungsreform >alabasterhaut HERE これはすべてですか、それとも実行する方法が他にもありますか?なぜ、まったく異なる方法があるのですか?いくつかの方法は冗長ですか?

2
コマンドラインアプリケーションで標準エラーストリームを使用する場合
コマンドラインアプリケーションの作成時にエラーを使用する場合のガイドラインはありますか?驚いたことに、ググるときに何も見つかりませんでした。 特に、私が今心配している問題は、ユーザーが不正な引数を使用してプログラムを呼び出すかどうか、stdoutまたはstderrいつ呼び出すかです。ただし、ユーザーが期待するとおりに動作するプログラムを作成するための明確なルールが必要となる唯一のケースではないので、より包括的な答えは非常に高く評価されます。

3
findで見つかったファイルを引数として渡す方法は?
まず、些細なしかし不適当答え遮断する:私はどちらも使用することができますfind+のxargsトリックも(のようなその変種findとを-exec私は呼び出しごとにいくつかのような表現を使用する必要があるため)。最後にこれに戻ります。 より良い例として、次のことを考えてみましょう。 $ find -L some/dir -name \*.abc | sort some/dir/1.abc some/dir/2.abc some/dir/a space.abc それらを引数としてどのように渡すのprogramですか? それをするだけではうまくいきません $ ./program $(find -L some/dir -name \*.abc | sort) program次の引数を取得するため失敗します: [0]: ./program [1]: some/dir/1.abc [2]: some/dir/2.abc [3]: some/dir/a [4]: space.abc ご覧のとおり、スペースのあるパスは分割さprogramれており、2つの異なる引数と見なされます。 機能するまで引用する 私のような初心者ユーザーは、そのような問題に直面したときに、最終的に機能するまでランダムに引用符を追加する傾向があります-ここではそれだけでは役に立たないようです… "$(…)" $ ./program "$(find -L some/dir -name \*.abc | sort)" [0]: …

5
コマンドとその出力を貼り付けるためのコマンド
しばしば私はgithubバグに何かを投稿したいです $ ping google.com PING google.com (216.58.195.238): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 ms 今、私は、コマンドを実行し、使用はscreen「S C-a C-[、面積を強調するためenterに貼り付け、そのバッファにコピーしvim、その後、ファイルに書き込むと、catそれにpbcopy。もっと良い方法があるはずです。 teeプレフィックスにa $を付けて入力するコマンドとすべての出力を実行できるコマンドはありpbcopyますか?または何か近い?私は想像します $ demo ping google.com PING google.com (216.58.195.238): 56 data bytes Request timeout for icmp_seq 0 64 bytes from 216.58.195.238: icmp_seq=0 ttl=53 time=1064.747 …


1
cfdiskまたはfdisk?
manのページを読んでいると、fdiskこの興味深いテキストに出くわしました。 周りにはいくつかの* fdiskプログラムがあります。それぞれに問題と長所があります。cfdisk、fdisk、sfdiskの順に試してください。(確かに、cfdiskは、受け入れるパーティションテーブルに厳しい要件があり、高品質のパーティションテーブルを生成する美しいプログラムです。可能な場合はそれを使用してください。fdiskはバグの多いプログラムであり、通常は妥当なものを生成します結果。その単一の利点は、BSDディスクラベルと他の非DOSパーティションテーブルをサポートしていることです。可能であればそれを避けてください。sfdiskはハッカー専用です-ユーザーインターフェイスはひどいですが、fdiskよりも正しいです。 fdiskとcfdiskの両方よりも強力です。さらに、非対話的に使用できます。) オプションの形式が2つのアプリケーションで同じではないことに気づきました。 - melancholy():/$ sudo fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 …

2
オプションの周りに中括弧を使用する場合の規則/標準
Arch LinuxのSYNOPSISセクションのtarのmanページは以下で始まります: tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...] この状況では、manページのさらに下にあるので、中括弧内のオプションの1つを指定する必要があることを完全に理解しています。相互に排他的なオプションのリストの周りに{}を使用することに関して、何らかの標準または規則がありますか? 私が見つけることができるのは、1998年のユーザーのグループチュートリアルだけmanです。 一部のオプションには選択肢の制限されたリストがあります。選択肢のリストはコンマで区切られ、中括弧で囲まれます。 {choice1、choice2} {はい、いいえ} すべての規則(Open Groupのこの規則など)またはマニュアルページは、角かっこ([)または垂直線(|)のみを説明しているようです。

2
ユーザーが実行したいコマンドを実行する前に別のコマンドを実行します
lsツールの元の動作を次のように変更したいとします。 $ ls Hello World file1 file2 ... これどうやってするの? 実行しているときls、私は別のコマンドレットの発言権を実行したいと思いますecho "Hello World!"。 私が目にする簡単な解決策は、エイリアスを使用することです: alias orig_ls="ls" alias ls='echo "Hello World!"' ただし、実行orig_lsすると出力されるため、これは実際のソリューションではありません"Hello World!"。

3
コマンドラインからOsIndications efi変数を書き込む/編集/更新する方法は?
超高速ブート(POST中にキーボードドライバーが読み込まれない)を使用しているときにUEFIファームウェアセットアップユーティリティを起動する必要がある場合は、 "Os Indications" efi変数に書き込みます。私のOSはUbuntu 14.04カーネル3.13.0-35-genericです。 OsIndications 変数はUINT64ビットマスクを返します OsIndicationsSupported 変数はUINT64ビットマスクを返します EFI_OS_INDICATIONS_BOOT_TO_FW_UIファームウェアは、ファームウェアのユーザーインタフェースで停止するOSの要求をサポートしている場合のビットは、ファームウェアによってOsIndicationsSupported変数に設定することができます。 EFI_OS_INDICATIONS_BOOT_TO_FW_UIOSは、次の起動時にファームウェアのユーザー・インターフェースで停止するファームウェアのために望む場合ビットは、OsIndications変数にOSによって設定することができます。 EFI_OS_INDICATIONS_BOOT_TO_FW_UI= 0x0000000000000001- UEFI仕様2.3.1Cのページ312 私のファームウェアには、次回の起動時にファームウェアセットアップユーティリティに入る機能があります。 $ hexdump /sys/firmware/efi/vars/OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c/data 0000000 0001 0000 0000 0000 0000008 私は上の新しい変数を作成することができます/sys/firmware/efi/efivars使用して $ printf\x07\x00\x00\x00\x00" > myvar-12345678-1234-1234-1234-123456789abc ただし、efi変数に書き込むと、次のようなOsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c結果になりますwrite error: Invalid argument。 新しいefivarfsの使用 # printf "x00\x00\x00\x01" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c -bash: printf: write error: Invalid argument # printf "x00\x00\x00\x01" > /sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c …

2
自宅から外部RDS TSGサーバーに接続できません
会社にはRDS(リモートデスクトップサーバー)TSG(ターミナルサービスゲートウェイ)サーバーがあり、従業員が自宅からRDSセッションに接続できるため、自宅から仕事用のRDSデスクトップを見ることができます。 これは、次の設定でWindows 7を使用している自宅のコンピューターで正常に機能します。 ただし、一部のユーザーはLinuxを自宅に持ち、freerdp 1.2.0を使用しようとしています。 次のコマンドを使用して社内LANに接続されたラップトップでこれをテストしましたが、正常に動作します。 $ xfreerdp /f /rfx /cert-ignore /v:farm.company.com /d:company.com /u:administrator /p: ただし、会社のLAN接続(つまり、ホーム接続)を使用していないラップトップでそのコマンドを使用しようとすると、次のようになります。 freerdp_set_last_error 0x2000C Error: protocol security negotiation or connection failure したがって、私はfreerdp 1.2.0の新しいTSGコマンドのいくつかを次のように使用しようとしていますが、これも機能しません。 TSG関連のコマンドは4つしか表示されません。 /g:<gateway>[:port] Gateway Hostname /gu:[<domain>]<user> or <user>[@<domain>] Gateway username /gp:<password> Gateway password /gd:<domain> Gateway domain 私が/g特定のシナリオで本当に使用する必要がある場所を読んだのですが、間違って読んだ可能性があります。 だから私がしようとすると: $ xfreerdp /f /rfx /cert-ignore /v:farm.company.com …

2
すべてのネットワークプリンターの一覧(インストールされていないものを含む)
次のコマンドを使用して、インストール済みのプリンターを簡単に一覧表示できます。 lpstat -a ただし、これには、インストールしていないネットワークプリンターは表示されません。 nmapはLANで開いているすべてのポートをスキャンしますが、生成されるリストはネットワークプリンターに限定されません。 sudo nmap -sT 192.168.0.1-254 以下を実行するコマンドはありますか? 現在接続しているLANを自動的に検出します。 特にLAN全体をスキャンして、ネットワークプリンターを探します。 ホスト名とIPアドレスの両方を提供するネットワークプリンターのリストを作成します。 たとえば、私は今日、Imagistics fx2100プリンターのWebインターフェイスにログインしました。これには、LAN上のすべてのネットワークプリンターを見つけることができる「デバイスの検索」機能がありました(下のスクリーンショットを参照)。同じリストと情報を(スクリプトなしで)達成できるLinuxのコマンドがあるようです:

4
ワインプログラムを透過的に実行する
ワインプログラムを実行したいときは、たとえば $ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe 直接実行することは可能TextAloudMP3ですか?コマンドライン(エイリアスを作成することもできます)だけでなく、グラフィカル環境全体でも同じです。でプログラムを起動していdmenuます。

1
出力のリダイレクトとスペース
私はこれについて妄想的ですが、うまくいけばそれは簡単な質問です: 違いはありますか cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt そして cat file1|egrep -oP "[Mm]y string">/home/user/file.txt つまり、パイプ文字(|)とリダイレクト文字(>)のパディングにスペースがあるかどうかは問題になりますか?私は本当にそこにスペースがあると、私がそれを望まないときに、スペースがどういうわけか出力ファイルに含まれることになることに非常に偏執的です。誰かが明確にできますか?(それが重要な場合はUbuntu 12 / bashを使用します。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.