matematykaszkolna.pl
. asdf: Jest tutaj ktoś z programowania (początki), basha?
3 lis 23:22
TriviaI: Pytaj. Coś tam wiem. emotka
3 lis 23:26
asdf: katalog nadrzędny to ten wyżej?
3 lis 23:31
TriviaI: tak
3 lis 23:32
asdf: mam takie drzewko: bash −−−−b1 −−−−−−−−−>plik: sala1 −−−−−−−−−>plik: sala2 −−−−−−−−−>plik: sala22 −−−−−−−−−>plik: sala220 −−−−−−−−−>plik: sala23 −−−−b2 i z katalogu nadrzędnego skopiowac wszystko z b1 do b2 za pomoca polecenia cp to będąc w katalogu bash, to będzie takie polecenie? cp ./b1/sala1 ./b2
3 lis 23:34
asdf: Jeżeli takei coś się wykonuje trzeba pierw nadać uprawnienia tym plikom, czy jeżeli chce się je otworzyć do dopiero to trzeba robic?
3 lis 23:35
asdf: Już zrobiłem to pierwsze, teraz mam takie coś: będąc w katalogu b1 usunąć wszystkie pliki z b2 pwd: bash/b1 polecenie: rm * ../b2 i nie działa
3 lis 23:39
TriviaI: Prawdopodobnie będzie to coś w rodzaju: cp b1/* b2 Jeśli chodzi o uprawnienia to nie wiem. Sprawdź na żywo. emotka Strzelam że nie trzeba mieć uprawnień do otwierania, żeby skopiować.
3 lis 23:39
TriviaI: rm ../b2/* Możesz te polecenia sprawdzać gdzieś?
3 lis 23:41
asdf: tak, siedzę na linuxie i to sprawdzam.
3 lis 23:42
asdf: tylko mnie jedno zastanawia: robię tak, usuwam jeden plik z b1 będąc w b2: pwd: /bash/b2 polecenie: rm sala2 ../b1 wyskakuje mi: rm: nie można usunąć `../b1': Jest katalogiem A plik usuwa normalnie. Wiem, że do usuwania katalogów jest polecenie rmdir, ale czemu taki "błąd" wyskakuje, a usuwa się wszystko normalnie?
3 lis 23:44
TriviaI: rm przyjmuje prawdopodobnie ścieżki do kolejnych zasobów (plików i folderów). Jako, że ../b1 jest katalogiem to nie usunie go. Spróbuj dać rm ../b1 Dalej działa? Jeśli tak to nie mam pojęcia. emotka
3 lis 23:49
asdf: Ale ja nie chcę usunąć katalogu b1 tylko wszystko w nim znajdujące się, robię to tak: pwd: bash/b2 polecenie: rm * ../b1 rm: nie można usunąć ../b1: jest katalogiem a jak robię: rm ../b1/* to śmiga emotka
3 lis 23:52
TriviaI: Polecenie rm * ../b1 Spróbuje usunąć wszystko (za to odpowiada *) z bieżącego katalogu, a następnie zasób "../b1", itd...
3 lis 23:54
asdf: Nadaj odpowiednie prawa dostępu plikom w katalogu b2: − nadaj wszystkim oraz grupie prawa do zapisu i odczytu, a właścicielowi dodatkowe prawo do wykonania − usuń wszystkim, grupie oraz właścicielowi prawa do czytania "nadaj wszystkim" − to znaczy, że pozostałym?
3 lis 23:55
TriviaI: Tak.
3 lis 23:57
asdf: będzie to chmod 755 7 − rwx 5 − r−x 5 − r−x 3 − −wx −−−−− ale skoro wykonywanie to spotyka się taki parametr? 1 − −−x − tu to samo...dziwne
3 lis 23:59
konrad: o miałem to na drugim roku, ale teraz niewiele pamiętam
4 lis 00:02
TriviaI: Prawo do wykonywania to prawo do uruchomienia czegoś jak programu. Nie możesz tego przeczytać, zmienić − możesz uruchomić. O szczegóły mnie proszę nie pytać. emotka 3 → −wx → możesz zapisać nowe dane i uruchomić. 1 → −−x → możesz tylko uruchomić.
4 lis 00:03
TriviaI: a) chmod 766 b) chmod −−jakaś−magiczna−opcja i dalej nie wiem. emotka
4 lis 00:05
asdf: Napisz taki skrypt, który tworzy (w katalogu głównym) katalog o nazwie Tmp, a następnie przeniesie wszystkie pliki o trzyliterowych nazwach, zaczynające się na literkę a, znajdujące się w katalogu bieżącym do katalogu Tmp. Po zakończeniu tych czynności skrypt powinien wyświetlić informację tekstową KONIEC. Zaraz napiszę co potrafię.
4 lis 00:10
asdf: #!/bin/bash mkdir .../TMP move a .../TMP echo "KONIEC" to tak ma wyglądać?
4 lis 00:11
asdf: Jak jestem baardzo daleko w drzewie i chcę przejść do katalogu HOME to jakiej komendy użyć? pwd: bardzo/daleko/gdzies/w/katalogach/ próbuję: cd */home ale nie trybi
4 lis 00:14
TriviaI: cd ~
4 lis 00:15
TriviaI: Katalog główny to katalog użytkownika? Przyjmijmy, że tak. Wtedy #!/bin/bash mkdir ~/Tmp mv a?? ~/Tmp echo "Koniec"
4 lis 00:18
asdf: pwd: bash/b1/ pico skryptzad7 wpisuje: #!/bin/bash mkdir ~/TMP mv ~/a ~/TMP echo KONIEC Teraz zadziałało emotka
4 lis 00:29
TriviaI: Powinno być bez tego na czerwono. emotka
4 lis 00:32
TriviaI: W katalogu bash/b1 powinieneś mieć kilka plików typu: aaa, aab, adce, bca, bdcs oraz plik ze skryptem. Wykonaj go i gotowe. emotka
4 lis 00:33
asdf: ale w poleceniu jest, że z dowlonie wolnego miejsca i ja to rozumiem tak: jestem w katalogu /bash/b1 to przeniesie wszystkie pliki 3 literowe na litere "a" z katalagu /bash/b1 do ~/TMP a w poleceniu jest "skrypt moze byc w dowolnym miejscu", a pliki są w katalogu głównym
4 lis 00:33
asdf: a nie, masz racje emotka To ja źle doczytałem emotka Ale chyba dobrze zrozumiałem polecenie z ptakiem i bez ptaka
4 lis 00:34
asdf: Właścicielem plik, np. zolw jest się wtedy, jeżeli w jego katalogu głównym (lub w podkatalogach) znajduje się plik zolw?
4 lis 00:37
TriviaI: Właścicielem pliku jest się wtedy, gdy ma zapisaną twoją nazwę użytkownika jako właściciel. emotka Nigdy się nad tym nie zastanawiałem.
4 lis 00:40
asdf: Napisz skrypt, który plikom z katalogu bieżącego nada prawa dostępu w następujący sposób: − jeśli nazwa pliku zaczyna się literą a – właściciel i grupa otrzymują prawo do czytania i pisania, pozostali użytkownicy tylko prawo do odczytu; − jeśli nazwa pliku zaczyna się literka b – właściciel otrzymuje pełne prawa, grupa – czytanie i wykonanie, a pozostali – tylko odczyt; − jeśli nazwa rozpoczyna się inna literka niż wymienione powyżej – tylko właściciel otrzymuje prawa, są to prawa do odczytu i zapisu;
4 lis 00:59
asdf: Napisałem taki skrypt: −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− #!/bin/bash function nadawanie { if[./a*] then chmod 664 elseif [./b*] then chmod 764 else chmod 600 fi } nadawanie −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− nadałem mu uprawnienia: chmod 770 skrypt8 i wywala mi błąd: ./skrypt8: line 5: błąd składni przy nieoczekiwanym znaczniku `then' ./skrypt8: line 5: `then chmod 664'
4 lis 01:01
asdf: jestes?
4 lis 01:08
asdf: #!/bin/bash if [ ~/a* ] then chmod 664 a* elif [ ~/b* ] then chmod 764 b* else chmod 600 * fi Takie coś zrobiłem, w miare działa, w miare nie działa, już nie wiem czemu. Będziesz mógł to zajrzyj, ja idę spać. Dobranoc emotka
4 lis 01:40
TriviaI: Wczoraj cicho się ulotniłem. emotka
4 lis 12:22
asdf: emotka
4 lis 12:40
TriviaI: Najprostszy sposób (ale wolny jeśli mamy dużo plików na a i b) to: 1. Wszystkim plikom nadajemy prawo właściciela do odczytu i zapisu. 2. Plikom na a nadajemy prawo właściciela i grupy do czytania i pisania. 3. Plikom na b nadajemy pełne prawo właściciela, grupy − do czytania i wykonywania, a pozostałych − do odczytu. chmod 600 * chmod 660 a* chmod 754 b*
4 lis 13:03
asdf: Nie wiem czy Cie dobrze zrozumiałem, ale ja mam to zrobić za pomocą skryptu, jak go odpalę to samemu nada te prawa. Dzięki za poprawione chmody, gubię się jeszcze w nich emotka
4 lis 13:12
TriviaI: Skoro ma być skrypt to zapisz te polecenia do pliku. emotka #!/bin/bash chmod 600 * chmod 660 a* chmod 754 b*
4 lis 13:16
asdf: to nie potrzebnie robiłem to za pomocą IF?
4 lis 13:23
TriviaI: Twój sposób nie zadziała. Żeby użyć if trzeba prawdopodobnie zrobić pętlę po wszystkich plikach, sprawdzać jak się nazywają i wykonywać odpowiednie polecenia (nie pamiętam jak się to robi).
4 lis 13:33
TriviaI: A żeby mój skrypt działał szybciej wystarczy zmienić go na: #!/bin/bash chmod 660 a* chmod 754 b* chmod 600 [ab]* Teraz jest już po kolei tak jak w zadaniu. ;) Składnia [...] oznacza "Dowolny znak, który nie jest jednym z ..."
4 lis 13:35
TriviaI: A żeby mój skrypt działał szybciej wystarczy zmienić go na: #!/bin/bash chmod 660 a* chmod 754 b* chmod 600 [^ab]* Teraz jest już po kolei tak jak w zadaniu. emotka Składnia [^...] oznacza "Dowolny znak, który nie jest jednym z ..."
4 lis 13:36
asdf: Dzięki. Jak odpaliłem tego skrypta to normalnie zmieniał uprawnienia dla plików zaczynających się na a. Nie sprawdzałem jak to dla plików zaczynających się na b. Dzięki wielkie za pomoc emotka
4 lis 13:39
asdf: Chodzi mi o skrypta ze składnią IF
4 lis 13:41
TriviaI: Metodą prób i błędów udało mi się naklepać takie coś: http://ideone.com/0vFzLK Gratisowo wypisuje co się dzieje.
4 lis 14:04
asdf: Dziękuję emotka Na pewno się przyda do nauki emotka DZIĘKI DZIĘKI! emotka
4 lis 18:06