Making it Easier to Undo Commands
Hello. I had some ideas that I would like to share with the Linux Community pertaining to making it easier to undo commands.
In the future, end-users might choose to engage in man-machine dialogues with AI systems to perform shell tasks, to execute commands, to generate and execute shell scripts on-the-fly, to open software applications, and to interact with these applications (see also: OpenInterpreter, ShellE).
What if a mistake occurred? How might end-users easily undo their previous command?
For discussion, some possibilities are indicated:
- Some commands could be accompanied by secondary commands prefixed with "undo-" or "undo_".
- Some commands' executables could have a second entry point. That is, as there is the
mainfunction, there could also be anundofunction. Theundofunction would be called when the command was expected to undo the prior call tomainand it would be expected to be provided with the same command-line arguments as the previous call to its accompanyingmainfunction.
For both of these possibilities, an "undo-command" should be able to, first, determine whether that command which it undoes had previously been run.
What do you think about these possibilities? Do any other possibilities come to mind?
Comments
-
Some more ideas and uses for multiple entry points in executables include:
- do (the main entry point, performs the action)
- undo (undoes the action)
- can do (return whether a system can presently do the action with the provided arguments without doing)
- can undo (return whether a system can presently undo the action, having done it, without undoing it)
- would be able to undo (return whether a system would be able to undo the action if it were to do it, without doing or undoing it)
In theory, secondary entry points could be executed from the command line using corresponding special "meta-commands". For example,
> undo cmd arg1 arg2would execute into the
undoentry point in thecmdexecutable, passing it the provided arguments.Uses of the
can doentry point would include easily validating command-line syntax and arguments or, for some commands, performing more complex pre-flight checklists.Any thoughts on these ideas?
0
Categories
- All Categories
- 177 LFX Mentorship
- 177 LFX Mentorship: Linux Kernel
- 765 Linux Foundation IT Professional Programs
- 377 Cloud Engineer IT Professional Program
- 174 Advanced Cloud Engineer IT Professional Program
- 75 DevOps IT Professional Program - Discontinued
- 7 DevOps & GitOps IT Professional Program
- 101 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- 3 AI & ML Training
- 1 Blockchain & Decentralized Identity Training
- 10 Cloud & Containers Training
- 1 Cybersecurity Training
- 2 DevOps & Site-Reliability Training
- 1 Linux Kernel Development Training
- 1 Networking Training
- 2 Open Source Best Practice Training
- 2 System Administration Training
- 1 System Engineering Training
- 1 Web & Application Development Training
- 796 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 91 Storage
- 770 Linux Distributions
- 81 Debian
- 68 Fedora
- 23 Linux Mint
- 13 Mageia
- 24 openSUSE
- 150 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 115 Mobile Computing
- 20 Android
- 80 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 395 Off Topic
- 121 Introductions
- 30 Study Material
- 989 Programming and Development
- 310 Kernel Development
- 661 Software Development
- 1K Software
- 394 Applications
- 182 Command Line
- 5 Compiling/Installing
- 69 Games
- 318 Installation
- Archived
- 183 Small Talk
- 2 LFD140 Class Forum
- 1.4K LFS258 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)