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?
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.
ls -l
, I am using the shell to launch the program, but the -l
flag, while still part of the command line, is not managed by the shell but by ls
itself. There are dozens of different shells, but you use all of them from the command line.
apt-get
should have the tag command-line
. People will start adding the tag ubuntu
again if you follow that logic.
rm
does not necessarily need the tag command-line (even though nothing is against it having the tag! [and here I clearly disagree with some of the edit crazy people]).
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.
rm
Q, stick a command-line
on to it since that can help bring in the experts. I am not suggesting (at any rate, I did not mean to suggest, I've edited my answer) that all rm
questions be tagged as CLI, all I mean is that they can be so tagged and the tag should certainly not be removed if it is already there.
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.
rm
probably deserve the tag though.
vim
is different and I would not consider it part of the CLI tag posse. It is a separate program and whether it is run with or without a GUI, I would not argue for its being tagged as CLI. I also wouldn't argue against it but things like vim, emacs, mc, top and the like that give an n-curses interface (or however they work) are not the type of thing I am talking about. However, anything involving the shell and coreutils and actual command line commands can be tagged as CLI. But yeah, basically most of your list should be tagged as CLI, yes.
apt-get
options and syntax etc. The main point is that tags should only be removed if they are not relevant. If they're relevant leave them or, better, add them.
apt-get
should be tagged as both CLI and apt
. Broad tags such as CLI, are great for bringing questions to the attention of the people who can answer them. As long as you have tag space available, add relevant tags.
cli
and apt
and software-installation
as well. That's precisely what the FAQ post states. Anyway, the way the tag is used now is how I want it to be used and I believe you are trying to change it. If you're not, then great. Oh, and by the way, I am one of the top answerers in the tag, right there in the list you linked to.