常用Linux命令及使用

主要是给刚接触Linux甚至不知道命令行的人写的,所以会非——常啰嗦。建议有一点基础的(cmd也可)直接去找自己想看的部分。

本文将包括文件管理、权限设定、下载等常用操作。不是所有的命令都有回显(即返回结果),所以应该有“没有报错就是执行成功”的思想。

文章写作(弃坑)时间跨度达10个月,文风可能会变。

1.文件管理

1.1 cd(Change Directory)和ls(List)

这是两个最基础的命令,等同于Windows命令行解释程序(cmd)中的cd和dir。最大的不同之处在于Linux对大小写敏感,比如在Windows中敲cd和CD是同一个效果,Linux就只认cd,键入CD就会报not found。

用法是:cd(ls) 目标目录如进入 /var/www目录并列出内容,就是:

cd ~/var/www
ls

其中"~"符号代表根目录。

甚至可以使用";"把两个合并成一行,但是并不能提高效率就是了。

cd ~/var/www; ls

如果只需要查看/var/www内的文件时,就不一定要在这个目录内使用ls,而可以用ls ~/var/www来实现。

直接键入cd就是回到根目录,而直接键入ls则是列出当前目录内容。

ls可以用来查看某一文件/文件夹的权限,这个我打算放到权限里面说。

1.2 新建文件(文件夹)

在Linux中新建文件的命令是touch(我也不知道为什么叫这个)。用法也跟cd/ls类似,就是touch 文件名。 比如新建一个文件叫test,就是直接touch test。这是一个文本文档,等同于Windows的记事本文件。Linux中没有后缀也不大要紧,文件格式对就可以了(当然是限于文本文件来说)。

新建文件夹用的是和Windows相同的mkdir。在/home文件夹中新建一个user文件夹就是mkdir /home/user。但是如果上一级文件夹/home不存在的话(这里是不可能出现这种情况的)就会报错,所以一次只能新建一级文件路径。

1.3 移动、复制、重命名、删除文件/文件夹

和Windows一致,Linux下重命名和移动指令都是mv(move),复制是cp(copy),删除是rm(remove)。其中mv和cp的使用方法都是mv(cp) 旧文件(夹)名 新文件(夹)名。rm则是rm 文件名 。不过删除文件夹时还需要加上-r(recursive),即rm -r 文件夹名

1.4 查看/编辑文本文件

如果需要把文本文件的内容在屏幕上“打印”出来的话,Windows上使用的是type命令,而Linux使用的是cat 文件名 。比如说常用的查看CPU数据的cat /proc/cpuinfo 其实就是把/proc/cpuinfo中的内容显示出来。

而编辑文档需要用到工具,主流的有vim和nano。我个人喜好是nano。

要打开比如第一个介绍里的test文件(假设就在当前目录下),输入vi(nano) test 。对于nano来说就可以直接编辑了,跟Word使用差不多(就是没有鼠标),下方也有退出(Ctrl+X)之类的命令供参考。其中[M-B]中的M是键盘上的ALT。vi恕我根本不会用,不敢乱说话= =

1.5 下载

我们可以直接用wget+网址来进行下载。比如我要自行编译Linux Kernel的话,就需要去kernel.org下载最新内核。

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.10.tar.xz

这个命令下载来自https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.13.10.tar.xz的文件。

Wget还有一个非常黑的功能:抓取网站。同样的用法,不过不建议用,会给对方服务器造成比较大的负荷。

2.权限管理

Linux对于“权限”的概念还是很重视的,脚本需要运行权限才能运行,Apache提供网页要权限(权限不够就是403),用户进行某些操作(比如安装程序、编辑甚至查看不属于自己的文件)也要权限。然而新手最烦的也是权限,经常为了方便直接设置成777(我会说明的)。这种情况下一旦被黑就很那啥了。

2.1 查看文件(夹)权限

第一段里面我有讲ls还可以查看权限,其实就是用ls -l 把文件(夹)的属性全部列出来。我在/home/temp里新建了一个叫temp(临时)的文件,用ls -l查看就是这样子的:

