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

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

6
さまざまなLinuxディストリビューションを理解する
LinuxベースのOSを理解するときに少し混乱しています。MintとUbuntuの最新バージョンをダウンロードすると、コア(カーネル)で「同じ」ではありませんか?彼らは異なるGUIを持っているように見えるだけですか?GUIは技術的にはコンピュータの起動時に実行されるプログラムだけではないのですか?Windowsと同じです(dosがコアですが、explorer.exeがguiです)。これを説明できる人はいますか? sudo apt-getコマンドを使用すると、ミントターミナルからUbuntuをインストールできませんか? これはめちゃくちゃな質問であることはわかっていますが、GUIが表示される前とGUIが表示された後に、誰かが複数のディストリビューションの違いを明確にできることを願っています。

4
「ファイルに出力」とは何ですか?コマンドラインから使用できますか?
Gnome印刷ダイアログ(cups-pdfではない)で[ファイルに印刷]を選択すると、次のようになります。 ...実際に実行されるコマンドは何ですか?(画像のように、私はpostscriptバリアントに興味があります) 一方、コマンドコールはないかもしれません。多分それがあるgtk_print_operation_set_export_filenameから新しいのGtk +印刷API? いずれにせよ-コマンドラインからこの特定のコードを利用する方法はありpdf2psますか?たとえば、lpr上のダイアログを使用しているかのように、ポストスクリプトファイルに「ファイルに出力」することで、

2
入力文字列のUnicodeグリフ名を印刷する方法は?
走れるようになりたい unicode-names 'abç' 対応するUnicode文字名を確認します。 LATIN SMALL LETTER A LATIN SMALL LETTER B LATIN SMALL LETTER C WITH CEDILLA 文字列を一連のUnicodeグリフ名として印刷すると、いくつかの場合に役立ちます。 「i」や「í」などの混乱しやすい文字を区別します。 リテラル文字列が実際に何を含んでいるかを説明します(たとえば、印刷不可または割り当てられていない、ゼロ幅の文字)。


3
「tab complete」によって表示されたコマンドのリストをパイプ処理する方法は?
bashでコマンドを使用するとき、使用可能なコマンドを表示するためのダブルタブオプションが好きです。一部のコマンドは、他のコマンドよりも一致する可能性が高くなります。 タブ補完のスクリーンショットhttp://img13.imageshack.us/img13/5541/picturemhy.jpg ダブルタブの出力をパイプラインでsomwehereに送る方法はありますgrepか?関連する投稿を見つけましたが、それを実装してgrepにパイプする方法がわかりません。

4
受信者に応じて動作が異なるlsコマンド
のようなコマンドlsはどのようにその標準出力が何であるかを知っていますか? lsターゲットstdoutが何であるかによって動作が異なるようです。たとえば、私が行う場合: ls /home/matt/tmp 結果は次のとおりです。 a.txt b.txt c.txt しかし私がするなら ls /home/matt/tmp | cat 結果は次のとおりです(つまり、結果ごとの改行): a.txt b.txt c.txt プロセスには、標準出力用のファイル記述子1が渡されますか?結果のフォーマット方法をどのように決定しますか?ファイル記述子は情報を明らかにしますか?

2
chshコマンドでシェルを変更できないのはなぜですか?
このコマンド:chshは説明したように動作しないため、少なくとも新しいコマンドを学びました。 次のように機能すると説明されています。 cat /etc/shells 知っておくべきことは、どのシェルがインストールされているかを知るためです。 echo $SHELLあなたが使用しているシェルを知るために行います。 シェルの1つを選択して入力 chsh -s /path/to/shell パスワードを入力echo $SHELLし、新しいシェルにいることを確認します。 これを実行しましたが、パスワードの入力時にエラーメッセージは表示されませんでしたが、同じシェルにいました。 % echo $SHELL /bin/bash % cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash % chsh -s /bin/sh Password: % echo $SHELL /bin/bash

3
grep:入力ファイル「X」も出力です
を使用してubuntu 14.4、grepコマンドの出力をファイルにリダイレクトしようとしましたが、このエラーが発生し続けます。 grep: input file 'X' is also the output 私はこの問題を検索しましたが、それがバグでubuntu 12.4あり、何も説明されていないことがわかりました。誰かがこの問題を理解するのを手伝ってくれませんか? 次のコマンドを実行します。 grep -E -r -o -n r"%}(.*){%" > myfile

