// Zad2
vim plik.txt
"To jest plik raz, dwa, trzy"
:wq
grep "To" plik.txt
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad3
80017@st13-lab312:~$ cp /etc/skel/.bashrc .bashrc
80017@st13-lab312:~$ cp /etc/skel/.profile .profile
80017@st13-lab312:~$ vim .bashrc
Wpisanie export BLABLA="ala ma kota" do .bashrc (nad case)
80017@st13-lab312:~$ echo $BLABLA
ala ma kota
Zmienna BLABLA zawiera wcześniej zapisany w pliku .bashrc ciąg "ala ma kota"
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad4
80017@st13-lab312:~$ mkdir A
80017@st13-lab312:~$ mkdir B
80017@st13-lab312:~$ cd A
80017@st13-lab312:~/A$ mkdir AA
80017@st13-lab312:~/A$ mkdir BB
80017@st13-lab312:~/A$ cd AA
80017@st13-lab312:~/A/AA$ mkdir AAA
80017@st13-lab312:~/A/AA$ mkdir BBB
80017@st13-lab312:~/A/AA$ cd ../../B
80017@st13-lab312:~/B$ mkdir CC
80017@st13-lab312:~/B$ cd
80017@st13-lab312:~$ cd A/AA/BBB
80017@st13-lab312:~/A/AA/BBB$ pwd
/home/80017/A/AA/BBB
80017@st13-lab312:~/A/AA/BBB$ cd ../../../B/CC
80017@st13-lab312:~/B/CC$ cd ../
80017@st13-lab312:~/B$ rmdir CC
80017@st13-lab312:~/B$ cd ../
80017@st13-lab312:~$ rm -rf A
80017@st13-lab312:~$ rm -rf B
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad5
head plik.txt -c 8
ln -s plik.txt link -> cat link
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad6
Zawartość pliku po wykonaniu ls > plik.txt to wynik komendy ls:
Dokumenty
Muzyka
Obrazy
Pobrane
Publiczny
Pulpit
Szablony
Wideo
plik.txt
zad11
zad11.c
ls -la
Rozmiar pliku: 87B
Po wykonaniu tej samej operacji z podwójnym przekierowaniem rozmiar to 174B (dwa razy większy – dopisano drugi raz wynik ls)
Po wykonaniu jeszcze raz z pojedynczym przekierowaniem rozmiar to 87B (usunięto starą zawartość I zapisano wynik polecenia ls)
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// zad 7
type firefox
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad10
#include <stdio.h>
#include <stdlib.h>
int main(){
printf("Hello world!\n");
return 0;
}
//80017@st13-lab312:~$ vim zad10.c
//80017@st13-lab312:~$ gcc zad10.c -o zad10 -Wall
//80017@st13-lab312:~$ ./zad10
//Hello world!
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad11
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i;
for(i = argc - 1; i >= 0; i--)
printf("%s\n", argv[i]);
return 0;
}
//80017@st13-lab312:~$ vim zad11.c
//80017@st13-lab312:~$ gcc zad11.c -o zad11 -Wall
//80017@st13-lab312:~$ ./zad11 ala ma kota
//kota
//ma
//ala
//./zad11
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad12
#include<stdio.h>
#include<stdlib.h>
int main(argc,argv,envp)
int argc;
char *argv[];
char *envp[];
{
int ii;
for (ii=0; envp[ii] != (char *) 0; ii++)
printf("%s\n",envp[ii]);
exit(0);
return 0;
}
vim zad12.c
gcc zad12.c -o zad12 -Wall
./zad12
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad13
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(){
printf("pid procesu: %d\npid procesu macierzystego:%d\n", getpid(), getppid());
return 0;
}
///////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
printf("getpgrp: %d\n", getpgrp());
return 0;
}
//80017@st13-lab312:~$ vim zad13.c
//80017@st13-lab312:~$ gcc zad13.c -o zad13 -Wall
//80017@st13-lab312:~$ ./zad13
//pid procesu: 3001
//pid procesu macierzystego:2613
//Funkcja getpgrp() złuży do pobierania numeru grupy procesów, przykład:
//80017@st13-lab312:~$ vim zad13_2.c
//80017@st13-lab312:~$ gcc zad13_2.c -o zad13_2 -Wall
//80017@st13-lab312:~$ ./zad13_2
//getpgrp: 3059
//Funkcja setgrp() złuży do zmiany numeru grupy procesów
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad14
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(){
printf("id uzytkownika: %d\nid grupy: %d\n", getuid(), getgid());
return 0;
}
//////////////////////
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(){
printf("efektywny id uzytkownika: %d\nefektywny id grupy: %d\n", geteuid(), getegid());
return 0;
}
//80017@st13-lab312:~$ vim zad14.c
//80017@st13-lab312:~$ gcc zad14.c -o zad14 -Wall
//80017@st13-lab312:~$ ./zad14
//id uzytkownika: 57674115
//id grupy: 57672193
//Funkcja geteuid() zwraca efektywny identyfikator użytkownika
//Funkcja getegid() zwraca efektywny identyfikator grupy
//Przykład:
//80017@st13-lab312:~$ vim zad14_2.c
//80017@st13-lab312:~$ gcc zad14_2.c -o zad14_2 -Wall
//80017@st13-lab312:~$ ./zad14_2
//efektywny id uzytkownika: 57674115
//efektywny id grupy: 57672193
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/
// Zad15
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
struct stat s;
int main(int argc, char *argv[]){
int i;
if(argc >= 2){
for(i=1; i<argc; i++){
int file = stat(argv[i], &s);
if(file == -1){
perror("stat");
}else{
printf("\nNazwa pliku: %s\n", argv[i]);
printf("Uprawnienia: %d\n", (int) s.st_mode);
printf("Numer wezla: %d\n", (int) s.st_ino);
printf("Identyfikator urzadenia: %d\n", (int) s.st_dev);
printf("Liczba dowiazan: %d\n", (int) s.st_nlink);
printf("Identyfikator uzytkownika: %d\n", (int) s.st_uid);
}
}
}else{
printf("Blad arg\n");
}
return 0;
}
/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/