#!/bin/sh. if [ "$#"!= "1" ]; then echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" exit 1 fi

Podobne dokumenty
System operacyjny UNIX system plików. mgr Michał Popławski, WFAiIS

Linux: System Plików

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Stosowanie poleceń związanych z zarządzaniem plikami oraz katalogami: nazwa_polecenia -argumenty ścieżka/ścieżki do katalogu/pliku

- wszystkie elementy - wszystkie elementy

Umożliwia ona pokazanie ukrytych plików i katalogów, nazwa ich zaczyna się od kropki.

Bash - wprowadzenie. Bash - wprowadzenie 1/39

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Wstęp do systemów wielozadaniowych laboratorium 02 Praca w systemie plików

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

host name: protokół SSH System plików - wprowadzenie Ścieżki dostępu

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

Wstęp do systemu Linux

2. System uprawnień w linuxie

Systemy Operacyjne I: System plików

Trochę o plikach wsadowych (Windows)

BASH - WPROWADZENIE Bioinformatyka 4

Pracownia Komputerowa wykład III

Ćwiczenie 9 Linux - operacje systemu plików

1 Przygotował: mgr inż. Maciej Lasota

Konsola Linux. autor: Mariusz Barnaś

System operacyjny Linux

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Systemy operacyjne. Laboratorium 2. Dowiązania. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

System plików - wprowadzenie. Ścieżki dostępu. Informatyka ćw 1

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Powłoka (shell) Powłoka ksh

Typy plików. Oznaczenie f -

Powłoka bash. Kurs systemu Unix 1

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Wstęp do systemu Linux

Środowisko programisty Zestaw 7

Wstęp do informatyki Shell podstawy

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Ćwiczenie 1. Podstawowe wiadomości

Technologie Informacyjne - Linux 3

S P I S POLECEŃ LINUXA

Szkolenie AGH Linux. Nie bój się konsoli i zdaj kolosa na 5.0!!! Tytuł wcale nie przesadzony ;)

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Ćwiczenie nr 14: System Linux

Skrypty powłoki w systemie Linux

Wstęp do systemów wielozadaniowych laboratorium 03 Praca w powłoce UNIX-owej

Podstawy używania konsoli tekstowej w systemie Linux. Andrzej Zbrzezny

PRACOWNIA INFORMATYCZNA CHARAKTERYSTYKA PRZEDMIOTU BASH - PODSTAWOWE INFORMACJE

Pracownia Komputerowa wyk ad II

************************** Systemy Operacyjne (2) Laboratorium nr 2 : FIND ************************** Zadania z rozwizaniami

Wiersz poleceń Windows

Podstawy Programowania.

PODSTAWY INFORMATYKI

Pracownia Komputerowa wykład II

Przekierowanie wejścia wyjścia:

Bash - instrukcje warunkowe, pętle i funkcje

LABORATORIUM 6-7 WSTĘP DO SIECI TELEINFORMATYCZNYCH SYSTEM OPERACYJNY UNIX

Systemy operacyjne 11

Podstawy Programowania

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Podstawy informatyki

Formy dialogowe w środowisku Gnome

Instrukcja programu mam wersja 1.02.

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

OPERACJE NA PLIKACH. Podstawowe pojęcia:

pico mojskrypt bash mojskrypt chmod +x mojskrypt./mojskrypt

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

Programowanie w języku Python. Grażyna Koba

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Temat zajęć: Tworzenie skryptów powłoki systemu operacyjnego.

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Skrypty startowe. Tryb interaktywny tryb logowania: nie logowanie: Tryb nieinteraktywny

Technologie Informacyjne - Linux 1

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Chemiateoretyczna. Monika Musiał. Ćwiczenia

Programowanie skryptów powłoki

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Wstęp do obsługi Linux a

PODSTAWOWE INFORMACJE NA TEMAT KONSOLI W SYSTEMIE WINDOWS

Interpreter poleceń oraz zmienne środowiskowe

System operacyjny Linux wybrane zagadnienia. Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Polecenia wewnętrzne:

Zmienne środowiskowe: Ścieżka przeszukiwana komendą.

Wstęp do obsługi Linux a