ls -l temp
-rw-r--r-- 1 temp temp 0 Feb 21 15:54 temp

其中的1和0各位不必要知道,我们这里关心的是前一串的-rw-r--r--。最前面的一个"-"表示这是一个普通文件(如果是d则表示文件夹),r表示可读(read),w表示可写(write),还有一个x表示可执行(execute)。这一串字符的意思就是:普通文件,用户temp有读写权限(rw)但不能执行它(-),用户组temp中的用户和其他用户只能读取该文件的内容但不能写入也不能执行(r--)。

2.2 修改文件权限

假设我懒到程序更新命令aptitude update && aptitude upgrade都懒得输入,于是写了个脚本(假设叫做update.sh)自动执行,但是这个脚本只有rw-r--r--的权限。这时候就可以使用chmod把文件权限修改成可执行。

这里要讲一下Linux权限的421,即r=4,w=2,x=1。上面说的777,就是(4+2+1)(4+2+1)(4+2+1),所有人都可读、可写、可执行,哪怕不怀好意的人只能接触到这一个文件,也可以通过它获取完全的操作权限,因此像777和666还是不要乱设的好,一般644或者755足够了。

上面说的要使脚本可执行,就是

chmod 744 update.sh

或者只要

chmod +x update.sh

+x应该很好理解,就是添加执行权限。这个命令让所有用户都有执行权限,即rwxr-xr-x。类似的,-x就是减去执行权限。

如果实在不想计算421的话,可以用chmod u+x 来只给用户(user)添加可执行权限。u还可以改成用户组g(group)或其他用户o(other),+也可以改成-,x也可以改成r或w。例:chmod u-x update.sh

2.3 修改文件归属者(owner)

owner字面意思就是主人,这样翻应该也没错(摊手

这种情况常见于建站时。因为使用root用户在/var/www中新建文件时的owner是root:root(用户root,用户组root),Apache则是www-data:www-data,于是就出现了Apache没有足够权限的错误(error 403:permission denied)。

这时候会用chown(change owner)来把owner改成www- data:www-data来解决,就是:

chown www-data:www-data /var/www -R

其中-R也是recursive的意思,就是把整个文件夹内的文件全部改为www-data用户www-data用户组,但是用户组不是必需的。换句话说,chown www-data /var/www -R 从格式上也能行。不过这个命令一般刚开始用一下以后就用不上了。

2.4 给某个用户root权限(和创建用户)

因为一直用root账户进行操作不是很安全(有人手滑把系统删掉过),所以一般我们会使用useradd添加一个普通用户。我们假设这个用户名是temp,那么这条命令异常简单,就是useradd temp

然而在使用sudo时,会返回一个"temp is not in the sudoers file",不能授予root权限。

这不是bug啦,其实还是出于安全考虑:要新建一个用户是非常简单的,假如任意新用户都能使用sudo,那整个系统也谈不上安全了。

因此我们在root权限下执行visudo。这个命令会让我们编辑一个路径为/etc/sudoers.tmp的文件。找到

root    ALL=(ALL:ALL) ALL

在下面加上

用户名    ALL=(ALL:ALL) ALL

然后保存。这样就能允许新用户使用sudo.

2.5 禁止root账户登录

root作为最高权限账户,是针对服务器的攻击中一旦被盗取后果最严重的弱点(之一)。因此一般会在配置好普通账户之后会选择禁止root账户登录。

找到/etc/ssh/sshd_config,并将其中的PermitRootLogin yes改为PermitRootLogin no。之后使用service sshd restart 重启服务。

 

(待更)

0

Mark

站点管理员。Linux技能跟没有一样。基础AE/PR/PS/LR/AU。不会编程。日本語を勉強しています。

有什么想法说出来听听?

This site uses Akismet to reduce spam. Learn how your comment data is processed.

微信扫一扫,分享到朋友圈

常用Linux命令及使用
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close