4
すべてのsshコマンドのローカルのタイムスタンプ付きロギング?
どのように私は私が使用するすべてのリモートコマンドのローカル、タイムスタンプを記録しておくことができますssh(コマンドラインOpenSSHクライアントを経由開始しますかbash)? 要件: 必須: サーバーのログ記録に依存しない100%クライアント側 ログはユーザーのホームディレクトリに保存され、ユーザーごとに構成またはインストールされます。 さまざまなユーザーやホストとの複数の同時セッションを区別するためのサポート。 非侵入型(毎回アクティブにする必要はなく、sshの使用を大幅に妨害しません) 高優先度: 出力はログに記録されないか、可能な限り除外されません。 パスワードエントリがログに記録されていないか、ファイルが暗号化されています 使用された実際のコマンドを示します(タブ/履歴の完了、バックスペース、CTRL+ Cなど...が処理された後) あった方がよい: 連鎖セッションのコマンドも記録します(リモートsshまたはsu <user>セッション中に入力されたコマンド) セッションの開始と終了をログに記録する必要があります 単純なbashベースの非ルートソリューションが最適です(おそらく、コマンドのaliasまたはbashラッパースクリプトsshですか?) 私のスキルレベル: 私はプログラミングに不慣れですが、まだbash「Linuxのやり方」を学んでいるので、簡単な説明のあるコードサンプルをいただければ幸いです。 可能な戦略 キーロガー -問題:パスワードをログに記録し、タブや履歴の完了をログに記録しない(glennの回答を参照) screen1秒に1回、およびdiffそれらの間にスクロールバックダンプを行い、新しいスクロールバック行を見つける -問題:これを便利な自動化された方法で実装するにはどうすればよいですか? ssh "$@" | tee >(some_cleaner_function >> $logfile) -問題:連鎖セッションで複数行のコマンドまたは履歴を処理できない、慎重なクリーンアップが必要(私の回答を参照) 上記のいくつかの組み合わせ 例 次のSSHセッション: user@local:~$ ssh user@remote Last login: Tue Jun 17 16:34:23 2014 from local user@remote:~$ cd test …

3
exec関数でファイル名を2回渡す必要があるのはなぜですか?
StevensによるUNIX環境での高度なプログラミングの第 8 章を読みました。6つのexec関数をすべて読んで理解しました。 私が気づくのは、すべてのexec関数で: 最初の引数はファイル名/パス名です(exec関数によって異なります)。 2番目の引数はmain()、取得するargv [0]です。これは、ファイル名自体です。 したがって、ここでは関数でファイル名を2回渡す必要があります。 それには理由がありますか(最初の引数からパス名からファイル名を取得できないなど)?

3
特定のファイルタイプに対してのみdiff -r
2つのディレクトリの再帰的な差分を実行できますが、特定のファイル名またはファイルタイプの述語に一致するファイルを(それぞれの場所で)のみ比較できる方法はありますか? 例えば私は何かをしたいのですが diff -r dir-a dir-b -filenames *.java, ivy.xml, build.xml ...またはそれ以上: diff -r dir-a dir-b -filetype text 明らかに、使用には必須ではありませんdiff私は呪文を仮定として、findそして-exec diff(私は後者の場合に補完的なファイルパスを生成する方法がわからない)も、トリックを行う可能性があります。

