Unix & Linux

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


1
グロブを使用してforループで './'を指定することに利点はありますか?
で./*.fastq終わるファイルを検索するときに使用した方が安全なのではないかという印象を受けました.fastq。たとえば./、ファイルのキャプチャを防止します.fastq。次の例に示すように、これは明らかに間違っています。 TMP_DIR=$(mktemp --directory) mkdir -p ${TMP_DIR} (cd ${TMP_DIR} touch {a,b,c,}.fastq ls -a echo "" echo "# match all:" for f in *.fastq ; do echo "${f}" done echo "" echo "# with ./:" for f in ./*.fastq ; do echo "${f}" done ) rm -rf ${TMP_DIR} . .. a.fastq b.fastq …
10 bash  shell  wildcards 

2
十分なメモリがあるのになぜ「スワップオフ」できないのですか?
私のシステムには多くのメモリがあるにもかかわらず、最近気づきました。 # free -m total used free shared buffers cached Mem: 15965 9680 6284 35 1754 2560 -/+ buffers/cache: 5365 10599 Swap: 2047 258 1789 swapoff -a2Gスワップファイルではできません -rw-r----- 1 root root 2.0G Feb 9 21:34 /2GB.swap 次のカーネルパラメータを変更しましたが、sysctlそれが原因であるはずです。 vm.swappiness = 5 vm.vfs_cache_pressure = 200 理由: # swapoff -a swapoff: /2GB.swap: swapoff …
10 linux  memory  swap 

1
コマンドプロンプトの(arg:n)はどういう意味ですか?
CodecademyのコマンドラインコースAlt+Shift+#で、コマンドプロンプトでキーボードショートカット(現在の行にコメントを付けることになっている)を使用しようとすると、行の先頭にダッシュを追加する代わりに、プロンプトをから$に切り替えます(arg: 3)。代わりAlt+Shift+@に表示さ(arg: 2)れます。以下のスクリーンショットの最後の行を参照してください。私がヒットAlt+Shift+#する前にそれはちょうどだった$。 ショートカットは私のマシンで正常に動作します。 これは何(arg: n)ですか? キーボードショートカットはどのように機能しますか?キーボード・レイアウト?OSディストリビューション?端末エミュレータ?デフォルトのCLI?何?

2
コマンドでエイリアスを作成する方法には、「と」が含まれています
いくつかの投稿前に、誰かがメモリをパーセンテージで表示する方法を尋ねました。誰かが返信しました: free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }' このコマンドを〜/ .bashrcのエイリアスに変換できるかどうか疑問に思っていました。しかし、エイリアスの構文は次のとおりです。 alias aliasname='command' これどうやってするの?このコマンドには、'との両方が含まれています"。別の方法を試しましたが、うまくいきませんでした。これは可能ですか?何か不足していますか?
10 bash  quoting  alias 

1
FreeBSDがwマスクを失ったのに、Debianはそれを保持したのはなぜですか?
FreeBSD ACLとLinux ACLの動作の違いを理解しようとしています。特に、デフォルトACLの継承メカニズム。 Debian 9.6とFreeBSD 12の両方で以下を使用しました: $ cat test_acl.sh #!/bin/sh set -xe mkdir storage setfacl -d -m u::rwx,g::rwx,o::-,m::rwx storage touch outside cd storage touch inside cd .. ls -ld outside storage storage/inside getfacl -d storage getfacl storage getfacl outside getfacl storage/inside umask Debian 9.6から次の出力が得られます。 $ ./test_acl.sh + mkdir storage + …

5
終了コマンドの終了コードをキャプチャする
私はこれをbashスクリプトに入れています: exit 3; exit_code="$?" if [[ "$exit_code" != "0" ]]; then echo -e "${r2g_magenta}Your r2g process is exiting with code $exit_code.${r2g_no_color}"; exit "$exit_code"; fi exitコマンドの直後に終了するように見えますが、これは理にかなっています。私はすぐに終了せずに終了コードを提供できるいくつかの簡単なコマンドがあるのだろうかと思っていましたか? 私は推測するつもりでした: exec exit 3 しかし、エラーメッセージが表示されますexec: exit: not found。私に何ができる?:)

1
タブキーをアクティブにして、構造化されたコマンドを複数行で記述します
構造化されたコマンドを複数行で記述したい $ for i in *; → do → file $i; → done bmdt.md: ASCII text breakfast.md: ASCII text brmdh.md: ASCII text test.sh: Bourne-Again shell script text executable, ASCII text しかし、タブが機能していないことを確認し、 bashコンソールでタブキーをアクティブにするにはどうすればよいですか?
10 bash 

4
文字列変数の行数をPOSIXで数える方法は?
私はこれをバッシュでできることを知っています: wc -l <<< "${string_variable}" 基本的に、私が見つけたものはすべて<<<Bashオペレーターに関係していました。 しかし、POSIXシェルで<<<はは定義されておらず、何時間も別のアプローチを見つけることができませんでした。これには簡単な解決策があると確信していますが、残念ながら今のところ見つかりませんでした。


2
この3つのことをこのbashコードで説明してくれませんか?
私が持っているfunction私の中.bashrcのファイル。私はそれが何をしているのか知っています、それはX個の多くのディレクトリをcd ここにあります: up() { local d="" limit=$1 for ((i=1 ; i <= limit ; i++)) do d=$d/.. done d=$(echo $d | sed 's/^\///') if [ -z "$d" ]; then d=.. fi cd $d } しかし、それについてこれらの3つのことを私に説明できますか? d=$d/.. sed 's/^\///' d=.. なぜこのようにしないのですか? up() { limit=$1 for ((i=1 ; i <= limit ; …

2
なぜ最近のLinuxでは、デフォルトのスタックサイズが非常に大きい-8MB(一部のディストリビューションでは10)
たとえば、OSXでは、512k未満です。 アプリが再帰を使用せず、多くのスタック変数を割り当てないことを念頭に置いて、推奨されるサイズはありますか? 質問が広すぎて使用法に大きく依存することはわかっていますが、この膨大な数の背後に隠された/内部/システムの理由があるかどうか疑問に思っていたので、それでも質問しました。 アプリでスタックサイズを512 KiBに変更するつもりなので、私は疑問に思っていました-これはまだ巨大な数のように聞こえますが、8MiBよりはるかに小さく、プロセスの仮想メモリが大幅に減少します。多くのスレッド(I / O)があります。 私はこれが本当に害を及ぼさないことも知っています、ここでよく説明されています:pthreadのデフォルトのスタックサイズ


2
範囲を使用したtrの奇妙な動作
trを使用するときに奇妙な動作をする特定のサーバーがあります。以下は、稼働中のサーバーの例です。 -bash-3.2$ echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-z] 1234567890 -bash-3.2$ それは私には完全に理にかなっています。 ただし、これは「特別な」サーバーからのものです。 [root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-z] abcdefghijklmnpqrstuvwxyz1234567890 ご覧のように、すべての小文字の削除は失敗します。しかし、それは文字「o」を削除しました 興味深いのは、次の2つの例ですが、これらはまったく意味がありません。 [root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-n] opqrstuvwxyz1234567890 [root@host~]# echo "abcdefghijklmnopqrstuvwxyz1234567890"|tr -d [a-o] abcdefghijklmnpqrstuvwxyz1234567890 [root@host~]# (ここでも、最後の例では「o」が削除されています) ここで何が起こっているのか誰か誰か知っていますか?私が使用している他のLinuxボックスでは再現できません。

2
Linuxのfindコマンドを使用して、ファイル名ではなく内容を出力するにはどうすればよいですか?
私はこのような名前の何千ものunlファイルを持っていますcbs_cdr_vou_20180624_603_126_239457.unl。次のコマンドを使用して、これらのファイルのすべての行を印刷したいと思いました。しかし、それは私にファイル名だけを与えます。ファイル名は必要ありません。ファイルの内容が必要です。 find -type f -name 'cbs_cdr_vou_20180615*.unl' > /home/fifa/cbs/test.txt 現在の出力: ./cbs_cdr_vou_20180615_603_129_152023.unl ./cbs_cdr_vou_20180615_603_128_219001.unl ./cbs_cdr_vou_20180615_602_113_215712.unl ./cbs_cdr_vou_20180615_602_120_160466.unl ./cbs_cdr_vou_20180615_603_125_174428.unl ./cbs_cdr_vou_20180615_601_101_152369.unl ./cbs_cdr_vou_20180615_603_133_193306.unl 予想される出力: 8801865252020|200200|20180613100325|; 8801837463298|200200|20180613111209|; 8801845136955|200200|20180613133708|; 8801845205889|200200|20180613141140|; 8801837612072|200200|20180613141525|; 8801877103875|200200|20180613183008|; 8801877167964|200200|20180613191607|; 8801845437651|200200|20180613200415|; 8801845437651|200200|20180613221625|; 8801839460670|200200|20180613235936|; catコマンドの-bash: /bin/logger: Argument list too long場合find、catコマンドの代わりに使用したかったので、エラーが発生することに注意してください。
10 linux  find  cat 

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