Elementy wyrażeń regularnych

ABA-X3 PXES v Podręczna instrukcja administratora. XDMCP Licencja FDL (bez prawa wprowadzania zmian) Tryb X terminala

Pracownia Informatyczna I ORGANIZACJA ZAJĘĆ, ZASADY ZALICZENIA

Dokumentacja WebMaster ver 1.0

Ćwiczenie: JavaScript Cookies (3x45 minut)

Znaki globalne w Linuxie

Transkrypt:

Skrypt nr 1 Zmiana nazw wszystkich plików w zadanym katalogu (parametr wywołania skryptu), do których mamy ustawione prawo zapisu, przez dopisanie dodatkowego członu.old. Wcześniej należy skasować wszystkie pliki, które już mają takie rozszerzenie. echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" rm -rf $1/*.old for le in ls $1/ ; do if [ -w $1/$le ]; then mv $1/$le $1/$le.old Skrypt nr 2 Tworzenie nowych plików w zadanym katalogu (parametr wywołania skryptu), według listy umieszczonej w pliku (drugi parametr wywołania skryptu). Nowe pliki mają być zerowej wielkości (puste). Jeżeli jakiś plik już istnieje, to nie powinien zostać zniszczony. echo "Skrypt uruchamiany z dwoma parametrami" echo "Nie mozna czytac z pliku lub plik nie istenieje" for le in cat $2 ; do if [ -w "$1" ]; then if [! -e "$1/$le" ]; then touch "$1/$le" Skrypt nr 3 Kasowanie wszystkich plików w zadanym katalogu (parametr wywołania skryptu), poza plikami wykonywalnymi, mającymi ustawiony bit dostępu typu execute. echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" for le in ls "$1/" ; do if [! -x "$1/$le" ]; then rm -rf "$1/$le"

