Unix / Linux - Zarządzanie plikami

W tym rozdziale omówimy szczegółowo zarządzanie plikami w systemie Unix. Wszystkie dane w systemie Unix są zorganizowane w pliki. Wszystkie pliki są zorganizowane w katalogach. Te katalogi są zorganizowane w strukturę drzewa zwaną systemem plików.

Kiedy pracujesz z Uniksem w taki czy inny sposób, spędzasz większość czasu na pracy z plikami. Ten samouczek pomoże Ci zrozumieć, jak tworzyć i usuwać pliki, kopiować je i zmieniać ich nazwy, tworzyć łącza do nich itp.

W systemie Unix istnieją trzy podstawowe typy plików -

  • Ordinary Files- Zwykły plik to plik w systemie zawierający dane, tekst lub instrukcje programu. W tym samouczku przyjrzymy się pracy ze zwykłymi plikami.

  • Directories- Katalogi przechowują zarówno pliki specjalne, jak i zwykłe. Dla użytkowników zaznajomionych z Windows lub Mac OS, katalogi Unix są odpowiednikami folderów.

  • Special Files- Niektóre pliki specjalne zapewniają dostęp do sprzętu, takiego jak dyski twarde, napędy CD-ROM, modemy i karty Ethernet. Inne pliki specjalne są podobne do aliasów lub skrótów i umożliwiają dostęp do pojedynczego pliku przy użyciu różnych nazw.

Lista plików

Aby wyświetlić listę plików i katalogów przechowywanych w bieżącym katalogu, użyj następującego polecenia -

$ls

Oto przykładowe dane wyjściowe powyższego polecenia -

$ls

bin        hosts  lib     res.03
ch07       hw1    pub     test_results
ch07.bak   hw2    res.01  users
docs       hw3    res.02  work

Komenda ls obsługuje -l opcja, która pomogłaby ci uzyskać więcej informacji o wymienionych plikach -

$ls -l total 1962188 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3 $

Oto informacje o wszystkich wymienionych kolumnach -

  • First Column- Reprezentuje typ pliku i uprawnienia nadane do pliku. Poniżej znajduje się opis wszystkich typów plików.

  • Second Column - Reprezentuje liczbę bloków pamięci zajętych przez plik lub katalog.

  • Third Column- Reprezentuje właściciela pliku. To jest użytkownik Uniksa, który utworzył ten plik.

  • Fourth Column- Reprezentuje grupę właściciela. Każdy użytkownik Uniksa będzie miał przypisaną grupę.

  • Fifth Column - Przedstawia rozmiar pliku w bajtach.

  • Sixth Column - Przedstawia datę i godzinę, kiedy ten plik został utworzony lub zmodyfikowany po raz ostatni.

  • Seventh Column - reprezentuje nazwę pliku lub katalogu.

w ls -l przykład listy, każda linia pliku zaczyna się od d, -lub l. Te znaki wskazują typ wyświetlanego pliku.

Sr.No. Prefiks i opis
1

-

Zwykły plik, taki jak plik tekstowy ASCII, binarny plik wykonywalny lub łącze twarde.

2

b

Zablokuj plik specjalny. Zablokuj plik urządzenia wejściowego / wyjściowego, np. Fizyczny dysk twardy.

3

c

Znak specjalny plik. Nieprzetworzony plik urządzenia wejściowego / wyjściowego, np. Fizyczny dysk twardy.

4

d

Plik katalogu zawierający listę innych plików i katalogów.

5

l

Plik dowiązania symbolicznego. Linki w dowolnym zwykłym pliku.

6

p

Nazwana potok. Mechanizm komunikacji międzyprocesowej.

7

s

Gniazdo używane do komunikacji międzyprocesowej.

Metaznaki

Metaznaki mają specjalne znaczenie w Uniksie. Na przykład,* i ?to metaznaki. Używamy* aby dopasować 0 lub więcej znaków, znak zapytania (?) pasuje do jednego znaku.

Na przykład -

$ls ch*.doc

Wyświetla wszystkie pliki, których nazwy zaczynają się od ch i zakończ .doc -

ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc ch02-1.doc c

Tutaj, *działa jako meta znak, który pasuje do dowolnego znaku. Jeśli chcesz wyświetlić wszystkie pliki kończące się na.doc, możesz użyć następującego polecenia -

$ls *.doc

Ukryte pliki

Niewidoczny plik to taki, którego pierwszym znakiem jest kropka lub kropka (.). Programy uniksowe (łącznie z powłoką) używają większości tych plików do przechowywania informacji konfiguracyjnych.

Niektóre typowe przykłady ukrytych plików obejmują pliki -

  • .profile - Skrypt inicjalizacyjny powłoki Bourne'a (sh)

  • .kshrc - Skrypt inicjalizacyjny powłoki Korna (ksh)

  • .cshrc - Skrypt inicjujący powłokę C (csh)

  • .rhosts - Plik konfiguracyjny powłoki zdalnej

Aby wyświetlić niewidoczne pliki, określ rozszerzenie -a opcja ls -

$ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03 $
  • Single dot (.) - reprezentuje bieżący katalog.

  • Double dot (..) - reprezentuje katalog nadrzędny.

Tworzenie plików

Możesz użyć viedytor do tworzenia zwykłych plików w dowolnym systemie Unix. Wystarczy wydać następujące polecenie -

$ vi filename

