Unix & Linux

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


2
Bashを使用してバイナリファイルで2バイトを検索し、それらの値を増やして置き換えるにはどうすればよいですか?
バイナリファイル内の2バイトを見つけて、それらの2バイトの値を増やし、ファイル内で置き換えようとしています。これらの2バイトは、位置0x82-0x83にあります。今のところ、これを使用してこれらの2バイトを正常に抽出しました。 #!/usr/bin/env bash BYTES=$(tail -c +131 "$1" | head -c 2) これらのバイトには値があります1B 1F。私は立ち往生しています: バイトを整数に変換する方法は?694310進数でなければなりません。 バイナリデータをファイルに追加/エコーする方法 ファイル内の増加したバイトを位置0x82-0x83に書き込む方法。を使用することもできますがhead -c 130 original.bin >> new_file.bin && magic_command_writing_bytes_to_file >> new_file.bin && tail -c +133 original.bin、もっと良い方法があるはずです。 私はそれをPHPで行うことができますが、もっと簡単になるはずですが、bashでこれを行う方法に興味があります。

3
特定の日ではなく他のすべての日に実行するCron
私は毎日午後10時にbashスクリプトを実行するようにcronを設定しています。毎月1日に実行する別のcronセットアップがあります。両方のcronはbashスクリプトを起動します。bashスクリプトの唯一の違いは、それらが基礎となるJavaプログラムに渡す引数です(Javaプログラムのコマンドライン起動をエミュレートします)。 問題は、どちらかが同じ日に実行されないように、月の1日目に毎日cronを無効にする必要があることです。これは自動的に実行できますか? 別のbashスクリプトを作成して、最初の前にcronを編集し、その後に再度設定することができると思いますが、これは...不明瞭なようです。

1
<esc>と<caps lock>を外付けキーボードでも持続する方法で交換する
以下を含む〜/ .speedswapperというファイルがあります。 ! Swap caps lock and escape remove Lock = Caps_Lock keysym Escape = Caps_Lock keysym Caps_Lock = Escape add Lock = Caps_Lock ...を実行xmodmap ~/.speedswapperするescと、とCaps Lockキーが切り替わります。私の〜/ .profileにこの行があるので、ログインするたびにこれらのキーが切り替えられます。 ただし、外部USBキーボードを接続すると、この設定が保持されないようです。私のラップトップのキーボードは完璧に機能しますが、外部キーボードで2つのキーを切り替えるには、コマンドを再度実行する必要があります。幸い、これを行っても私のラップトップのキーボードには影響がないようです-同期しているようです。 1つの解決策は、外部キーボードが接続されているときはいつでもそのxmodmapコマンドを実行する方法を見つけることですが、より堅牢であれば、別のキースワップソリューションを利用できます。OSはUbuntu 13.04です。 justbrowsingのコメントを考えると、これはudevルールを書くことで達成できるようです-私はRUNオプションを使用する必要があると思います、そしてそれは/ dev / hidraw0または/ dev / hidraw1でトリガーされる必要があるデバイスですキーボードを接続したときに表示されます...しかし、私はまだコンセプトに頭を抱えようとしているので、udevで何をしているのかを知っている人からの助けをいただければ幸いです。

2
mdadmの「スペア」番号は何を意味しますか?
次のコマンドを使用して、6台のハードドライブからmdadmベースのRAID 5を作成しました。 # mdadm --create /dev/md0 --level=5 --raid-devices=5 \ /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \ --spare-devices=1 /dev/sdg1 アレイには1つのホットスペア、つまり/ dev / sdg1が必要でした。ただし、チェックするとmdadm --detail2つのスペアが表示されます。 # mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 spares=2 name=... また、に示されているアレイサイズdfは2 TBであり、これは使用中の500 GBドライブのうち4つだけに相当します。 では、正確にはどのような意味--spare-devicesですか?マニュアルページには、「初期アレイのスペア(eXtra)デバイスの数を指定します」と記載されていますが、ここではそうではありません。