Skrypt nr 4 Numerowanie wszystkich plików w zadanym katalogu (parametr wywołania skryptu), do których mamy ustawione prawo wykonywania ( execute ), przez dodanie dodatkowego członu rozszerzenia o postaci. numer kolejny. Numeracja powinna przebiegać według wielkości plików. COUNTER=0 echo "Skrypt uruchamiany z parametrem (sciezka do katalogu)" for le in ls -r -S "$1/" ; do if [ -x "$1/$le" ]; then mv "$1/$le" "$1/$le.$COUNTER" COUNTER=$(($COUNTER+1)) Skrypt nr 5 Łączenie w jeden wszystkich plików należących do zadanego katalogu (parametr wywołania skryptu), o zadanym rozszerzeniu (drugi parametr skryptu). Kolejność, w jakiej pliki zostaną połączone - nieistotna. Treść każdego pliku powinna być poprzedzona nagłówkiem z jego nazwą. NOWY="nowy" echo "Skrypt uruchamiany z 2 parametrami" for le in ls $1/*.$2 ; do echo "+++++$le+++++" >> $1/$NOWY.$2 cat $le >> $1/$NOWY.$2 Skrypt nr 6 Łączenie w jeden plików z listy, umieszczonej w pliku o zadanej nazwie (parametr wywołania skryptu. Kolejność, w jakiej pliki zostaną połączone - ściśle według listy. Treść każdego pliku powinna być poprzedzona nagłówkiem z jego nazwą. Plik wynikowy powinien mieć nazwę pliku pierwotnie zawierającego listę. echo "Skrypt uruchamiany z 2 parametrami" echo "Nie mozna czytac z pliku" for le in cat $2 ; do echo "----$le----" >> $1/$2 cat $1/$le >> $1/$2 2

Skrypt nr 7 Przesuwanie wszystkich plików z ustawionym prawem wykonywania z jednego katalogu do drugiego. Pozostałe pliki w katalogu nie powinny być ruszane. Nazwy katalogów, źródłowego i docelowego, zadawane jako parametry skryptu. echo "Skrypt uruchamiany z 2 parametrami" if [! -d $1 ] [! -d $2 ]; then for le in ls $1/ ; do if [ -x $1/$le ]; then mv $1/$le $2/$le Skrypt nr 8 Listowanie plików z zadanego katalogu (parametr wywołania skryptu), wraz z jego podkatalogami. Zawartość podkatalogów ma być listowana w postaci ścieżka dostępu względem listowanego katalogu / nazwa pliku. Ograniczyć liczbę zagnieżdżeń podkatalogów (np. do dwóch). MAX=2 ilosc=0 listowanie () { local katalog=$1 local ilosc=$(($ilosc+1)) for le in ls $katalog ; do echo "$katalog/$le" if [ -d "$katalog/$le" ] && [ "$MAX" -ge "$ilosc" ]; then listowanie "$katalog/$le"; ; } echo "Skrypt uruchamiany z 1 parametrem" listowanie $1 Skrypt nr 9 Kasowanie wszystkich plików pustych (o zerowej wielkości) w zadanym katalogu (parametr wywołania skryptu). Skrypt powinien tworzyć w zadanym pliku listę skasowanych plików. Nie powinien analizować dołączeń symbolicznych. NOWY="nowy.txt" echo "Skrypt uruchamiany z 1 parametrem" for le in ls $1/ ; do if [! -s $1/$le ] && [! -L $1/$le ]; then echo "$le" >> $1/$NOWY rm -rf $1/$le 3

Skrypt nr 10 Porównanie zawartości dwóch zadanych katalogów (argumenty skryptu). Przy porównaniu należy ignorować podkatalogi. W wyniku wyświetlić na ekranie listę plików o identycznych nazwach w obu katalogach. if [ "$#"!= 2 ]; then echo "Skrypt uruchamiany z dwoma argumentami" if [! -d $1 ] [! -d $2 ]; then echo "Nie znaleziono katalogu docelowego" for le in ls $1 ; do if [! -d $1/$le ] && [ -e $2/$le ]; then echo "$le" Skrypt nr 11 Porównanie zawartości zadanego katalogu z listą plików (nazwa katalogu i pliku z listą zadawana w argumentach skryptu). Należy wygenerować listę plików brakujących w katalogu i takich, które nie są na liście. if [ "$#"!= 2 ]; then echo "Skrypt uruchamiany z dwoma argumentami" echo "Nie znaleziono katalogu docelowego" echo "Nie znaleziono pliku z lista" echo "---tych plikow nie nie ma w katalogu---" >> "$1/nowy.txt" for le in cat $2 ; do if [! -e $1/$le ]; then echo $le >> "$1/nowy.txt" echo "---tych plikow nie nie ma na liscie---" >> "$1/nowy.txt" for le in ls $1 ; do zmienna=false for plik in cat $2 ; do if [ $le = $plik ]; then zmienna=true if [ $zmienna = false ]; then echo $le >> "$1/nowy.txt" Skrypt nr 12 Usuwanie wszystkich podkatalogów zadanego katalogu (parametr wywołania skryptu). Zawartość tych podkatalogów należy przenieść do katalogu nadrzędnego. Usuwanie dotyczy tylko jednego poziomu podkatalogów. echo "Skrypt uruchamiany z parametrem" for le in ls $1 ; do if [ -d $1/$le ]; then mv $1/$le/* $1/ rm -rf $1/$le 4

Skrypt nr 13 Usuwanie z zadanego katalogu (pierwszy argument skryptu) wszystkich plików, których nazwy pokrywają się z nazwami w drugim katalogu (drugi argument). Nie usuwaj podkatalogów. Nie usuwaj również plików o nazwach pokrywających się z nazwami podkatalogów w drugim katalogu. if [ "$#"!= 2 ]; then echo "Skrypt uruchamiany z dwoma argumentami" if [! -d $1 ] [! -d $2 ]; then echo "Nie znaleziono katalogu docelowego" for le in ls $1 ; do if [! -d $1/$le ]; then if [ -e $2/$le ] && [! -d $2/$le ]; then rm -rf $1/$le Skrypt nr 14 Ustawienie na aktualny czasu ostatniej modykacji wszystkich plików zadanego katalogu (parametr wywołania skryptu), do których mamy prawo dostępu do zapisu/modykacji. echo "Skrypt uruchamiany z parametrem" for le in ls $1 ; do if [ -w $1/$le ]; then touch "$1/$le" Skrypt nr 15 Policzenie wszystkich plików w zadanym katalogu (parametr wywołania skryptu), do których ustawione jest prawo dostępu do wykonania ( execute ). COUNTER=0 echo "Skrypt uruchamiany z parametrem" for le in ls $1 ; do if [ -x $1/$le ]; then COUNTER=$(($COUNTER+1)) echo "Liczba plikow wykonywalnych: $COUNTER" 5

Skrypt nr 16 Tworzenie nowych plików w zadanym katalogu (parametr wywołania skryptu), według listy umieszczonej w pliku (drugi parametr wywołania skryptu). Nowe pliki mają być zerowej wielkości (puste). Jeżeli jakiś plik już istnieje, to nie powinien zostać zniszczony. Na liście mogą znajdować się ścieżki względne do plików, w takim wypadku należy stworzyć brakujące katalogi. echo "Skrypt uruchamiany z dwoma parametrami" if [! -d $1 ] [! -w "$1" ]; then echo "Nie mozna czytac z pliku lub plik nie istenieje" for le in cat $2 ; do if [! -e "$1/$le" ]; then mkdir -p $1/ dirname $le touch $1/$le Skrypt nr 17 Jest to modykacja skryptu nr 12. Polega jedynie na tym ze skrypt wykrywa kolizję nazw plików w katalogu do którego wrzucane są dane i w razie wystąpienia powtórzeń dodaje końcówki *.i, gdzie i jest numerem kolejnego powtórzenia. COUNTER=0 zamien () { for czek in ls $1 ; do if [ $2.$COUNTER = $czek ]; then COUNTER=$(($COUNTER+1)) zamien $1 $2 } echo "Skrypt uruchamiany z parametrem" for le in ls $1 ; do if [ -d $1/$le ]; then for plik in ls $1/$le ; do if [ -e "$1/$plik" ]; then COUNTER=0 zamien $1 $plik mv -f $1/$le/$plik $1/$plik.$COUNTER else mv -f $1/$le/$plik $1 rm -rf $1/$le 6

Skrypt nr 18 W zadanym katalogu (parametr wywołania skryptu) zamienić wszystkie spacje w nazwach plików na podkreślenia. Wielokrotne spacje zamienić w pojedyncze podkreślenie. echo "Skrypt uruchamiany z 1 parametrem" for le in $1/*;do nowy= echo "$le" tr -s tr _ if [! -d "$1/$le" ] && [! "$le" = $nowy ] ; then mv "$le" $nowy Skrypt nr 19 W zadanym pliku (parametr wywołania skryptu) w poszczególnych liniach znajduje sie ścieżka i litera d lub f (katalog lub plik). Scieżka wskazuje gdzie a litera co utworzyć. echo "Skrypt uruchamiany z dwoma parametrami" if [! -d $1 ] [! -w $1 ]; then echo "Nie mozna czytac z pliku lub plik nie istenieje" bit=0 name="" dir="d" l="f" for le in cat $2 ; do if [ $bit = 0 ] ; then name=$le mkdir -p dirname $le bit=1 elif [ $bit = 1 ] ; then if [ $le = $dir ] ; then mkdir $name elif [ $le = $l ] ; then touch $name bit=0 Skrypt nr 20 W zadanym katalogu znależć pliki identyczne, które nie są dowiązaniami twardymi do siebie i zrobić z nich dowiązania twarde. if [ "$#"!= 1 ]; then echo "Skrypt uruchamiany z jednym parametrem" echo "Podany katalog nie istnieje" for plik1 in ls $1 ; do if [ -f $1/$plik1 ]; then for plik2 in ls $1 ; do inode1= ls -i $1/$plik1 cut -f1 -d inode2= ls -i $1/$plik2 cut -f1 -d if [ "$plik1"!= "$plik2" ] && [ -f $1/$plik2 ]; then cmp -s $1/$plik1 $1/$plik2 #porownanie zawartosci dwoch plikow if [ $? -eq 0 ] && [ $inode1!= $inode2 ]; then 7

rm -f $1/$plik2 ln $1/$plik1 $1/$plik2 8