PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vorschläge für Projektidee benötigt: Linux_Commands


c4
25.08.2004, 13:21:36
Moin,

ich habe ein etwas größeres Projekt vor: Mich stört bei Linux/UNIX, dass man für so ziemlich alles eine Möglichkeit hat, das in der Textkonsole zu erledigen, nur kenne ich nie den dafür benötigten Befehl. manpages und google sind ja ganz nett, aber auch nicht immer das Wahre. Außerdem habe ich - wie einige schon gemerkt haben dürften - chronisch zu viel Zeit...
Die Idee ist also eine Datenbank aufzubauen, in der gespeichert wird, welcher Befehl auf welcher Konsole, unter welcher Distribution, mit welchem Parameter, ... genutzt werden kann.

Bisher habe ich 31 Tabellen. Ich denke mal, dass klar ist, was jede einzelne soll und wie sie in Zusammenhang stehen:
cmd_applications
id INT AUTO_INCREMENT PRIMARY KEY,
application VARCHAR(100),
description TEXT

cmd_categories
id INT AUTO_INCREMENT PRIMARY KEY,
category VARCHAR(100),
description TEXT

cmd_configuration
date_format VARCHAR(20),
tb_entries INT, (time between entries)
tb_visits INT, (time between visits)
ttl_sessions INT, (time to live for sessions)
allow_comments CHAR(1)

cmd_counter_ips
ip VARCHAR(15),
last_action INT,
last_entry INT

cmd_counter_values
hits INT,
visits INT,
timestamp INT

cmd_command_application
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
application_id INT,
validity CHAR(1) (<, >, *, ?)

cmd_command_category
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
category_id INT

cmd_command_comments
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
name VARCHAR(100),
email VARCHAR(100),
comment TEXT,
timestamp INT

cmd_command_description
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
description INT

cmd_command_desktop
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
desktop_id INT,
validity CHAR(1) (<, >, *, ?)

cmd_command_kernel
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
kernel_id INT,
validity CHAR(1) (<, >, *, ?)

cmd_command_parameter
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
parameter_id INT

cmd_command_os
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
os_id INT

cmd_parameter_description
id INT AUTO_INCREMENT PRIMARY KEY,
parameter_id INT,
description INT

cmd_command_path
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
path_id INT

cmd_command_shell
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
shell_id INT

cmd_command_shortcut
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
shortcut_id INT

cmd_command_website
id INT AUTO_INCREMENT PRIMARY KEY,
command_id INT,
website_id INT

cmd_commands
id INT AUTO_INCREMENT PRIMARY KEY,
command VARCHAR(100),
description TEXT,
root CHAR(1),
filetype CHAR(1), (script, binary)
structure TEXT (e.g. "pscp [options] source [source...] [user@]host:target")

cmd_desktops
id INT AUTO_INCREMENT PRIMARY KEY,
desktop VARCHAR(100),
description TEXT

cmd_interesting_commands
id INT AUTO_INCREMENT PRIMARY KEY,
command_id_1 INT,
command_id_2 INT

cmd_kernel
id INT AUTO_INCREMENT PRIMARY KEY,
kernel VARCHAR(100),
description TEXT

cmd_parameters
id INT AUTO_INCREMENT PRIMARY KEY,
parameter_short VARCHAR(100), (e.g. -v)
parameter_long VARCHAR(100) (e.g. --version)

cmd_os
id INT AUTO_INCREMENT PRIMARY KEY,
os VARCHAR(100),
description TEXT

cmd_paths
id INT AUTO_INCREMENT PRIMARY KEY,
path VARCHAR(100)

cmd_shells
id INT AUTO_INCREMENT PRIMARY KEY,
shell VARCHAR(100),
description TEXT

cmd_shortcuts
id INT AUTO_INCREMENT PRIMARY KEY,
button1 INT, (e.g. ID for CTRL)
button2 INT, (e.g. ID for ALT)
button3 INT, (e.g. ID for Shift)
button4 INT, (e.g. ID for Del)
description TEXT

cmd_shortcut_buttons
id INT AUTO_INCREMENT PRIMARY KEY,
button VARCHAR(5)

cmd_user
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
realname VARCHAR(100),
password CHAR(32)

cmd_user_sessions
sid CHAR(32) PRIMARY KEY,
user_id INT,
last_action INT

cmd_websites
id INT AUTO_INCREMENT PRIMARY KEY,
website VARCHAR(100)
Ich habe das auch mal mit dem DBDesigner aufgebaut:
--> http://www.dbCF.de/linux_commands.jpg
Tabellen, die direkt übereinander sind, haben irgendeine Beziehung. Es sollte ersichtlich sein, welche.

Die Feldtypen wurden noch keiner genaueren Überlegung unterzogen, also nicht wundern, warum die ID bei cmd_kernels z.B. ein INT hat...

Das Herzstück ist die cmd_commands. Beschreibungen werden in cmd_command_descriptions gespeichert. Kommentare in cmd_command_comments. Man kann es mit dem kommentierten Manual von PHP vergleichen, nur, dass bei dem Ding jeder die Beschreibung erweitern kann.

Was will ich eigentlich von Euch?
- Welche Tabellen/Felder könnte man noch hinzufügen?
- Was könnte man verbessern?
- Ich will nicht hören, dass es so etwas schon gibt!
- Ein guter Name für das Projekt, am besten domaintauglich. :)

So, ich hoffe, Ihr sehr hier durch und könnt mir ein paar Vorschläge unterbreiten.


Danke Euch
Carsten




PS: Ich bitte um freundliche Beachtung:
--> http://selfphp.com/forum/showthread.php?threadid=8498

diver-network
25.08.2004, 15:05:53
Hi c4,

eine gute Idee!
Vorschläge für Name des Projekts: "SelfMan", "SelfLinux", "SelfIx",...

Die Namen sind zwar nicht originell, aber können sich wenigstens auf eine gute Tradition berufen ;-)

Zu Verbesserungsvorschlägen (nach sehr kurzem ansehen der Tabellen):

Gibt es eine Möglichkeit, die Tabellen "cmd_applications" und "cmd_categories" zusammenzufassen und die Unterscheidung der Inhalte über ein drittes Feld zu machen? Die möglichen Werte des dritten Feldes kann man zur Sicherheit entweder in einer weiteren Tabelle ablegen oder in ein Textfile speichern.
Vorteil: Weniger Tabellen, leicht erweiterbar, indem man einfach einen neuen möglichen Wert definiert.
Nachteil: Eventuell schwereres SQL
Grund des Vorschlags: Aufbau der Tabellen ist identisch

HTH,

Andy

c4
25.08.2004, 15:10:43
Original geschrieben von diver-network
Vorschläge für Name des Projekts: "SelfMan", "SelfLinux", "SelfIx",... Gute Idee! Ich werde mich mal in dieser Richtung umschauen.

Die Idee mit dem Zusammenfassen von Tabellen hatte ich auch schon. Es gibt aber ein paar Tabellen, die schon jetzt aus der Reihe springen: cmd_command_application, cmd_command_desktop, cmd_command_kernels. Die 3 haben zusätzlich das Feld validity. Die Chance, dass sich bei den Tabellen mal was ändert ist eigentlich gar nicht mal soooo gering. Deswegen habe ich mich für diese Variante entschieden.
Ich halte es auch einfach für sauberer: "Code muss schön sein!" :)

c4
25.08.2004, 16:11:49
SelfPrompt.de? Ist doch 'ne Idee, oder? Zumindest trifft es den Kopf auf den Hammer mit dem Nagel.

Hab mir jetzt selfprompt.de gesichert. Gefällt mir einfach der Name. :)