現状:
エンジニアへの未経験転職。
就職先も決まり、2月からひよこエンジニアに。
2025年は頑張ろうということで、2025年学習記録8日目。
(昨日は実家の相談で学習なし)
内容は常に書き散らしのメモです、あしからず。
当面の目標:LPIC101,102合格
Ruby(paiza)
- まだCランクしか無理なので日々頑張る。
S = gets.chomp
T = gets.chomp
# 一文字ずつ分解
# 一致する文字列があるかsort
# 無ければその文字を大文字または小文字に変換する
T_array = T.split("")
for i in T_array do
unless S.include?(i)
i.swapcase!
end
end
conT = T_array.join
puts conT
swapcase
メソッド
文字列内のすべての大文字を小文字に、すべての小文字を大文字に変換する。
swapcase
メソッドは非破壊的で、元の文字列を変更せずに新しい文字列を返します。元の文字列を直接変更したい場合は、破壊的メソッドであるswapcase!
を使用します[3]:
使用例
str = "Hello World"
swapped_str = str.swapcase
puts swapped_str # 出力: "hELLO wORLD"
str = "Hello World"
str.swapcase!
puts str # 出力: "hELLO wORLD"
このメソッドはUnicode文字列にも対応しており、アルファベット以外の文字(数字、記号、日本語など)はそのまま保持されます[3]。
Citations:
[1] https://dev.cajon.co.jp/how/ruby/ruby文字列の大文字変換と小文字変換の方法/
[2] https://qiita.com/mat827/items/ebfe189d652b619b3e6d
[3] https://job-info.hateblo.jp/entry/2024/08/24/165630
[4] https://docs.ruby-lang.org/ja/2.3.0/method/String/i/upcase.html
join
メソッド
配列の要素を連結して文字列に変換する。
使用例
original_string = "foo,bar,baz"
array = original_string.split(',')
restored_string = array.join(',')
puts restored_string # 出力: "foo,bar,baz"
joinメソッドの引数には、元の文字列で使用されていた区切り文字を指定します。この例では、カンマ(',')を使用しています[6]。
joinメソッドに引数を渡さない場合、単純に要素同士を結合して文字列に変換します[4]。例えば:
array = ['foo', 'bar', 'baz']
result = array.join
puts result # 出力: "foobarbaz"
Citations:
[1] http://taustation.com/ruby-string-array-range-comversion/
[2] https://www.delftstack.com/ja/howto/ruby/array-to-string-ruby/
[3] https://qiita.com/beanzou/items/a9253ee083aeac9fc608
[4] https://kyoheiex.hatenablog.jp/entry/2024/07/01/115806
[5] https://pikawaka.com/ruby/split
[6] https://rubytips86.hatenablog.com/entry/2014/03/25/141326
[7] https://pikawaka.com/ruby/to_a
Linux
APT(Advanced Package Tool)
Debian系のLinuxディストリビューションで使用されるパッケージ管理システム。
概要
- パッケージ管理: APTは、ソフトウェアのインストール、更新、削除を自動的に行うためのシステムであり、ユーザーが手動で依存関係を解決する必要がありません[1][3][9]。
- リポジトリとの連携: APTは、インターネット上のリポジトリからパッケージを取得し、これにより最新のソフトウェアを簡単にインストールできます[2][6][8]。
- 依存関係の解決: 必要なパッケージを自動的にインストールし、ソフトウェア間の衝突を回避します[1][4][6]。
主なコマンド
-
apt-get
: パッケージのインストールやアップデートを行うためのコマンドです。例えば、apt-get install package_name
で指定したパッケージをインストールします[2][4][6]。 -
apt-cache
: パッケージ情報の検索や表示を行うためのコマンドです。例えば、apt-cache search keyword
でキーワードに関連するパッケージを検索します[2][4][7]。 -
aptitude
: より高機能なパッケージ管理ツールで、対話的な操作や高度な検索機能を提供します[1][3][9]。
特徴
- ユーザーフレンドリー: シンプルなコマンドで操作できるため、初心者でも扱いやすい[1][6]。
- オフライン操作: 一度キャッシュされたパッケージ情報を利用してオフラインでも操作可能です[2]。
- 広範なサポート: Debianだけでなく、その派生ディストリビューション(Ubuntuなど)でも広く使用されています[1][9]。
Citations:
[1] https://linuc.org/study/knowledge/432/
[2] https://envader.plus/course/5/scenario/1029
[3] https://e-words.jp/w/APT.html
[4] https://www.infraexpert.com/infra/linux09.html
[5] https://www.debian.org/doc/manuals/debian-faq/pkgtools.ja.html
[6] https://xexeq.jp/blogs/media/it-glossary34
[7] https://pineof.com/advanced-package-tool/
[8] https://qiita.com/tttmurakami/items/59c8552c7b6fb6498c73
[9] https://ja.wikipedia.org/wiki/APT
rpm2cpio
RPMパッケージファイルをcpioアーカイブ形式に変換するコマンドラインツール
機能
- 変換: 指定されたRPMファイル(.rpm)をcpio形式に変換し、その内容を標準出力に出力します。
- 標準入力の利用: 引数に「-」を指定することで、標準入力からRPMデータを読み込むことも可能です。
使用例
- RPMファイルをcpio形式に変換して出力する:
rpm2cpio package.rpm > package.cpio
- 標準出力に直接出力し、cpioコマンドと組み合わせて使用する:
rpm2cpio package.rpm | cpio -idv
目的
rpm2cpioは、RPMパッケージの内容を確認したり、特定のファイルを抽出したりする際に役立ちます。これにより、パッケージをインストールせずにその内容を調べることができます。
Citations:
[1] https://kazmax.zpp.jp/cmd/r/rpm2cpio.8.html
[2] https://ameblo.jp/hbnizm31/entry-11640549599.html
[3] https://qiita.com/hikotaro_san/items/d9798af514d7da2e89c1
[4] https://docs.oracle.com/cd/E56342_01/html/E54074/rpm2cpio-1.html
[5] https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/522rpmcpio.html
[6] https://qiita.com/tkj/items/0c4ea811b4c656db727a
[7] http://www.netlaputa.ne.jp/~utty/linuxmld/rpm2cpio1.html
[8] https://ja.manpages.org/rpm2cpio/8
- Linuxでは「2」を「to」のように使用する傾向がある???
cpio形式
ファイルとディレクトリをアーカイブするためのフォーマット。
特徴
-
アーカイブ形式:
- cpioは、複数のファイルを一つのアーカイブにまとめるための形式で、各ファイルの前にメタデータとしてヘッダー情報が付加されます。
-
非圧縮:
- cpio自体はデータを圧縮しませんが、他の圧縮ツール(例えばgzip)と組み合わせて使用することが一般的です。
-
ヘッダー構造:
- cpioアーカイブには、ASCII形式とバイナリ形式の2種類のヘッダーがあります。ASCII形式は人間が読める形でメタデータを保持し、バイナリ形式は機械可読性が高いです。
-
互換性:
- cpioはUnix系システム間で広く互換性があり、さまざまなプラットフォームで利用可能です。
-
用途:
- ソフトウェアの配布やデータバックアップ、システム管理などに利用されます。
使用例
- cpioコマンドを使用して、新しいアーカイブを作成したり、既存のアーカイブからファイルを抽出したりすることができます。
cpio形式は、特にファイル管理やバックアップ処理において便利なツールです。
Citations:
[1] https://products.aspose.com/zip/ja/most-common-archives/what-is-cpio/
[2] https://docs.aspose.com/zip/ja/net/cpio-archiving/
[3] https://www.ibm.com/docs/ja/zos/2.4.0?topic=descriptions-cpio-copy-inout-file-archives
[4] https://www.ibm.com/docs/ja/zos/2.5.0?topic=formats-cpio-format-cpio-archives
[5] https://www.weblio.jp/content/cpio
[6] https://www.ibm.com/docs/ja/aix/7.2?topic=c-cpio-command
[7] https://surf.st.seikei.ac.jp/~nakano/JMwww/html/GNU_cpio/man1/cpio.1.html
[8] https://man.plustar.jp/manpage/man1/cpio.1.html