Unix & Linux

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

2
Zsh配列の最初の要素が0ではなく1でインデックス付けされる理由はありますか?
最近のプログラミングおよびスクリプト言語の経験から、ほとんどのプログラマーは一般に、配列の最初の要素をインデックスとして0で参照することに慣れていると思います。1 を使用することで実質的な利点はありますか? Zsh以外の言語でも、配列と同様に動作することを聞いたことがあると思います。それは同じように便利なので、私は大丈夫です。 ただし、以前にリリースされ、広く使用されているkshやbashなどのシェルスクリプト言語ではすべて0が使用されているため、 なぜこの共通の「標準」を変更することを選択するのでしょうか。 私の質問に対する私の即時の答えは「もちろんそうではない」でしょう。 シェルに対するこの「排他的な機能」に関して私が考えることができる唯一の説明は、「彼らはクールなシェルをもう少し見せるためにこれをやっただけ」だろう。 私はZshやその歴史についてあまり知りませんが、これに関する私の些細な理論が意味をなさない可能性が高いです。 これについての説明はありますか?それとも個人的な趣味から外れているのでしょうか?
27 zsh  history  array 

2
ゾンビは孤児を持つことができますか?孤児たちはゾンビを刈り取ることによって邪魔されますか?
私が理解しているように、ゾンビプロセスは死んでいますが、親(またはinitゾンビ自体が孤児である場合)が終了ステータスを確認するまで、プロセステーブルにプレースホルダーとして存在しています。 そして、孤立プロセスについての私の理解は、それらはまだ生きていて実行されているが、親が死んだプロセスであるということです。 ゾンビはすでに死んでいるので、その子供は孤児とみなされますよね?彼らはゾンビを刈り取って影響を受けますか?具体的にはinit、ゾンビが刈り取られた後にのみ子としてそれらを採用するか、親がゾンビになるとすぐにそれらを採用しますか?

2
ln -sが単一の引数を受け入れる理由
> cd /tmp > ln -s foo > ls -alhF /tmp lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo これはバグlnですか、それともファイルをシンボリックリンクするユースケースはありますか? これはcoreutils 8.21-1ubuntu5.1です。
27 symlink  coreutils  ln 

3
curl sslv3アラートハンドシェイクエラーを修正する方法
次の方法でHTTPS Webサイトをカールしようとしています。 $ curl -v https://thepiratebay.se/ ただし、次のエラーで失敗します。 * About to connect() to thepiratebay.se port 443 (#0) * Trying 173.245.61.146... * connected * Connected to thepiratebay.se (173.245.61.146) port 443 (#0) * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS alert, Server hello (2): * error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure * …
27 command-line  osx  curl  ssl 

6
findの違いは何ですか?見つけて 。-印刷
違いは何ですか: find . そして find . -print -print実際に何をしますか? $ find . . ./hello.txt ./hello ./hello/txt ./hello/hello2 ./hello/hello2/hello3 ./hello/hello2/hello3/txt ./hello/hello2/txt $ find . -print . ./hello.txt ./hello ./hello/txt ./hello/hello2 ./hello/hello2/hello3 ./hello/hello2/hello3/txt ./hello/hello2/txt

