There have been a few edit wars recently concerning the command-line tag. This question is an attempt to reach a community consensus on the usage of this particular tag.
So, what exactly is this tag for and when should we use it?
This is the tag's wiki excerpt:
Questions about using the command-line interface (CLI).
And the only usage guideline from the tag's wiki is:
Questions using this tag might be related to Bash - the default command line shell in Ubuntu, Shell-Scripting and Programming.
That's not very restrictive, my take on it is that any question that is explicitly seeking a CLI solution can be tagged with this tag. I don't care what else it is about, if it is asking for a solution that is run from the terminal, it can be tagged as command-line.
The Ubuntu community differs from most *nix ones in that it is very GUI oriented. There are actually Ubuntu users who never use the terminal(!). Most questions on this site are about the GUI aspect of Ubuntu. Therefore, people looking for a CLI solution tend to tag their Qs with command-line. This is a good thing!
One of the primary uses of tags is to help "experts" get to questions they can answer and that they find interesting. Personally, I do most things from the command line and the only questions I enjoy answering here are those about the CLI. Removing this tag makes me miss these questions since they are no longer highlighted for me (I have command-line in my favorite tags).
One issue here is that shell is a synonym for command-line. From the perspective of an "old-school", as opposed to Ubuntu, Linux user this is silly. The shell is one thing and the command line is another. Yes, they are related but no, they are not identical. Still, the synonym does make some sense on a site like ours where most users will not be aware of the distinctions and I don't think it is a problem or a reason to limit the use of command-line.
So, in summary, in my opinion, the tag is applicable to any and all questions where the OP has specified that they want a CLI and not a GUI solution. This means it can be applied to questions about
apt-get, to questions about parsing text, to those asking about which command does what etc. Basically, anything at all that is achieved using the CLI and not the GUI deserves this tag.
Here are a my personal principles:
I prefer a tag too much, rather than one too little. Better too much information, than too little.
I am strongly against removing redundant tags from questions. Redundancy serves a purpose and hence I prefer to keep the command-line tag for past questions where it is relevant.
Tags should be edited if they are wrong. That means 14.04 for questions that hold for all ubuntu releases, misspellings in tags, tags for which a dupe exists,... Editing tags out that are not wrong, is vandalism. When a tag is wrong is an area with fuzzy boudaries. In case of doubt, meta or the mods settle the issue.
Users that abuse their edits, should see their edit powers be taken away from them.
This is a matter of semantics and of 'fingerspitzengefühl'. Hard and fast rules are hard to come up with and to enforce. Some 'don't worry, feel happy'-style is needed.
Like Terdon I am also in favor of a broad tag. But that does not mean everything slightly related to the CL should be bombarded as a command-line question. If it is important for the question, it should have the tag, otherwise it can perfectly live without it.
In practice: a question with
rm does not necessarily need the tag command-line, but nothing is against it having the tag! In other words, the command-line tag is not needed for all questions that use the CL but if a question has the tag, there is no reason to remove it. This is a fuzzy line, but I think it is the best one.
For past tags: let's not go edit crazy. Deleting tags is really not the most important things to do and it tends to get a bit on my nerves when tags are deleted for the fun of it. Our attention sould be more on barely tagged questions and on tags with synonyms. There is more important work to be done.
To solve this discrepancy this is my proposal:
I hope this will solve the discrepancies and will offer a solid ground that we can also apply to other tags.
Ok, let me extract the fundamentals of your proposal:
Lets talk about different topics. Just bear with me.
Consistency. If we follow the fundamentals, then all
dpkg questions will have the tag, no trouble there. All
bash questions should have the tag. All
vim questions should have the tag. All
ping questions should have the tag. All
dig questions should have the tag. All
sudo questions should have the tag. All
lynx questions should have the tag. All
tty questions should have the tag. All
rm questions should have the tag; et al. These has something to do with the CLI, like 70% of all binaries, and only works in the CLI. Does this means that all of those should use the tag?
When I look for the most upvoted questions the first question is about the shell, no problem, then you see people trying to do stuff from the CLI, good, a sudo question, :/, more people for "do X from the CLI", a unity question (!), shell questions, user managing questions, the first apt question (out only 128) then more "how to do X from the CLI, plox!", mmm... found a duplicated. Ok, we see a pattern, command-line is almost only used for stuff where OP explicitly say that the solution has to be typing commands in a CLI. We see the same pattern when looking at frequency and questions with more than 20k views. The current usage of the tag agrees with your statement of "OP explicitly say that wants a solution using the CLI and not the GUI", nor so much with the other. Top askers and answerers also follow this pattern. The tendency demonstrates that it will be prejudicial for what most users have accepted is the current behavior.
Since, we already have talked about current usage of the tag, lets move the topic to redundancy. Vim, is a editor, is also a text-processor, is a command line tool (lets forget about gvim, it has a separated tag), it can be used as IDE of sorts, etc. Does that means that we need to add all those tags? apt is: a Debian (.deb) package, a package manager, a command line tool, something that installs and remove software, it also upgrades stuff, does that means that they also need all those tags? The main point is, if you already know that apt is a command line tool, isn't it redundant that you also add the command line tag? Frankly speaking, there are like 30 tags (bare version specific tags) that would apply to 99% of the questions on the site. Does that means that we should add them, if there's another tag that already means the same withing a more narrow category? If you know that you can answer question from an specific topic, but not another, what will happen if a question has both tags? Think about the noise those tags will get and their effect on the whole site.