SlideShare uma empresa Scribd logo
1 de 12
詳解UNIXプログラミング

     1. 概論
シェル
Bourne シェル /bin/sh

Cシェル /bin/csh

Kornシェル /bin/ksh

ユーザの入力を読み取り、コマンドを実行する
インタプリタ

入力は通常端末からだが、ファイルから(シェ
ルスクリプト)の場合もある
ファイル名
ファイル名にはスラッシュ文字(/)とnull文字が
使用できない

スラッシュはパスを区切る

null文字はパスを終了させる

新しくディレクトリを作ると .(ドット)と..(ドッ
トドット)の2つのファイル名が自動的に作成
される
作業ディレクトリ

各々のプロセスは作業ディレクトリを持つ

プロセスはchdirを用いて作業ディレクトリを
変更できる
ファイル記述子
プロセスが参照するファイルを識別するため
に、カーネルが使用する非負の整数

カーネルが既存ファイルをオープンしたりする
たび、ファイル記述子を返す

すべてのシェルは新たにプログラムを実行する
ときに、3つの記述子「標準入力」「標準出
力」「標準エラー出力」をオープンする
標準入出力
標準入出力関数はアンバッファド入出力関数に
対するバッファリングインターフェースを提供

アンバッファド入出力関数=バッファリングし
ない関数open, read, write, lseek, closeなどのこ
と

バッファリングしないと遅いのでそれを解消
プロセス

プログラム=実行可能ファイル

プロセス=プログラムの実行中のインスタン
ス

各プロセスにはプロセスIDと呼ばれる非負の
数値識別子が割り付けられる
ANSI C

ISOとANSIによって1989年、共同で標準化さ
れたC言語

多くの処理系がANSI Cの規格を順守

<unistd.h>にはUNIXシステムコールに関する
関数プロトタイプが収められる
システムデータ型
_tで終わるデータ型(ssize_tなど)は基本的なシ
ステムデータ型

通常typedef宣言が必要だが、ANSI C側で定義
されている

int,longなどを使わずにシステム環境ごとの差
異を吸収する
エラー処理
UNIX関数でエラーが起こるとたいてい負の値
が返され、追加情報がint errnoに設定される

エラーが発生しなかったときにerrnoがクリア
されることはないので、errnoを参照するのは
エラー発生時のみにすべき。
シグナル

特定の状況が発生したことをプロセスに通知

シグナル発生時に呼び出される関数を与え、デ
フォルトの処理を変更できる
システムコール

各システムコールに対して標準Cライブラリ関
数が提供されている

ユーザ側からはシステムコールとライブラリ関
数を意識して区別する必要はさほどない

Mais conteúdo relacionado

Mais procurados

コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
Masahiko Toyoshi
 
R以外の研究ツール
R以外の研究ツールR以外の研究ツール
R以外の研究ツール
弘毅 露崎
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
 
1 Linux入門 第4章 シェル
1 Linux入門 第4章 シェル1 Linux入門 第4章 シェル
1 Linux入門 第4章 シェル
Enpel
 
シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)
icchy
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前に
Kosei ABE
 

Mais procurados (20)

systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンド
 
Shellを書こう 02 shUnit2を使おう
Shellを書こう 02 shUnit2を使おうShellを書こう 02 shUnit2を使おう
Shellを書こう 02 shUnit2を使おう
 
Shellを書こう 01 Shellcheckを使おう
Shellを書こう 01 Shellcheckを使おうShellを書こう 01 Shellcheckを使おう
Shellを書こう 01 Shellcheckを使おう
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
 
後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016後期第六回ネットワークチーム講座資料2016
後期第六回ネットワークチーム講座資料2016
 
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
 
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12
 
NGSPICEの基本操作
NGSPICEの基本操作NGSPICEの基本操作
NGSPICEの基本操作
 
Custom Package Building with Poudriere
Custom Package Building with PoudriereCustom Package Building with Poudriere
Custom Package Building with Poudriere
 
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
 
