Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A


2
「ルート」アカウントの起源
ルートアカウントの起源は何ですか?それはどこから来たのですか、とにかくルートと呼ばれるのはなぜですか? (元はTwitterの@lizztheblizzからの質問です。)
53 history  root 

7
モニターが接続されているか、接続されていないかを検出するにはどうすればよいですか?
私のラップトップのDisplayPortに外部モニターをプラグインまたはアウトするときにトリガーされるイベントはありますか?ACPIDとUDEVはまったく反応しません。 Intelチップのオンボードグラフィックスを使用しています。ここでは、すでに数年古い同様の議論があります。 ポーリングを使用したくありませんが、ディスプレイが接続されているかどうかに応じてディスプレイ設定を自動的に設定する構成が必要です。

7
シェルスクリプトでのタイムアウト
私が持っているシェルスクリプトだ標準入力からの読み込みを。まれに、入力の準備ができている人がいないため、スクリプトがタイムアウトする必要があります。タイムアウトの場合、スクリプトは何らかのクリーンアップコードを実行する必要があります。それを行う最良の方法は何ですか? このスクリプトは、Cコンパイラを使用しない20世紀のUNIXシステムやbusyboxを実行する組み込みデバイスなど、非常に移植性が高い必要があります。そのため、Perl、bash、コンパイル済み言語、およびPOSIX.2全体にさえ依存できません。特に、$PPID、read -t、完全にPOSIX準拠のトラップは使用できません。一時ファイルへの書き込みも除外されます。すべてのファイルシステムが読み取り専用でマウントされている場合でも、スクリプトが実行される場合があります。 物事をさらに難しくするために、タイムアウトにならないときにスクリプトを適度に高速にすることも必要です。特に、forkとexecが特に低いWindows(主にCygwin)でスクリプトを使用するため、使用を最小限に抑えたいと思います。 一言で言えば、私は持っています trap cleanup 1 2 3 15 foo=`cat` タイムアウトを追加したいです。私は置き換えることはできませんcatでread内蔵しています。タイムアウトの場合、cleanup関数を実行したいです。 背景:このスクリプトは、いくつかの8ビット文字を出力し、前後のカーソル位置を比較することにより、端末のエンコーディングを推測しています。スクリプトの最初は、stdoutがサポートされている端末に接続されていることをテストしますが、環境が嘘をついている場合があります(たとえば、で呼び出されてもplink設定されますTERM=xtermTERM=dumb)。スクリプトの関連部分は次のようになります。 text='Éé' # UTF-8; shows up as Ãé on a latin1 terminal csi='␛['; dsr_cpr="${csi}6n"; dsr_ok="${csi}5n" # ␛ is an escape character stty_save=`stty -g` cleanup () { stty "$stty_save"; } trap 'cleanup; exit 120' 0 1 2 3 …
53 shell  signals  timeout 

9
外付けハードドライブへの簡単な増分バックアップ
しばらくの間、私はDirvishを使用してマシンの増分バックアップを行いましたが、構成するのは少し面倒です。構成のコピーを持っていない場合、他の場所で再現するのは困難です。 Unix、Linux用のバックアッププログラムを探しています。 バックアップを段階的に更新する dirvishがハードリンクを使用して(スペースを節約するために)行ったような「ミラー」ツリーを作成する 理想的なまともなUI
53 linux  backup  bsd 

10
明示的にインストールされたパッケージをリストする
Gentooには、/var/lib/portage/world明示的にインストールしたパッケージを含むファイルがあります。明示的に言うと、デフォルトでインストールされたり、依存関係によって取り込まれたりするものを含めずに、選択したパッケージです。 Ubuntuでその情報を見つけるための同様のファイルまたはコマンドはありますか?

1
CentOSにのみPostgreSQLクライアント(psql)をインストールします
簡単な質問ですが、これに関するリソースは見つかりませんでした。psql完全なPostgreSQLサーバーをインストールせずに、CentOS7システムに、ターミナルベースのPostgreSQLクライアントのみをインストールする方法はありますか?リポジトリには専用のpostgresql-client、postgresql94-clientまたはそれに類するものはありません。

4
$ HOME以外のディレクトリですべてのシェルセッションを開始するにはどうすればよいですか?
Ubuntuで非ログインシェルを開くと、現在の作業ディレクトリは/home/user_name(私の$HOME環境変数)ですが、これを変更して、ターミナルを起動したときに他のディレクトリに移動するようにします。 Ubuntuで端末を起動すると、.bashrcファイルが取得されることを読みました。だから私は追加しました export HOME=/home/user_name/Documents 私の.bashrcファイルに。これで、ターミナルを開いたとき、まだ/home/user_nameディレクトリにいます。 これを変更するにはどうすればよいですか?