2
昨夜ミスをして、意図せずに1800GBのファイルサーバーを削除してしまった
昨日このコマンドを実行し、テストマシンで考えましたが、SSHで接続されたファイルサーバーでした。 sudo rm -rf /tmp/* !(lost+found) 私の端末エミュレーターはKonsoleです。私のシステムはDebian 7です。 質問: このコマンドは、/ tmp内のファイル以外のファイルを削除しましたか?
27 files  filesystems  rm  tmp 

2
`set -eu`を使用する場合のEXITおよびERRトラップの正しい動作
set -e(errexit)、set -u(nounset)とともにERRおよびEXITトラップを使用すると、奇妙な動作が見られます。それらは関連しているように見えるので、それらを1つの質問に入れるのは合理的です。 1)set -uERRトラップをトリガーしません コード: #!/bin/bash trap 'echo "ERR (rc: $?)"' ERR set -u echo ${UNSET_VAR} 予期:ERRトラップが呼び出されます。RC!= 0 実際:ERRトラップは呼び出されません、RC == 1 注:set -e結果は変わりません 2)set -euEXITトラップでの終了コードの使用は1ではなく0です コード: #!/bin/bash trap 'echo "EXIT (rc: $?)"' EXIT set -eu echo ${UNSET_VAR} 予期:EXITトラップが呼び出されます、RC == 1 実際:EXITトラップが呼び出され、RC == 0 注:を使用するset +e場合、RC == 1です。他のコマンドがエラーをスローすると、EXITトラップは適切なRCを返します。 編集:このトピックには、使用されているBashバージョンに関連している可能性があることを示唆する興味深いコメントを含むSO投稿があります。このスニペットをBash 4.3.11でテストすると、RC …

2
Xfceでウィンドウのサイズ変更を簡単にするにはどうすればよいですか?
Xfce 4.10をxfwm4ウィンドウマネージャーとして使用しています。境界線をつかんでウィンドウのサイズを変更するのは難しいと感じています。マウスカーソルが「ウィンドウのサイズ変更」カーソルに変わる領域は、幅が1ピクセルまたは2ピクセルしかないようです。 その領域を少し広くするにはどうすればよいですか?ウィンドウの境界線の外観を変更したくないので、ヒットターゲットを少し広くします。(ウィンドウメニューの[サイズ変更]オプションについては知っていますが、ウィンドウのサイズを1次元だけに変更することはできません。)ウィンドウマネージャーの設定と調整を確認しましたが、その設定は表示されません。適用するようです。

2
sudo:./script.shを実行できません:そのようなファイルまたはディレクトリはありません
私は困惑しています。/homeディレクトリに実行可能なスクリプトがあります: [user@server ~]$ ll total 4 -rwx------ 1 user user 2608 Jul 15 18:23 qa.sh しかし、それを実行しようとすると、sudo見つかりませんと言われます: [user@server ~]$ sudo ./qa.sh [sudo] password for user: sudo: unable to execute ./qa.sh: No such file or directory これは新規ビルドです。問題を引き起こすような変更は行われていません。実際、スクリプトのポイントは、ポリシーに従って実際に構築されるようにすることです。多分それはそうではなくsudo、ビルド中に実際に壊れていますか? またsudo、他のディレクトリで他のコマンドを使用して実行できることにも注意してください。 編集:スクリプト(私はそれを書いていないので/bin/bash、私にそれを書かないでください;)) #! /bin/bash . /root/.bash_profile customer=$1 if [ -z "$customer" ]; then echo "Customer …

2
変数の長さを検証する
変数の読み取りの長さを確認する必要があります(スクリプトの挿入文字数は5文字に制限されています)。次のように考えます。 #!/bin/bash read string check=${#string} echo $check if [ $check -ge 5 ]; then echo "error" ; exit else echo "done" fi より「エレガントな」ソリューションはありますか?
27 bash  shell  string 

1
xdg-openはどのように機能しますか
マニュアルページによると、xdg-openユーザーが設定したアプリケーションを使用してファイルを開きます。しかし、そのアプリケーションは実際にどのように決定されますか?に関連付けられた設定ファイルが表示されないxdg-utilsため、設定はどこに保存され、どのように変更できますか?Wineを使用して簡単なPNGファイルでInternet Explorerを開く方法を見て、これらの設定を変更する必要があります。

3
ラップトップのタッチスクリーンを無効にするにはどうすればよいですか?
私のラップトップにはタッチスクリーンがありますが、これは使用しません。この機能を無効にするにはどうすればよいですか?私はArch Linuxを使用しています。関連するドライバーを削除してみることができると考えました。このページによると、可能なドライバはすべて名前が付けられていxf86-input*ます。ただし、そのようなものは何もインストールされていないようです: # pacman -Qs xf86-input local/xf86-input-evdev 2.8.3-1 (xorg-drivers xorg) X.org evdev input driver local/xf86-input-joystick 1.6.2-3 (xorg-drivers xorg) X.Org Joystick input driver local/xf86-input-keyboard 1.8.0-2 (xorg-drivers xorg) X.Org keyboard input driver local/xf86-input-mouse 1.9.0-2 (xorg-drivers xorg) X.org mouse input driver local/xf86-input-synaptics 1.7.5-1 (xorg-drivers xorg) Synaptics driver for notebook touchpads local/xf86-input-vmmouse 13.0.0-3 (xorg-drivers …

1
SATAはどのような意味でSCSIと「対話」しますか?SCSIとATAの間でどれくらいの量が共有されますか?
これは少なくとも私にとって新しいことではありません。SATAは実際にSCSIと「通信」するため、これらのSATAデバイスがLinuxでSCSIデバイスとして表示されるのはなぜですか。 関連する質問が以前に尋ねられました。たとえば、/ proc / scsi / scsiの下にSATAデバイスが表示されるのはなぜですか? ただし、これまでに説明したところで言及しなかったのは、SATAがSCSIとどのような意味で、どのように異なるかということです。 互換性のあるケーブルを共有していないため、物理層で異なることは当然と考えられます。 しかし、スタックの上位はどうでしょうか?Linuxは、SATAおよびSCSIサブシステムへの単なるSCSIとしての最新のカーネル上のIDEディスクを表すことを認識しています。しかし、バスで使用される実際のプロトコルはどうでしょうか? ATAPIはSCSIのカプセル化であることも知っていますが、通常のATAはどうですか?NCQ、FUA、DPOなどのSCSIの機能(間違って覚えていない場合)がSCSIから採用されていることに気付きました。しかし、実際にどのくらいのSCSIコマンドセットが共有されているか、類似しているのかは不明です。 ATA仕様の最新のSATAデバイスは、SCSIコマンドセットのサブセットを実装していますが、カプセル化されています(ATAPIのように)。同じセット?スーパーセット?または、選択された機能のみが直接同一ではないバリアントとして実装されているのでしょうか? これに関する明確な情報、特にLinuxカーネルとの関係はどこで見つけることができますか?ドライバー開発のためのある種のチュートリアルはいいでしょうが、すべての詳細を完全にスキップしない概要だけでも十分でしょう。私は実際の仕様を読むことができることを知っていますが、それもまた非常に詳細であり、あなたが本当に探しているものを見つけるのは難しく、私やおそらく一時的な意味で他のほとんどのユーザーにとっては現実的ではありません。

6
Bashスクリプトを使用して複数のファイルの名前を変更する
Bashスクリプトを使用して、同じディレクトリ内の複数のファイルの名前を変更したい。ファイルの名前は次のとおりです。 file2602201409853.p file0901201437404.p file0901201438761.p file1003201410069.p file2602201410180.p 次の形式に名前を変更したい: file2503201409853.p file2503201437404.p file2503201438761.p file2503201410069.p file2503201410180.p 私はrenameコマンドについて読んでいて、このようにしようとしましたが、何もしません。構文について質問があると思います。次に、次のようにmvコマンドを使用してループを作成できることを読みました。 for file in cmpsms*2014*.p; do mv "$file" "${file/cmpsms*2014*.p/cmpsms25032014*.p}" done しかし、ファイルの名前を変更することはできません。何が間違っていますか?
27 bash  rename 

3
再起動はいつ必要ですか?
カーネルのアップグレードとは別に、Linuxシステムに再起動が必要な変更がありますか?再起動により状況が簡単になる状況はありますが、再起動しない限り達成できない状況はありますか? 明確にするために:ハードウェアの誤動作に悩まされていない典型的なデスクトップまたはサーバーシステムを考えています。
27 linux  reboot 

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