R以外の研究ツール
R以外の研究ツールR以外の研究ツール
R以外の研究ツール
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
1 Linux入門 第4章 シェル
1 Linux入門 第4章 シェル1 Linux入門 第4章 シェル
1 Linux入門 第4章 シェル
 
シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)シェル芸初心者によるシェル芸入門 (修正版)
シェル芸初心者によるシェル芸入門 (修正版)
 
Slide
SlideSlide
Slide
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
 
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
自分のPcに仮想環境を作ってlinuxをインストールしてみよう自分のPcに仮想環境を作ってlinuxをインストールしてみよう
自分のPcに仮想環境を作ってlinuxをインストールしてみよう
 
バッチリネーマーの制作
バッチリネーマーの制作バッチリネーマーの制作
バッチリネーマーの制作
 
R を起動するその前に
R を起動するその前にR を起動するその前に
R を起動するその前に
 
カウチなやつら CouchDB in the room
カウチなやつら CouchDB in the roomカウチなやつら CouchDB in the room
カウチなやつら CouchDB in the room
 

Destaque

マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
tosch0718
 
Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明
T T
 
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
tosch0718
 
関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント
Rikie Ishii
 
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
満徳 関
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
Daisuke Nikura
 
NetBSDとは
NetBSDとはNetBSDとは
NetBSDとは
miwarin
 
ライフハック研究会Lt大会20120519
ライフハック研究会Lt大会20120519ライフハック研究会Lt大会20120519
ライフハック研究会Lt大会20120519
Yasutaka Nariki
 

Destaque (20)

ユーザ目線の実践的BPM
ユーザ目線の実践的BPMユーザ目線の実践的BPM
ユーザ目線の実践的BPM
 
Unix2
Unix2Unix2
Unix2
 
マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512マインドハック研究会 ライフハック編 20100512
マインドハック研究会 ライフハック編 20100512
 
Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明Software Foundation:形式的証明と非形式的証明
Software Foundation:形式的証明と非形式的証明
 
社内Gtd勉強会 20101022
社内Gtd勉強会 20101022社内Gtd勉強会 20101022
社内Gtd勉強会 20101022
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
 
20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告20161026_超高層大気観測データのメタデータ作成実験経過報告
20161026_超高層大気観測データのメタデータ作成実験経過報告
 
TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~TO LOVE IN'~人生のパートナーを見つける旅~
TO LOVE IN'~人生のパートナーを見つける旅~
 
関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント関西ライフハック研究会×アイデアプラント
関西ライフハック研究会×アイデアプラント
 
GTD 残業を減らす方法
GTD 残業を減らす方法GTD 残業を減らす方法
GTD 残業を減らす方法
 
ふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするためにふり返りハック ~ ライフをハッキングするために
ふり返りハック ~ ライフをハッキングするために
 
IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料IGDA_Sig-BoardGame_ワークショップ用資料
IGDA_Sig-BoardGame_ワークショップ用資料
 
バージョン管理入門
バージョン管理入門バージョン管理入門
バージョン管理入門
 
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
理系女子の恋愛と結婚 「東大で理系の恋愛を語ろう」
 
X hago3
X hago3X hago3
X hago3
 
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
『スクラムを活用したアジャイルなプロダクト管理』第1回読書会 振り返り結果 POStudy ~プロダクトオーナーシップ勉強会~
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
 
NetBSDとは
NetBSDとはNetBSDとは
NetBSDとは
 
ライフハック研究会Lt大会20120519
ライフハック研究会Lt大会20120519ライフハック研究会Lt大会20120519
ライフハック研究会Lt大会20120519
 
GTD+R体験(オブラブ2007夏)
GTD+R体験(オブラブ2007夏)GTD+R体験(オブラブ2007夏)
GTD+R体験(オブラブ2007夏)
 

Último

Último (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Unix1

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n