staging.inyokaproject.org

[neuer Artikel] CLI Companion

Status: Gelöst | Ubuntu-Version: Xubuntu 10.04 (Lucid Lynx)
Antworten |

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Danke.

Lokalisierung würde ja eigentlich auch deutsche man-pages bedeuten - eine Heidenarbeit die alle zu übersetzen... Ob sowas wohl je kommen wird?

Das ist für mich schon länger ein Thema. Weil mich diese Barriere stört. Was oft vergessen wird: Es gibt eine Nachkriegsgeneration, die genauso intelligent ist wie nachfolgenden, die aber auch auf einer Hauptschule kein Englisch gelernt hat. Hauptschule? Klar, trotz Bestnoten! Weil kein Geld da war in Arbeiterhaushalten ...

... glaube aber nicht daran, werde aber mal den Thread suchen ... ups, der Chef kommt ...

Alice_wtfiA

Anmeldungsdatum:
6. Januar 2011

Beiträge: 1292

Hiideehoo - boss key needed

Fehlerbericht 703119 - "Manpages still in english after the "language support" update.- 15.1.2011

s.a. https://translations.launchpad.net/ubuntu-docs

man-Tastenkürzel ← auch nicht von schlechten Eltern!

LG

 ...... __@
 ...._ \ >_
 ...(_)/ (_)_________ 
 
> 

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

"Limburgian is registered as being spoken in the following countries:

  • Belgium

  • Germany

  • Netherlands"

???

Problem: shell-Skripte können Variablen nur für sich und Kindprozesse definieren. Kein Workaround für das Problem der Umgebungsvariablen möglich.

Doch. gefunden. Perl-Skripte (bibliothek!) oder Kindprozesse in den Umgebungen.

edit2: weiteres Workarounds eingefügt: Umleitungen

drittes: im Befehl selbst

Rückgriff der Variablen auf Bibliothek eingefügt.

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Habe Teile, die dem Wikiteam nicht gefallen, oder nicht gefallen werden/würden, ausgelagert. 😢

Alice_wtfiA

Anmeldungsdatum:
6. Januar 2011

Beiträge: 1292

Hej Rationalist

hmmmm... ich sehe da ein Problem... 😲 .

Benutzerseiten können nur von angemeldeten Interessierten gelesen werden ..., und dürfen auch nur vom Benutzer verändert werden... (Das ist beides u.U. ein Nachteil)

Da gibt es irgendwo einen Diskussionsstrang zu, bin jetzt etwas zu bequem den zu suchen. Irgendwo im Ikhaya (3/11) gab es eine Meldung dazu. Ich fand diese Entscheidung gut und richtig, doch das hat ja jetzt mal wenig mit Cli_Companion zu tun. Sinn des Wikis ist ja auch, das es "shockproof" wird und/oder bleibt. Und es hat sich doch niemand beschwert, oder?

Außerdem gibt's da nochwas: Benutzerseite (Abschnitt „Was-nicht-gestattet-ist“) -Keine Links aus dem Wiki auf Benutzerseite-

Eine Idee, wie Du das trotzdem auflösen könntest, hätte ich schon: Du könntest eine Unterseite, z.B. "Baustelle/Cli_Companion/Fortgeschrittene" (o.s.ä) einrichten und diese dann unter Links referenzieren. Diese wird dann mit dem Haupartikel aus der Baustelle verschoben. Vorteil-1: HauptArtikel bleibt übersichtlich + straff.

Den Titel der Unterseite kann man/Du auch vor (!), bzw. beim Verschieben aus der Baustelle noch ändern, falls nötig oder gewünscht.

Oder Du legst eine neue Seite an 'Baustelle/Cli_Companion_Teil2' (ob das so geht, müsste evtl.jemand vom Wiki-Team bestätigen) Vorteil-2: Sie wird verschieben des Hauptartikels nicht berührt. Und wenn Du dann das o.K. gibst zum Verschieb'n, könnte sie an den Hauptartikel angehängt werden.

