Unix & Linux

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

5
順序を維持しながら隣接する重複行を削除する
それぞれが何回も繰り返される名前が1列のファイルがあります。同じ名前の他の繰り返しに隣接していない同じ名前の他の繰り返しを維持しながら、各繰り返しを1つに圧縮したい。 例えば、私は左側を右側に向けたいです: Golgb1 Golgb1 Golgb1 Akna Golgb1 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna Akna Spata20 Spata20 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna これは私が使用してきたものです。perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt ただし、この方法では左から1つの代表のみが保持されます(つまり、Golb1とAknaは繰り返されません)。 複数の隣接しないブロックで繰り返される名前を維持しながら、各ブロックの一意の名前を維持する方法はありますか?
11 awk  sed  sort  uniq 

3
シェルスクリプト:内部にオプションがある変数を作成する
次のパラメーターを指定したrsyncコマンドがあります。 rsync -avz --{partial,stats,delete,exclude=".*"} そのパラメーターを変数内に配置して、スクリプトで後で再利用したいと考えています。このようなもの: #!/bin/bash VAR=rsync -avz --{partial,stats,delete,exclude=".*"} $VAR /dir1 /dir2 引用符、単一引用符、角かっこで試したが、成功しなかった。

1
ユーザーサービスを有効にできません。「D-Bus接続の取得に失敗しました:接続が拒否されました」サポート
ユーザーとしてsystemdコマンドを実行すると、このエラーが発生します。 admin@Xroklaus:~ $ systemctl --user list-units Failed to get D-Bus connection: Connection refused ユーザーパラメータがない場合、コマンドは正常に実行されます。 admin@Xroklaus:~ $ systemctl list-units UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0-rfkill1.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/rfkil sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0 ... To show all installed …

1
LinuxでPing応答(ICMPエコー)を常に無効にする方法は?
Ubuntuオペレーティングシステムでping応答を常に無効にしたいのですが、次のコマンドはシステムが再起動するまでしか機能しません。 Ping off: echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all Ping on: echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all ラップトップを再起動した後でも、エコーをオフのままにするにはどうすればよいですか?
11 ping  icmp 

6
改行で終わらないかもしれない行指向のファイルを読む
/tmp/urlFile各行がURLを表すという名前のファイルがあります。次のようにファイルから読み取ろうとしています: cat "/tmp/urlFile" | while read url do echo $url done 最後の行が改行文字で終わっていない場合、その行は読み取られません。なんでかしら? 新しい行で終わるかどうかに関係なく、すべての行を読み取ることはできますか?

1
tty出力を持つ変数コマンドでstdinとstdoutをパイプするとき、zshは端末に入力できません
システム情報: macOS Sierra 10.12.6 zsh 5.4.2 (x86_64-apple-darwin16.7.0) GNU bash, version 4.4.12(1)-release (x86_64-apple-darwin16.3.0) 私が作成した簡単な例を詳しく知りたい場合は、一番下の「例」までスクロールしてください。 注:私は大したzshユーザーではありません。 私は見ていたfzfためにキーバインドbashとzsh。 どちらも変数コマンドを実行する方法に注意してください$(__fzfcmd)。__fzfcmdデフォルトでfzfはstdoutに出力し、パラメーター置換fzfは出力から得られたコマンド()を実行するだけです。 間の一つの違いbashとzshスクリプトがあることbashつの更なるパイプの出力は$(__fzfcmd)なく、zsh単に配列の内部に取り込みます。私の推測では、入力できない場所zshの出力をさらにパイプfzfするfzfと、パイプされたプロセスがfzfstdinを取得できないという問題が発生したためです。あなたの唯一の選択は、^Zまたは^Cです。^Cなんらかの理由でプロセスの背景になっているようです。または、多分彼らはそれを実行zle vi-fetch-historyすることができるように配列でそれを望んだだけです。bashバージョンは、との結合キーにいくつかの魔法を行います"\e^": history-expand-line 今fzfは重要ではありません。ttyこの問題を発生させるには、パラメータ置換によって呼び出されるに出力するプログラムが必要なだけのようです。そこで、いくつかの簡単な例を示します。 でttyこの問題を引き起こす可能性のあるに出力される他のいくつかのコマンドを次に示しますzsh。 vipe(パイプの途中でエディターを実行) 'vim -' (vimをstdinから読み取ります。vipeと同様ですが、stdoutに出力されません) 以下の例で、個別にインストールしたくない場合は、vipeをすべてで置き換えてvim -ください。ただ、それは覚えているvim -ような標準出力に出力し、エディタの内容をしませんvipeありません。 例: 1) echo 1 | vipe | cat # works in both bash and zsh 2) echo 1 | $(echo vipe) | …
11 bash  zsh  pipe  tty 

7
共有ライブラリのロード中にエラーが発生しました:libicuuc.so.59:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません
で更新した後pacman -Syuq: #pacman -Sc pacman:共有ライブラリの読み込み中にエラーが発生しました:libicuuc.so.59:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません # find / -name libicuuc.so.* 2>/dev/null /usr/lib/libicuuc.so.60.1 /usr/lib/libicuuc.so.60 Piバージョン1のArch Linux: # uname -an 4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
11 pacman  arch-arm 