1
カーネルプログラミングを最初から学ぶには?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 最近卒業しました。また、私はCの基本的な知識しか持っていません。しかし、Linuxカーネルで作業し、必要に応じてカスタマイズしたいと思っています。カスタマイズするだけでなく、自分のアイデアをLinuxカーネルに貢献したいです。 でも今は0から始めています!だから私に開始方法と開始位置を教えてください!

3
bash $ {VAR // search / replace}と奇妙な正規表現の動作
$ {VAR // search / replace}パラメータ展開を使用して、変数を検索および置換しようとしています。私はかなり長くて邪悪なPS1を持っているので、拡張後のサイズを計算します。そのためには、そこに詰め込んだ一連のエスケープシーケンスを削除する必要があります。ただし、すべてのANSI CSI SGRシーケンスを削除しようとすると、構文の問題に遭遇しました。 私のPS1を考えると: PS1=\[\033]0;[\h] \w\007\]\[\033[1m\]\[\033[37m\](\[\033[m\]\[\033[35m\]\u@\[\033[m \]\[\033[32m\]\h\[\033[1m\]\[\033[37m\]\[\033[1m\])\[\033[m\]-\[\033[1m\](\[\033[m \]\t\[\033[37m\]\[\033[1m\])\[\033[m\]-\[\033[1m\](\[\033[m\]\[\033[36m\]\w\[\033[1m \]\[\033[37m\])\[\033[35m\]${git_branch}\[\033[m\]\n$ (はい、それは私が知っている病気です...) 私がやろうとしていること: # readability search='\\\[\\033\[[0-9]*m\\\]' # do the magic sane="${PS1//$search/}" しかし、これらは[0-9](ほとんどの[0-9]場合、.代わりにaのように扱われる)時点で貪欲であるようです: echo "${PS1//$search/}" \[\033]0;[\h] \w\007\]\n$ を削除して*に変更[0-9]すると[0-9][0-9](よりわかりやすくなります)、期待される結果に近づきます。 $ search='\\\[\\033\[[0-9][0-9]m\\\]' $ echo "${PS1//$search/}" \[\033]0;[\h] \w\007\]\[\033[1m\](\[\033[m\]\u@\[\033[m\]\h\[\033[1m \]\[\033[1m\])\[\033[m\]-\[\033[1m\](\[\033[m\]\t\[\033[1m\])\[\033[m\]-\[\033[1m \](\[\033[m\]\w\[\033[1m\])$(git_branch)\[\033[m\]\n$ なぜ*(ゼロ以上)クレイジーなことをしているのですか?ここで何か不足していますか?同じ正規表現をsedに渡すと、期待どおりの結果が得られます。 echo $PS1 | sed "s/$search//g" \[\033]0;[\h] \w\007\](\u@\h)-(\t)-(\w)$(git_branch)\n$

1
Linuxでのスクリプトの機能
実行可能ファイルcapabilities(7)などの機能()を設定したいがCAP_NET_BIND_SERVICE、そのファイルがスクリプトである場合、setcap(8)そのスクリプトを開始するインタープリターに機能()を設定する必要がありますか、それともスクリプトファイルに設定するだけで十分ですか?自体? 注:質問は特にScientific Linux 6.1に関するものですが、一般的には答えられると思います。

2
「cd&」とはどういう意味ですか?
入力してターミナルからディレクトリを変更する方法を知っています cd &lt;directory&gt; しかし、これがシナリオです。ターミナルを使用してgitリポジトリのフォルダーに移動していました。 glennRepositories glenn-remdroid-repository 上記のフォルダー構造を考えると、glenn-remdroid-repositoryこれは私のリポジトリなので、切り替えたいと思います。 cd glennRepositories glenn-remdroid-repositoryに切り替える前に、誤ってコマンドを入力しました cd &amp; の代わりにcd *。cd *フォルダ名が長いので使っていましたが、ご迷惑をおかけして申し訳ありません。 を実行するcd &amp;と、端末が応答します [1] 7519 私が実行するとcd *これが起こります [1]+ Done cd (wd: ~/glennRepositories) (wd now: ~/glennRepositories/glenn-remdroid-repository) 誰が何をcd &amp;意味し、その出力はありますか?Googleは私の質問を知りません:)

3
いくつかのコマンドで予期しないカラー化された出力を取得する
これを自分.bashrcに追加して、カラー化された出力を取得しますless: # Colorize less man pages. export LESS_TERMCAP_md=$'\e[01;34m' export LESS_TERMCAP_us=$'\e[01;33m' export LESS_TERMCAP_so=$'\e[01;44;37m' export LESS_TERMCAP_mb=$'\e[01;31m' export LESS_TERMCAP_mr=$'\e[01;35m' export LESS_TERMCAP_me=$'\e[00m' export LESS_TERMCAP_ue=$'\e[00m' export LESS_TERMCAP_se=$'\e[00m' ...そして今、突然の特定のコマンド(環境変数の表示に関連しているようです)はすべて、これらの新しい設定に一致するカラー出力を生成します。私は間違ってエスケープしていますか?それともこの意図的な行動ですか?他のエスケープバリエーションをいくつか試しましたが、では機能しませんでしたless。 たとえば、これはenvコマンドのスクリーンショットです。 php -i 出力も色分けされていますが、環境変数セクションのみです。
8 bash  colors  xterm 

1
電源オン/オフ信号をVGAモニターに送信するにはどうすればよいですか?
古いスペアパーツを使って、キッチン用のキオスクを作りました。OpenBSDを実行しており、シンプルなテキストベースのUI(Xサーバーなし)を備えています。 シリアルポートを介して通信するモーションセンサーを備えたArduinoをアプリに追加して、動きがあるとモニターがオンになり、時刻と天気が表示され、一定期間アクティビティがないとオフになるようにする予定です。 モニターを分解してハードウェアソリューションを作成する前に、ソフトウェアでこれが可能かどうかを知りたいです(オプトアイソレーターまたはトランジスターで電源ボタンを押す、またはVGAケーブルを接続することをエミュレートします)。 電源管理ソフトウェアはそれが可能であるように思われるので、これが可能であると感じていますが、どうすればよいかわかりません。

2
サブシェルのプロンプトを変更する方法
私はとりわけ、サブシェルを作成する単純なスクリプトを作成しようとしています。 #!/bin/sh # setup "${@:-$SHELL}" # teardown 問題は、デフォルトのプロンプトを変更する必要があるためです。たとえば、次のようにします。 $#デフォルトのシェル $ ./myscript(myscript)$# サブシェル (myscript)$ exit $ 私は変更しようとしていないPROMPTとPS1、これらの作品のどれも。どうやってやるの? PS .:可能であれば、BashとZSHの両方で機能するソリューションが必要です。
8 bash  zsh  prompt 

2
SSHトンネリングの説明
sshトンネリングについて質問があります。私はこの記事を読みました http://www.popcornfarmer.com/2009/01/ssh-tunneling-tutorial/ X転送を機能させ、自宅でXアプリケーションをいくつか実行して、リモートシステムに表示させたい: ssh -X -R 5555:localhost:22 user@remoteserver.com -N リモート: ssh -X -p 5555 user@192.168.1.2 その後、自宅で: //configure sshd to listen on 5555 ssh user@remoteserver.com //here run some app うまくいくでしょうか?

4
Gnomeのワークスペースの数
CentOS 6.4とGNOMEデスクトップを使用しています。デスクトップワークスペースの数を増やす/減らすにはどうすればよいですか? その操作に使用できるツールはありますか?

5
連続する段落のグループ化されたソート(空白行で区切られています)?
私は今、列によるソートの経験がかなりあると思います。ただし、これまでのところ、連続する行を並べ替える方法は見つかりませんでした。 次のようなテキストファイルがあるとします:(もちろん非常に簡略化されています) Echo Alpha Delta Charlie Golf Bravo Hotel Foxtrot さて、各ブロックごとにアルファベット順に行をソートすることは可能ですか?つまり、結果は次のようになります。 Alpha Charlie Delta Echo Bravo Foxtrot Golf Hotel sortmanページで見つけたものから言うと、これは組み込みのUNIX sortコマンドでは不可能かもしれません。それとも、外部/サードパーティのツールに頼ることなく実行できますか?

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