Allerdings bin ich mir auch fast sicher, das die Hauptseite auch ohne Seiten-Anhang im vollwertigen Wiki landen kann, dann wenn's soweit ist. Erst dann, verschwindet nämlich die Box oben.

btw. Das Verschachteln von Befehlen über mehrere Variabeln ist wohl doch zu bewerkstelligen:

Beispiel (der Befehl sagt mir nix, es geht um's Prinzip dabei):

  • cat file1.txt file2.txt | sort | uniq > file3.txt
  • cat ? ? | sort | uniq > ?

Könntest Du noch ein Beispiel für den Strichpunkt ( ; ) anführen? (Zeilenumbruch im Skript) Das wird mir so nicht klar.

Wer weiss schon so genau, was sich mit der nächsten Generation des kleine Programms ändert, sicherlich 'ne Chance für neue Bildschirmfotos ☺ Auf jeden Fall kommen noch ein paar schöne "Features" dazu.

So, hab mal bewusst versucht, den Text kurz zu halten. (und bitte nicht als Kritik auffassen, ja?)

Netter Gruss
Alice wtfiA

P.S.: Solange Du nicht fragst, wird hier kein Artikel verschoben. Noch eine Bitte: Schreibst Du Editor statt Schreibprogramm? Das hört sich so nach Textverabeitung an.

Limburgian oder auch Limburgish 🇬🇧 (u.a.), hab ich jetzt auch noch nie gesprochen gehört.

march Team-Icon

Avatar von march

Anmeldungsdatum:
12. Juni 2005

Beiträge: 17329

Habe Teile, die dem Wikiteam nicht gefallen, oder nicht gefallen werden/würden, ausgelagert. 😢

Ich weiß - wir sind alle böse und gemein... 😉 Ich finde den Artikel soweit ganz gut. Ein paar Syntaxfehler habe ich behoben. Kann sein, dass noch welche drin sind aber meine Pause ist vorbei.

P.S.: Solange Du nicht fragst, wird hier kein Artikel verschoben.

Yep - einfach Feedback geben, wenn du fertig bist. ☺ Wie gehabt dann drei Tage der öffentlichen Diskussion bevor er dann ins Wiki wandert. Danke schon einmal für deine Zeit die du in den Artikel investiert hast. ☺

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Alice wtfiA schrieb:

Benutzerseiten können nur von angemeldeten Interessierten gelesen werden ..., und dürfen auch nur vom Benutzer verändert werden... (Das ist beides u.U. ein Nachteil)

Richtig ... ich wollte halt, daß sich etwas bewegt, nämlich der Artikel selbst in eine gültige Fassung. Das Zeug ist ja nicht verloren. Aber Eines versichere ich: der Teil mit den Umgebungsvariablen ist selbsterforscht und heute wohl weltweit das Avancierteste, was zu diesem Programm zu finden ist. 🙄 Damit wäre ubuntuusers.de kurzsfristig vorne dran. Nur muß dieses gefährliche Zeug (im Klartext!) wohl von der Seite runter. Wenn Du an dem nerdigen Teil was ändern willst: ändern, mir schicken, ich füge es ein. Ich versuche, Dir den Code zu schicken.

Da gibt es irgendwo einen Diskussionsstrang zu, bin jetzt etwas zu bequem den zu suchen. Irgendwo im Ikhaya (3/11) gab es eine Meldung dazu. Ich fand diese Entscheidung gut und richtig, doch das hat ja jetzt mal wenig mit Cli_Companion zu tun. Sinn des Wikis ist ja auch, das es "shockproof" wird und/oder bleibt. Und es hat sich doch niemand beschwert, oder?

Außerdem gibt's da nochwas: Benutzerseite (Abschnitt „Was-nicht-gestattet-ist“) -Keine Links aus dem Wiki auf Benutzerseite-

Betrifft das jetzt mich? Klär mich auf! Geht es um den Verweis? Ich habe ja nicht "verlinkt", sondern die Benutzer auf die Erweiterung hingewiesen. Ist das auch gemeint?

Eine Idee, wie Du das trotzdem auflösen könntest, hätte ich schon: Du könntest eine Unterseite, z.B. "Baustelle/Cli_Companion/Fortgeschrittene" (o.s.ä) einrichten und diese dann unter Links referenzieren. Diese wird dann mit dem Haupartikel aus der Baustelle verschoben. Vorteil-1: HauptArtikel bleibt übersichtlich + straff.

Ja, wenn dann die Problematik mit der Sicherheit vom Tisch ist ... gerne. Hab auch schon drüber nachgedacht. Also einfach eine neue Baustelle anlegen?

Oder Du legst eine neue Seite an 'Baustelle/Cli_Companion_Teil2' (ob das so geht, müsste evtl.jemand vom Wiki-Team bestätigen) Vorteil-2: Sie wird verschieben des Hauptartikels nicht berührt. Und wenn Du dann das o.K. gibst zum Verschieb'n, könnte sie an den Hauptartikel angehängt werden.

Ist mir egal ...

btw. Das Verschachteln von Befehlen über mehrere Variabeln ist wohl doch zu bewerkstelligen:

Beispiel (der Befehl sagt mir nix, es geht um's Prinzip dabei):

  • cat file1.txt file2.txt | sort | uniq > file3.txt
  • cat ? ? | sort | uniq > ?

Muß ich noch drüber nachdenken.

Könntest Du noch ein Beispiel für den Strichpunkt ( ; ) anführen? (Zeilenumbruch im Skript) Das wird mir so nicht klar.

Mach ich. Aber da müßte eigentlich ein link stehen.

Wer weiss schon so genau, was sich mit der nächsten Generation des kleine Programms ändert, sicherlich 'ne Chance für neue Bildschirmfotos ☺ Auf jeden Fall kommen noch ein paar schöne "Features" dazu.

Ich befürchte ein bißchen, daß da Sicherheitslücken ($VAR und eval $VAR) gestopft werden und das Programm dann wieder langweiliger wird.

Noch eine Bitte: Schreibst Du Editor statt Schreibprogramm?

ja.

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Alice wtfiA schrieb:

btw. Das Verschachteln von Befehlen über mehrere Variabeln ist wohl doch zu bewerkstelligen:

Beispiel (der Befehl sagt mir nix, es geht um's Prinzip dabei):

  • cat file1.txt file2.txt | sort | uniq > file3.txt
  • cat ? ? | sort | uniq > ?

Wenn ich das richtig verstehe, ist es was anderes als ich meine.

Ich meine:

man holt sich mit grep einen Befehl aus der Bibliothek, der selbst ein ? als CLIC-Variable enthält. Mit diesem Befehl wird als reine Zeichenkette eine Bash-Variable VAR123 definiert und diese in einem anderen CLIC-Befehl mit $VAR123 ausgeführt. Da ist aber immer noch das Fragezeichen drin. Dieses erkennt CLIC nicht mehr.

Es müßte also vor bzw. bei der Variablendefinition gestopft werden. Dazu braucht man so was wie eine rekursive (!) Funktion, die, so oft ein ? auftritt, eine neue Einsetzung von Code verlangt und sich gleich wieder auf diesen Code anwendet und sich selbst bei Aufgefülltheit aller ? auf ihrer Ebene 0 wieder schließt und an die nächsthöhere Funktionsebene (ebene -1) übergibt . Und man könnte noch jeden aufgefüllten Bereich schnell mal Syntax-checken.

😛

Alice_wtfiA

Anmeldungsdatum:
6. Januar 2011

Beiträge: 1292

Vll irgendwie so community/CommandlineHowto s. 2.2 Multiple commands

Geiles Gutes Argument übrigens im Artikel dort benannt

  • enable you to use Linux in ways that using a GUI exclusively can not.

oder mit '&&' im Befehl oder mit Doppelpipe? Ich find sowieso 'nohub' kommt zu kurz...

Der neue Anfänger freut sich ja schon mächtig, wenn er einen funktionierenden Befehl dauerhaft woanders, als in einem Textdokument speichern kann.

Und wenn er dann sowas

cut -f1 -d" " ~/.bash_history | sort | uniq -c | sort -nr | head -n 30

oder

history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -30

← Beides: "Die 30 meistgenutzten Kommandos der .bash-history, sortiert nach Häufigkeit der Benutzung"

findet, weiß er wahrsch. garnet was er damit anfangen soll und wo er/sie da 'n Fragezeichen einbauen könnte.

edit: Nachtrag, hab aber noch nicht soviel Ahnung von der Kommandozeile..., ohne jailbox möcht' ich da nich rumprobieren...

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Ich hab den hier:

1
export QQ=$(mktemp -d);(cd $QQ; curl -s -O http://www.commandlinefu.com/commands/browse/sort-by-votes/plaintext/[0-2400:25];for i in $(perl -ne 'print "$1\n" if( /^(\w+\(\))/ )' *|sort -u);do grep -h -m1 -B1 $i *; done)|grep -v '^--' > clf.sh;rm -r $QQ

da muß man curl installiert haben. Dann kommt clf.sh ins Arbeitsverzeichnis ind man kann seine clicompanion-Bibliothek aufmotzen. Leider fehlt noch ein Umschreibeskript ins clicompanion-Format ...

Ich stelle mir in der Bibliothek übrigens Ausdrücke vor wie

if ( ? ) then ( ? ) else ( ? ) ... und ... while ( ? ) do ( ? )

die man dann einsetzen kann:

if ( ? ) then ( if ( ? ) then ( ? ) else ( ? ) ) else ( while ( ? ) do ( while ( ? ) do ( ? ) ) )

und so weiter. Nur ist dies halt nicht vorgesehen. Deshalb mach ich so mit den Skripten rum ..

... findet, weiß er wahrsch. garnet was er damit anfangen soll und wo er/sie da 'n Fragezeichen einbauen könnte.

Hmmm Ich denke darüber nach.

alles Gute

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

... also mir reicht's jetzt mit diesem Fragezeichen, da wirst ja vollkommen blöd davon! 👿

Ich schau mir das auch nicht mehr an, nicht vor einem neuen Release.

Ich kann das nicht mal richtig dokumentieren, weil ich keine Gesetzmäßigkeiten dahinter finde.

Vielleicht in den python-Skripten ... hier ist das Miststück:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
    ## send the command to the terminal

356 	

    def run_command(self, widget, notebook, liststore):

357 	

358 	

        text = ""

359 	

        row_int = int(view.ROW[0][0]) ## removes everything but number from [5,]

360 	

361 	

        ## get the current notebook page so the function knows which terminal to run the command in.

362 	

        pagenum = notebook.get_current_page()

363 	

        widget = notebook.get_nth_page(pagenum)

364 	

        page_widget = widget.get_child()

365 	

        ## view.CMNDS is where commands are stored

366 	

        cmnd = view.CMNDS[row_int][0]

367 	

            

368 	

        ## find how many ?(user arguments) are in command

369 	

        match = re.findall('\?', cmnd) 

370 	

        '''

371 	

        Make sure user arguments were found. Replace ? with something

372 	

        .format can read. This is done so the user can just enter ?, when

373 	

        adding a command where arguments are needed, instead

374 	

        of {0[1]}, {0[1]}, {0[2]}

375 	

        '''    

376 	

        if match == False:

377 	

            pass

378 	

        else:

379 	

            num = len(match)

380 	

            ran = 0

381 	

            new_cmnd = self.replace(cmnd, num, ran)

382 	

383 	

384 	

        if not view.CMNDS[row_int][1] == "": # command with user input

385 	

            c = ""

386 	

            try:

387 	

                text = self.get_info(self, liststore)

388 	

                c = new_cmnd.format(text)

389 	

            except: 

390 	

                error = gtk.MessageDialog (None, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,

391 	

                    _("You need to enter full input. Click on [x] to continue."))

392 	

                error.run()

393 	

            page_widget.feed_child(c+"\n") #send command w/ input

394 	

            page_widget.show()

395 	

            page_widget.grab_focus()

396 	

        else: ## command that has no user input

397 	

            page_widget.feed_child(cmnd+"\n") #send command

398 	

            page_widget.show()

399 	

            page_widget.grab_focus()

400 	

            

401 	

    ## replace ? with {0[n]}

402 	

    def replace(self, cmnd, num, ran):

403 	

        replace_cmnd=re.sub('\?', '{0['+str(ran)+']}', cmnd, count=1)

404 	

        cmnd = replace_cmnd

405 	

        ran += 1

406 	

        if ran < num:

407 	

            return self.replace(cmnd, num, ran)    

408 	

        else:

409 	

            pass

410 	

        return cmnd
controller.py (24.2 KiB)
Download controller.py

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Servus ☺

Relationalist schrieb:

Ich kann das nicht mal richtig dokumentieren, weil ich keine Gesetzmäßigkeiten dahinter finde.

Programmdokumentationen sind auch Sache des Programmautors 😉 → gehört nicht in dieses Wiki.

Gruß
kaputtnik

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Danke.

Wenn ich aber jetzt im Code was gefunden habe, was besser als die Anleitung auf der Homepage, ja überhaupt endlich funktioniert, kann ich das dann sagen?

Danke. ☺

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Servus ☺

Relationalist schrieb:

Wenn ich aber jetzt im Code was gefunden habe, was besser als die Anleitung auf der Homepage, ja überhaupt endlich funktioniert, kann ich das dann sagen?

Wenn das was Du gefunden hast, definitiv auch zum normalen Funktionsumfang des Programmes gehört, etwas ist, das der Programmierer auch gewollt hat: Ja.

Die Warnung:

Achtung!

Da es noch keine "manpage" und ansonsten nur sporadische Dokumentation zu CLI Companion gibt, kommen einige der Aussagen hier nur durch Experimente und Lesen des Programmtextes zustande und können trotz gewissenhafter Bemühung nicht als abgesichert gelten.

sagt allerdings etwas anderes aus. Daraus würde ich eher auf Mutmaßung schließen und Mutmaßungen sollten nicht ins Wiki.

Es ist gut, das Dich mit dem Programm derart auseinander setzt. Wenn ich das richtig sehe, bist Du mit dem Programmautor ja schon in Kontakt getreten ☺ . Biete ihm doch einfach Deine Mithilfe bei der Dokumentation an. Frage ihn wie und wo Du Dich einbringen könntest. Das ist IMHO der bessere Weg, als hier im UU-Wiki ein Programm zu Dokumentieren. Im allgemeinen wird hier nur eine kurze Einführung in ein Programm gegeben und mehr soll ein Wikiartikel auch nicht beinhalten. Denn die Dokumentation eines Programms mit all seinen Optionen und Möglichkeiten obliegt den Projektleuten.

Ich hoffe Du verstehst mich richtig: Ein Artikel über das Programm ist gut. Aber alles was über eine kurze Einführung hinaus geht, ist hier fehl am Platz. Wir können jetzt darüber philosophieren, wo eine kurze Einführung aufhört... Mutmaßungen gehören auf jeden Fall nicht mehr dazu ☺

Gruß
kaputtnik

Relationalist

(Themenstarter)

Anmeldungsdatum:
17. Juni 2008

Beiträge: 1131

Also bevor ich eine irreführende Einführung mache ("man kann" ... und dann kann es keiner, weil keiner weiß wie), mache ich keine.

Hab mich schon gewundert, warum es so viele verlassene Wiki-Artikel gibt. 💡

Dann können ja bestimmte Autoren und Artikel unter sich bleiben.

Ihr könnt mit den Inhalten ja eh machen was Ihr wollt. 😉

tschüss.