3
whoisを実行するときにLinuxは誰に尋ねますか?
あなたがするとき: $ whois stackoverflow.com Linuxは最初にDNSクエリを実行し、stackoverflow.comのIPを検索して、そこに直接情報を要求しますか? または、「ルート」whoisサーバー(Linuxディストリビューションで「ルートwhoisサーバー」のIPは、同様の方法でハードコーディングされてい/etc/bind/db.rootますか)を要求しますか? 接続フローとは何ですか? my computer doing `whois ...` ---> root whois server ---> another whois server ---> information または my computer doing `whois ...` ---> DNS server (?) ---> ... ?
11 dns  whois 

4
画像の名前をexif時間に変更:固有のファイル名を作成
exivで画像の名前をexif日時に変更した場合、次のようにします。 find . -iname \*jpg -exec exiv2 -v -t -r '%Y_%m_%d__%H_%M_%S' rename {} \; これで、写真のタイムスタンプがまったく同じになる場合があります(秒を含む)。ファイル名を自動的に一意にするにはどうすればよいですか? 同じディレクトリ構造で再度実行した場合(おそらく新しい画像を追加した後)、既に名前が変更された画像は変更されず、既存のファイル名を持つ画像が追加された場合、新しいファイル名は一意になるという意味で、コマンドは安定している必要があります。同様に。 私の最初の試みは、結果のファイル名に元のベース名を残すことだけでしたが、その場合、コマンドは上記の意味で安定しません。


3
なぜGDBは実行可能ファイルとコアダンプを必要とするのですか?
私はコアダンプを使用してデバッグしています。gdbでは、コアダンプだけでなく実行可能ファイルも指定する必要があることに注意してください。どうしてこれなの?コアダンプにプロセスが使用するすべてのメモリが含まれている場合、実行可能ファイルはコアダンプに含まれていませんか?おそらく、exe全体がメモリに読み込まれる保証はありません(個々の実行可能ファイルは通常それほど大きくありません)。あるいは、コアダンプに関連するすべてのメモリが含まれていないのでしょうか。シンボル用ですか(おそらく、通常はメモリに読み込まれていません)?
11 core-dump  gdb 

2
BashスクリプトでSIGHUPが表示されませんか?
次のスクリプトがあります。 #!/bin/bash echo "We are $$" trap "echo HUP" SIGHUP cat # wait indefinitely SIGHUP(を使用してkill -HUP pid)送信しても何も起こりません。 スクリプトを少し変更すると: #!/bin/bash echo "We are $$" trap "kill -- -$BASHPID" EXIT # add this trap "echo HUP" SIGHUP cat # wait indefinitely ...スクリプトがecho HUP終了すると、(Ctrl + Cを押すと)スクリプトが正しく動作します。 roger@roger-pc:~ $ ./hupper.sh We are 6233 ^CHUP …
11 bash  signals 

3
$ HOME / bin dirが$ PATHにありません
私~/.profileには次のbin/ directoryように私の個人をロードする最後のブロックがあります: # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi しかし、ロードされていないようです: echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games なぜこれが機能しないのですか?(私の殻はbashです。) ティガーの編集 echo $0 => bash echo $HOME => /home/student whoami => student less /etc/*-release => PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" …

1
依存関係がアップグレードされたときにsystemdサービスを再起動する方法
Postgresデータベースを使用するプログラムを作成し、そのためのsystemdサービスファイルを作成しました。現在、私のサービスは起動時に正常に開始され、Postgresがアップグレードのために停止されると(によりapt upgrade)停止されます。ただし、アップグレードが完了してPostgresが再び起動すると、サービスが自動的に開始されません。 いくつかの依存関係を定義して、サービスを自動的に再開することはできますか? これは、Postgresのアップグレード中に自動的に停止された後の私のサービスのステータスです。 ● tabill.service - My service Loaded: loaded (/srv/tabill/tabill.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2017-07-04 00:29:24 EEST; 44min ago Main PID: 1048 (code=killed, signal=TERM) サービスを手動で再開することもできます。 これが私のサービスファイルです: [Unit] Description=My service Wants=nginx.service Requires=postgresql.service After=postgresql.service [Service] Type=simple ExecStart=/srv/tabill/app/serve Restart=always TimeoutSec=60 [Install] WantedBy=multi-user.target 私はとを追加してPartOf=postgresql.serviceからBindsTo=postgresql.service手動でPostgresを停止して起動しようとしましたが、どちらも役に立ちませんでした。 もちろん、を削除するRequiresこともできますが、両方が再開する場合は、両方のサービスを一緒に停止することをお勧めします。

3
Debian 9ストレッチにzfsをインストールする
debian 9.1にzfsをインストールしようとしましたが、いくつかエラーが発生しています。 私の最初のインストールはzfs-dkmsだけでしたが、zfs-dkmsを実行するにはspl-dkmsも必要であることをネットで読みました。 私の手順は、次のようにnon-freeを追加して私のsources.listを変更することでした。 /etc/apt/sources.list deb http://ftp.nl.debian.org/debian/ stretch main contrib non-free deb-src http://ftp.nl.debian.org/debian/ stretch main contrib non-free deb http://security.debian.org/debian-security stretch/updates main contrib non-free deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free # stretch-updates, previously known as 'volatile' deb http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free deb-src http://ftp.nl.debian.org/debian/ stretch-updates main contrib non-free 従来のapt-get更新を実行してから、以下を使用してzfsをインストールしてみました。 apt-get install …
11 debian  apt  zfs 

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