3
/ dev / random、/ dev / urandomを使用してランダムデータを生成する
コマンドラインから/dev/random(または/dev/urandom)を使用する方法を探しています。特に、stdin乱数のストリームをstdout(1行に1つずつ)書き込むようなストリームの使い方を知りたいのです。 マシンのアーキテクチャがネイティブでサポートしているすべての数値型の乱数に興味があります。たとえば、64ビットアーキテクチャの場合、これらには64ビットの符号付き整数と符号なし整数、および64ビット浮動小数点数が含まれます。範囲に関する限り、さまざまな数値タイプの最大範囲で十分です。 Perl、Pythonなどの多目的インタープリターでこれをすべて行う方法を知っていますが、シェルからの「より単純な」ツールでこれを行う方法を知りたいのです。(「より単純」とは、「非常に最小限のUnixインストールでも利用できる可能性が高い」という意味です。) 基本的に、この問題により、コマンドラインでバイナリデータを文字列表現に変換する問題が軽減されます。(たとえば、これは機能しませんprintf '%f\n' $(head -c8 /dev/random)。) シェルにとらわれない答えを探しています。また、間の違い/dev/randomとは、/dev/urandomこの質問のために重要ではありません。結果のセマンティクスが異なる場合でも、1つの手順で機能する手順が他の手順でも機能することを期待しています。 EightBitTonyの答えをtoints以下の関数などに変換しました。 使用例: % < /dev/urandom toprobs -n 5 0.237616281778928 0.85578479125532 0.0330049682019756 0.798812391655243 0.138499033902422 備考: hexdump代わりに使用しodているのは、希望どおりに出力をフォーマットする簡単な方法が得られたからです。 厄介なことに、hexdump64ビット整数(wtf ???)はサポートされていません。 関数のインターフェイスは機能する必要があります(たとえば、それら-n5も受け入れる必要があります-n 5)が、私のかわいそうなシェルプログラミングスキルを考えると、これは私がすばやくまとめることができる最高のものでした。(コメント/改善はいつものように歓迎します。) この演習で得た大きな驚きは、シェルで最も基本的な数値をプログラムするのがどれほど難しいかを発見することでした(たとえば、16進数の浮動小数点数を読み取る、または最大のネイティブ浮動小数点数を取得する)... _tonums () { local FUNCTION_NAME=$1 BYTES=$2 CODE=$3 shift 3 local USAGE="Usage: $FUNCTION_NAME [-n <INTEGER>] [FILE...]" local -a PREFIX case $1 in …

2
終了したバックグラウンドジョブステータスの「Exit 2」とは何ですか?
私はファイルにいくつかのデータ(いくつかのディレクトリからの* conf)を入れる演習を行っており、これをバックグラウンドで行う必要があります。私はそれをしました、そして私は出力メッセージの意味が何であるか疑問に思っています: [A@localhost tests]$ ls -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 & Enterはこの行を上昇させます: [1] 2533 どういう意味ですか?他のEnterの後に、別のメッセージが表示されます [A@localhost tests]$ [1]+ Exit 2 ls --color=auto -ld /etc/*conf /usr/*conf > test1_6_conf.txt 2>&1 どういう意味ですか?「2番出口」とは? チェック結果を入力してください-問題はないようです。 [A@localhost tests]$ [A@localhost tests]$ ls -l test1_6_conf.txt -rw-rw-r--. 1 A A 2641 Nov 22 14:19 test1_6_conf.txt [A@localhost tests]$ CentOS …

2
入力の最初のN行を削除するコマンド
バックグラウンド SSHサーバーを実行しており、このユーザーを削除する必要があります。このユーザーは、最初に強制終了する必要のあるいくつかのプロセスを現在実行しているため、削除できません。 これは、現在使用しているユーザーのすべてのプロセスIDを見つけるために現在使用しているパイプラインです。 ps -u user | awk '{print $1;}' 出力は次のようになります。 PID 2121 2122 2124 2125 2369 2370 これをパイプkill -9してすべてのプロセスを強制終了し、次のようにこの愚かなユーザーを削除できます。 ps -u user | awk '{print $1;}' | sudo xargs kill -9 しかし、これはPIDヘッダーのために機能しません: kill: failed to parse argument: 'PID' 質問 入力の最初の行を削除するには、単純なUnixコマンドが必要だと考えています。 tailこれに使用できることは承知していますが、表示する行数を正確に把握するために、入力に含まれる行数をカウントしたくありません。 headまたはtail逆のようなものを探しています(ストリームの最初/最後の部分のみを表示する代わりに、ストリームの開始/終了以外のすべてを表示します)。 注意 コマンドの| grep [[:digit:]]後に追加するだけでこの問題を解決できましたawkが、他のシナリオでは非常に役立つと思うので、ファイルの最初の行を削除する方法を探しています。
11 command-line  sed  awk  tail  head 


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