Powyższe polecenie otworzy plik o podanej nazwie. Teraz naciśnij klawisziaby przejść do trybu edycji. Gdy jesteś w trybie edycji, możesz rozpocząć zapisywanie treści w pliku, jak w następującym programie -

This is unix file....I created it for the first time.....
I'm going to save this content in this file.

Po zakończeniu pracy z programem wykonaj następujące kroki -

  • Naciśnij klawisz esc wyjść z trybu edycji.

  • Naciśnij dwa klawisze Shift + ZZ razem, aby całkowicie wyjść z pliku.

Będziesz miał teraz plik utworzony za pomocą filename w bieżącym katalogu.

$ vi filename
$

Edycja plików

Możesz edytować istniejący plik za pomocą rozszerzenia viredaktor. Omówimy w skrócie, jak otworzyć istniejący plik -

$ vi filename

Po otwarciu pliku możesz przejść do trybu edycji naciskając klawisz ia następnie możesz kontynuować edycję pliku. Jeśli chcesz przenieść się tu i tam wewnątrz pliku, najpierw musisz wyjść z trybu edycji, naciskając klawiszEsc. Następnie możesz użyć następujących klawiszy, aby przejść do pliku -

  • l klawisz, aby przejść na prawą stronę.

  • h klawisz, aby przejść na lewą stronę.

  • k klawisz, aby przejść do góry nogami w pliku.

  • j klawisz, aby przejść do dołu w pliku.

Używając powyższych klawiszy, możesz ustawić kursor w dowolnym miejscu, w którym chcesz edytować. Po ustawieniu możesz użyćiaby przejść do trybu edycji. Po zakończeniu edycji pliku naciśnijEsc i wreszcie dwa klucze Shift + ZZ razem, aby całkowicie wyjść z pliku.

Wyświetl zawartość pliku

Możesz użyć catpolecenie, aby zobaczyć zawartość pliku. Poniżej znajduje się prosty przykład, aby zobaczyć zawartość powyższego utworzonego pliku -

$ cat filename This is unix file....I created it for the first time..... I'm going to save this content in this file. $

Numery wierszy można wyświetlić za pomocą -b opcja wraz z cat polecenie w następujący sposób -

$ cat -b filename 1 This is unix file....I created it for the first time..... 2 I'm going to save this content in this file. $

Liczenie słów w pliku

Możesz użyć wcpolecenie, aby uzyskać całkowitą liczbę wierszy, słów i znaków zawartych w pliku. Poniżej znajduje się prosty przykład, aby zobaczyć informacje o utworzonym powyżej pliku -

$ wc filename 2 19 103 filename $

Oto szczegóły wszystkich czterech kolumn -

  • First Column - Przedstawia całkowitą liczbę wierszy w pliku.

  • Second Column - Przedstawia całkowitą liczbę słów w pliku.

  • Third Column- Reprezentuje całkowitą liczbę bajtów w pliku. To jest rzeczywisty rozmiar pliku.

  • Fourth Column - reprezentuje nazwę pliku.

Możesz podać wiele plików i jednocześnie uzyskać informacje o tych plikach. Oto prosta składnia -

$ wc filename1 filename2 filename3

Kopiowanie plików

Aby wykonać kopię pliku, użyj rozszerzenia cpKomenda. Podstawowa składnia polecenia to -

$ cp source_file destination_file

Poniżej znajduje się przykład tworzenia kopii istniejącego pliku filename.

$ cp filename copyfile $

Znajdziesz teraz jeszcze jeden plik copyfilew twoim bieżącym katalogu. Ten plik będzie dokładnie taki sam, jak oryginalny plikfilename.

Zmiana nazwy plików

Aby zmienić nazwę pliku, użyj rozszerzenia mvKomenda. Poniżej znajduje się podstawowa składnia -

$ mv old_file new_file

Poniższy program zmieni nazwę istniejącego pliku filename do newfile.

$ mv filename newfile
$

Plik mvpolecenie przeniesie istniejący plik całkowicie do nowego pliku. W tym przypadku znajdziesz tylkonewfile w twoim bieżącym katalogu.

Usuwanie plików

Aby usunąć istniejący plik, użyj rozszerzenia rmKomenda. Poniżej znajduje się podstawowa składnia -

$ rm filename

Caution- Plik może zawierać przydatne informacje. Zawsze zaleca się ostrożność podczas korzystania z tegoDeleteKomenda. Lepiej jest użyć-i opcja wraz z rm Komenda.

Poniżej znajduje się przykład, który pokazuje, jak całkowicie usunąć istniejący plik filename.

$ rm filename $

Możesz usunąć wiele plików naraz za pomocą polecenia podanego poniżej -

$ rm filename1 filename2 filename3 $

Standardowe strumienie w systemie Unix

W normalnych okolicznościach każdy program uniksowy ma trzy strumienie (pliki) otwarte podczas uruchamiania -

  • stdin- Nazywa się to standardowym wejściem, a powiązany deskryptor pliku to 0. Jest to również reprezentowane jako STDIN. Program Unix odczyta domyślne wejście ze STDIN.

  • stdout- Nazywa się to standardowym wyjściem, a powiązany deskryptor pliku to 1. Jest to również reprezentowane jako STDOUT. Program Unix zapisze domyślne wyjście na STDOUT

  • stderr- Jest to określane jako błąd standardowy, a powiązany deskryptor pliku to 2. Jest to również reprezentowane jako STDERR. Program Unix zapisze wszystkie komunikaty o błędach w STDERR.