今日の学習記録(1月5日)

★ 今日の目標 ★

一日タイムキープに徹すること


◆ ルール ◆

  • 予定表に作業を行う
  • ポモドーロタイマーを使って作業を行う
  • ポモドーロタイマーの時間ごとに作業の内容、レビューを記録する
  • 作業の間に他の人の質問や日報を読む
  • 猫のエサの時間 11:00/17:00:/22:00


◆ 今日の問題点 ◆

  • exportコマンドがインストールできない。

  • export コマンドでPATHを通そうとするもcommand not foundエラー。 管理者モードでapt search exportをするもリストが多すぎて画面に収まらない。whichコマンドも同様。


◆ メモ ◆


「『変数が空の場合は……』という条件は以下の様に書くそうです if [ -z 変数 ] <ソース>


シェルスクリプトの構文は順番に$0,$1,$2,$3,,,となっていて、引数$0は”aaa.sh”自体である。<ソース>


ahaha.txtのリダイレクト。既に書かれている情報を消して、上書きしてしまうのです」なので追加書き込み>>を使用する。


wget -T タイムアウトする時間 / wget -T 30 -t 1 -i ahaha.txt


確かに、アイデアはバグが潜む可能性のあるものでしたが、自力で考えたからこそバグが潜む可能性が生まれるのです。<ソース>


grepの復習

  • 何かしらの結果から特定のキーワードが含まれた行だけを表示する。
    ps auxをつかうと実行されているファイルが一覧になる。
    $ ps aux | grep konqueror を使うとkonquerorを含む行が表示される。
    workディレクトリからaの文字を含むファイルを表示するには$ grep a work/*

tarコマンド

tarコマンド、はまとめるだけでファイルサイズを圧縮しない

gzip(GNU zipの略)コマンド

  • gzip ファイル名 =圧縮
  • gzip -d ファイル名 =解凍
    tarを圧縮したものが tar.gz。
    圧縮(gzip)も行うtarコマンド = オブションにzを追加
  • $ tar cfvz peace.tar.gz *.txt
    = 拡張子txtのファイルをすべてtar形式でアーカイブgzip形式圧縮
  • $ tar xfvz peace.tar.gz
    = 解凍

zip / unzip

  • $ zip peace.zip *.txt =圧縮
    ディレクトリpeaceを圧縮する場合は $ -r peace.zip peace/
  • $ unzip peace.zip =解凍

電源を切る / 入れる
- # halt ‘# shutdown -h now’ - ‘# reboot’ # shutdown -r now

  • nowのかわりに+0(分数) 00:00(時刻)を入力してシャットダウンの時間を指定できる ディストリビューションによってsudoが使えるものと使えないものがある


このサイトって飽きないように書いてある、書き手さんの優しさを感じる



# passwd mamaでrootユーザは一般ユーザ(mama)のパスワードを変更できる このことでユーザがパスワードを忘れた場合でも再設定できる


vimの復習ありがたい
$ vim vimtest.txtと書いてあるが実行するとエラー<br>$ vi vimtest.txt で立ちあがる。きっとこれでいいんだろう。

  • i =インサートモード
  • esc =モード解除
  • :w =保存
  • :q =閉じる
  • :wq =保存して閉じる
  • :q! =保存せずに終了
  • /(検索ワード) =検索 n =検索スポット順送り / N =検索スポット逆送り


wgetコマンド
$ wget -r -l 3 -H http://…

  • -r : 自動的にリンクを辿ってダウンロード
  • -l (数字) :クローリングの深さ、デフォルトは5
  • -H ;リンク先もクローリングしてダウンロードする
  • リンクの後に-o ファイル名(.html)でファイル名で保存


.vimrcファイルの作成

syntax on
set number
set tabstop=2
set shiftwidth=2
set noexpandtab
set softtabstop=0

この要領でvimの設定を自分に合わせてカスタマイズできる。


テンポラリフォルダ

  • 一時的に使用されるファイルが保存されている、ディストリビューションによってに削除のタイミングが異なる。Debian系は再起動時に削除される。

LinuxC言語で作られた

gccコンパイラをインストール

  • $ gcc moji.c -o hogehoge
    -o オプションで .cファイルをhogehogeにコンパイル
  • ./hogehogeで実行


#include <stdio.h>C言語の基本的機能である”stdio.h”を”読み込む”


特殊文字 - /n =改行(文字列の中)
- ‘/a’ =ビープ音
- ‘//’ =“/“ を表示させるための記号エスケープ文字


findコマンド(管理者権限で使用)/locateコマンド

  • find 検索を開始するディレクトリ -name ファイル名
  • locateコマンド(事前にupdateが必要)

/usr/share/docには色々なコマンドのドキュメントが保管されている /usr/share/locale/には地域に関するファイル usr/bin/にはコマンドが入っている


パスが通ったディレクトリに入ったファイルであれば./を使わずに実行できる $ echo $PATHで確認できる

  • $ export PATH="$PATH:~/mybin" でパスを通す。 (mybinの部分は自由) 『パスが通ったディレクトリ』の情報は、環境変数$PATHに入っている。

はい。exportをつけないで変数に値を設定した場合(この場合の変数をシェル変数という)は、現在実行中のシェル(CUI環境)だけで有効な変数ですが、exportをつけて変数に値を設定した場合は、その変数を環境変数といい、シェルから実行したコマンドにも引き継がれる変数です<ソース>

  • $ printenv環境変数がみられる

  • exportした環境変数CUIを再起動したらリセットされる 引き継ぐためには設定ファイル.bashrcあるいはbash_profileに書き加える


HFSの学習

  • フォルダに役割にがあることを知る。記憶はできないが、きっとなんども戻ってくると思う。


新しいLinuxの教科書

  • コマンドを実行する部分はLINUXカーネルが実行している カーネルとはOSの中核となる部分であり、CPUやメモリなどのハードウェアを管理するとともに、コマンド実行を処理するプロセス管理も行っています。

  • シェルはカーネルとユーザの間にあるインターフェース、カーネルはシェルの中にある。

  • シェルがあることでカーネルに変更を加えずに、カスタマイズができ、またし発生したダメージがカーネルに到達しない。

  • ここには、Linuxの「1つのプログラムには、1つのことをうまくやらせる」という考え方を見て取ることができます。1つのプログラムにあれもこれもと機能を詰め込まず、機能ごとにプログラムを分離しておくことが、ソフトウェア開発においては重要なことなのです。

  • ターミナルエミュレータは、入出力の画面を提供するだけのソフトウェアです。上図のように、ターミナルエミュレータというウインドウの中で、Linuxマシンのシェルが動いていることになります。


シェルでのカーソル操作

  • 前方ひとマス / 後方へひとマス / 行頭 / 行末
    control +b / control +f / control +a /control +e<

  • ひと単語前方へ / ひと単語後方へ alt + b/alt + f

  • backspace / delete / 1ワード後方へ削除
    ctrl+d/ctrl+h/ctrl+w
  • 文頭へカット / 文末へカット / ペースト(yank)
    ctrl+u/ctrl+k/ctrl+y

  • シェル画面をクリア
    ctrl+l

  • コマンド履歴遡り / 戻し
    ctrl+p/ctrl+n
  • ctrl+r
    インクリメンタル 1文字ずつ入力しながらコマンド検索