3
httpダウンロードでワイルドカードを使用したwget
wgetを使用してファイルをダウンロードする必要がありますが、ファイル名が正確にはわかりません。 https://foo/bar.1234.tar.gz manページによると、wgetを使用すると、ftpサイトを扱うときにグロビングをオフまたはオンにすることができますが、http URLがあります。 wgetの使用中にワイルドカードを使用するにはどうすればよいですか?私はgnu wgetを使用しています。 私が試したもの。 /usr/local/bin/wget -r "https://foo/bar.*.tar.gz" -P /tmp 更新 -Aを使用すると、サーバー上の.tar.gzで終わるすべてのファイルがダウンロードされます。 /usr/local/bin/wget -r "https://foo/" -P /tmp -A "bar.*.tar.gz" 更新 答えから、これは最終的に機能した構文です。 /usr/local/bin/wget -r -l1 -np "https://foo" -P /tmp -A "bar*.tar.gz"
53 wget 

2
xargsを最初のパラメーターとして渡す
私はこの動作を生成しようとしています: grep 192.168.1 *.txt Xargsを介して文字列をgrepに渡しますが、最初のパラメーターとしてではなく、最後に進みます。 echo 192.168.1 | xargs grep *.txt xargs(または同様のもの)に、入力文字列を末尾ではなく「grep」と「*」の間に置くように指示する必要があります。 どうすればいいですか?
53 xargs 

3
sshfsマウント、sudoが許可を拒否
sshfsいくつかのpythonプロジェクトを含むフォルダーをssh経由で~/ディレクトリにマウントするために使用しています。 $ mkdir -p ~/mount/my-projects $ sshfs user@example.com:/home/user/my-projects ~/mount/my-projects 期待どおりにほとんどのコマンドを実行できます。 $ ls ~/mount/my-projects some-python-project しかしsudo、で何かを行おうとすると、許可が拒否されて失敗します: $ sudo ls ~/mount/my-projects ls: cannot access /home/user/mount/my-projects: Permission denied 私が実際に達成しようとしているのは、ローカルマシンでpythonパッケージのインストールスクリプトをテストすることです。 $ cd ~/mount/my-projects/some-python-project $ sudo python setup.py install
53 ssh  sudo  sshfs 

3
bashスクリプトからtmuxセッションに入っているかどうかを確認するにはどうすればよいですか?
私は自分bash_profileをgitリポジトリに保持し、シェルにアクセスできるあらゆるマシンにクローンを作成するのが好きです。私はtmuxほとんどのuser@host場合、シェルプロンプトの従来の場所ではなく、ステータス行に文字列があります。 tmuxただし、使用するすべてのサイトがインストールされているわけではありません。または、常に使用しているとは限りません。tmuxセッション中でないときを検出し、それに応じてプロンプトを調整したいと思います。これまでのところ、私の中途半端なソリューションは.bash_profile次のようになります。 _display_host_unless_in_tmux_session() { # ??? } export PROMPT_COMMAND='PS1=$(_display_host_unless_in_tmux_session)${REST_OF_PROMPT}' (おそらく毎回チェックすることはおそらく最善のアプローチではないので、これを行うためのより良い方法について提案を受け入れています。Bashスクリプトは私の得意ではありません。)
53 bash  prompt  tmux 

6
ファイルシステム全体でテキストを検索する方法は?
grepツールを使用する必要があると仮定すると、ファイルシステム全体でテキスト文字列「800x600」を検索したいと思います。 私は試した: grep -r 800x600 / しかし、それは機能しません。 私のコマンドがすべきだと思うことは、テキスト「800x600」のルートの下にあるすべてのファイル/フォルダーを再帰的にgrepし、検索結果を一覧表示することです。 何が間違っていますか?
53 grep  recursive 

9
/ home以外のものを別のパーティションに配置するのはなぜですか?
だから、最近のDebian 5.0.5インストーラは別の持っているように私に提供し/usr、/home、/varと/tmp(1枚の物理ディスク上の)パーティションを。 これの実際的な理由は何ですか?/homeユーザーファイルを個別に暗号化できるため、別のパーティションに配置するのが有利な場合があることを理解していますが、それ以外の理由は何ですか?
53 linux  partition 

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