Linux新手命令

给老婆写了一份速成培训教材——最常用的命令及解释。当然每个人工作内容不同,常用命令也不同,这只是我的个人经验,而且要考虑到接受者的基础。

ls:列出目录下的内容,类似于dos下的dir。

常用参数有:

ls –l,逐行显示详细内容;

ls –a,  显示隐藏的文件或目录;——linux下,前缀为.的文件名和目录名即被默认为是隐藏文件

参数也可以组合ls –al ,详细显示包含隐藏文件在内的内容。

当加上-a时,会看到两个特殊的目录.  和.. ,.表示当前目录;..表示父目录

cd :切换目录

那么可以想象,cd . 不会有任何变化,因为切换到当前目录等于没说对吧;cd .. 切换到父目录(此时可以看到命令提示符前面的路径是有变化的)

有关cd使用还有几个常见用法:

cd /   直接一步到“根”(linux文件系统里根就类似windows的c:  d:  等等,只不过无论多少块硬盘和分区,linux只有唯一的根/),那么就不用一次一次的cd
..往上退了对么

cd ~  一步到“家”目录。什么是家目录呢?在linux下,每创建一个用户会自动为这个用户安排一个家目录,用户对自己的家目录拥有完全的读写权限,用户登录之后的默认工作目录也是在自己的“家”里(windows也一样,不信你用一个新帐号登录,马上会看到c盘的“用户”文件夹下多出一个和这个帐号名相同的文件夹,里面是“我的文档”“我的图片”“我的视频”之类的东西)

普通用法就是cd a/b/c 这样了,当然此时的a/b/c三级目录是在当前目录下的,这就是相对路径;如果恰好不在当前目录下,那就找不到了。只能从“根”写起cd
/xxx/a/b/c ,这就是绝对路径。

上面说了,无论有多少块硬盘多少个分区,都只有一个根,那么如果加一块硬盘,它会放到哪去呢?——答案是你爱放哪就放哪。操作是这样的,首先

mkdir : 创建目录

使用mkdir创建目录,用起来相当简单,很少加参数。mkdir xxx 就是在当前目录下创建一个xxx目录,如果不在当前目录下创建呢?一种方法是用cd切换过去;一种方法是用绝对路径mkdir
/xxx/a/b/c/xxx

下一步:把这个新硬盘的某个分区“附加”到我们刚才创建的目录下去

mount:挂载设备

mount /dev/sdb1 /xxx/a/b/c/xxx (目录好深啊,还真不容易找呢),以后再进到这个目录cd /xxx/a/b/c/xxx ,ls看到的就是新硬盘的内容了。(当然此处我假定新硬盘的编号是/dev/sdb1,至于为什么是这个编号,由于复杂度问题在此就不解释了)

那么如果细点心,你会提出这样的疑问——假设我原来的目录/xxx/a/b/c/xxx 不是一个新目录,而且里面有内容。那么当我在这个目录下挂载新硬盘的时候,原来的东西怎么办呢?——答案是“确实看不见了”。不用吃惊,因为并没有丢,只是看不见了而已。当我们卸载这个设备,它们就又回来了

umount: 卸载设备

umount /dev/sdb1 ,卸载掉了,简单吧。

所以可以有这样一个加密小技巧,对要加密的目录挂载一个设备(不过为了加密一个目录买块硬盘,这个代价有点高。而且别人一但发现了,umount一下就暴露了)

也许有人说干嘛弄这么复杂,象windows那样自动识别,一块硬盘(分区)一个盘符不挺好的吗?事实上这种多根目录可能会更麻烦。Linux“继承”了unix的传统,多用于服务器上,在服务器上增加、替换(坏)、乃至交换硬盘都很平常。想像一下,如果在这台机器上是d:盘,拿到另外一台机器变e:盘了,很多程序跑不起来了,那怎么办?即便是我们个人电脑,如果你经常装机做系统的话,也不少有这些困扰呢。而挂载到目录下就容易多了,只要把目录树搞一致了,随便怎么增、删、换硬盘都没关系。

想象一下这个场景,/xxx/a/b/c/xxx目录是存放某数据库文件的,据观察增长很快,硬盘空间告急。不用担心,可以这样做,先把新硬盘mount到某个临时目录下mount
/dev/sdb1 /temp ,拷贝或移动原有文件(当然为了保持数据一致性,这会儿停一下数据库)cp/xxx/a/b/c/xxx/* /temp –R ,拷贝完成后,把硬盘重新mount一个位置mount
/dev/sdb1 /xxx/a/b/c/xxx ,启动数据库,喔,新硬盘用上了,而且对所有的程序、用户完全感知不到变化。如果是windows得折腾好久吧:)所以还是单根目录简单好用。君不见微软现在也提倡磁盘单分区了吗:)

提到拷贝和移动了——

cp:拷贝命令

cp a.sh /tmp 拷贝当前目录下的a.sh文件到/tmp目录下一份

cp /tmp/a.sh /xxx/a/b/c/c.sh 拷贝/tmp目录下的a.sh 到/xxx/a/b/c下,并且改名成c.sh

最常用的参数–R ,表示循环递归操作下面所有子目录,大写字母

mv:  移动命令

mv /tmp/a.sh /xxx/a/b/c 移动/tmp下的文件a.sh 到/xxx/a/b/c 目录下,不改名字

mv的另外用法,改名字:mv a.sh b.sh 把a.sh改名为b.sh

不变目录,那就是改名字(因为在同一个目录下移动嘛)

发现拷贝错了或者拷贝多了,删除呗

rm: 删除文件或目录

rm a.sh 删除当前目录下的文件a.sh

rm * -R 删除当前目录下所有内容,包括循环递归子目录(-R一定要慎用啊,否则悔之晚矣)

前面提到,别人很容易发现你新加载的硬盘,那么是如何发现的呢?df命令

df: 显示文件系统

df一下,看,哪块硬盘挂在哪个目录下,占用多少空间,剩余多少空间,一目了然。如果想细致了解倒底那个目录或文件占用了我们宝贵的磁盘空间呢,du命令

du: 查看文件磁盘空间

让我们cd / 来到根目录,du一下,哇,这哪看的清。逐级列出所有文件和目录,好敬业啊。但我们不需要看这么多,只需要知道某一级目录占了多少空间就行了,加个参数--max-depth=1 是显示1级,=2那就是显示两级了。再细致的用法就看帮助吧。顺便提一句,大部分命令后面加参数--help,就可以其帮助信息了。

这么多文件,如果想找其中某一个怎么办?find搜索

find:  查找文件

find查找可以按名称、按类型、按日期等等,总之强大到让人无法直视。同样,深入学习请看帮助。最常用的按名称查找:find–name xxx.sh ,当前目录及子目录下查找xxx.sh文件

为什么我一再拿.sh的文件作示例呢?因为按照习惯,xxx.sh的文件是一个shell文件(类似于dos里的批处理文件.bat)能够被执行。但它倒底是不是个真的sh文件呢?——等等,这话什么意思,难道还有假的shell文件吗?当然有可能。Linux里不是按照扩展名来区分文件类型的,甚至都不应该用扩展名这个概念。之所以写成xxx.xxx是为了迎合windows用户的表示方法(当然这种表示方法也确实不错)。系统是不限制你要不要“扩展名”、写什么字母的。当然,如果硬要把凤凰传奇.mp3
 改名成haha.sh ,你肯定是执行不起来的。反过来说,如果把一个a.sh 改名成a.xxoo,一样是可以执行的。那么岂不是文件类型乱作一团?所以嘛,采用大家约定俗成的命名方法还是利人利己的。另外,还可以用命令file来查看其真实的文件类型。

file: 查看文件类型

file a.sh ,如果确实是一个shell文件,会显示类型为:ASCII text——是个文本文件(批处理本来就是文本文件,bat也一样)。那么可以用命令cat来查看文件内容

cat: 查看文件内容

cat a.sh 即可显示内容。如果是用凤凰传奇.mp3改名改成的a.sh,那肯定就乱码了。

当然我们还可以用编辑命令编辑它

vi: 编辑文件——vi实际上是个编辑软件,限于篇幅不详细介绍,自行google

好了,说了不少了,做个小例子吧

cd ~  ——来到自己的家目录

vi a.sh ——新建并编辑一个a.sh文件。按一下字母i,进入编辑状态。此时可以输入了。输入echo $PATH (注意大小写),好,加上空格就输入这10个字符就行。按ESC键,接着输入:wq

ls –l  ——看看是否已经存在a.sh这个文件了,如果存在就对了,如果没有,把电脑砸了并大声质问它

这样,我们第一个shell脚本文件就写好了。试着运行一下,输入a.sh  显示“未找到命令”。这是怎么回事呢?明明在的嘛,先别急着砸电脑并质问它。这是因为在windows下,系统默认的情况是——先在当前目录下查找并执行文件,如果没有,那么就依次到path环境变量指定的目录去查找并执行。而linux因为安全的原因,不在当前目录下查找,仅到PATH环境变量指定的目录去查找。所以,眼看着在这里还显示“未找到命令”。现在我们要执行了,怎么办呢?当然第一种方法就是把当前目录加到PATH环境变量里,不过这也太麻烦了。第二种方法就是指定绝对路径(你找不到我就告诉你确切位置),可以这样  /home/xxx/a.sh ,xxx就是当前用户名对应的家目录了;还可以这样,~/a.sh,别忘了~就是我们的家目录;还可以这样./a.sh,别忘了.就是指当前目录(忘了往前翻翻)

这回提示不一样了,显示“权限不够”,至少说明找到文件了。但权限又是怎么回事呢?还是来看一下现有什么权限吧。Ls-l  ,列出详细信息。注意看a.sh一行,最前面的字符

-rw-rw-r-- ,去除掉头一个-,剩下是9个,分三组来看分别是 rw- 、rw- 、r-- ,这表示针对三种角色的权限。三种角色是所有者、同组人、其他人(角色划分的确有点不够精细,但也基本够用,关键是角色多了老麻烦了,有兴趣参考windows的文件系统的各类角色)。r表示读,w表示写,x表示执行。那么综合来看,权限是这样划分的:所有者拥有读和写权限,同组人拥有读和写(rw-)权限,其他人拥有读权限(r--)。看看,大家都没有执行权限。那么怎么加上执行权限呢?命令chmod

chmod: 改变文件权限

执行chmod +x a.sh ,表示为a.sh文件加上执行权限。这次再看一下ls -l ,权限变成了rwxrwxr-x,分三组就是自己读、写、可执行,同组人读、写、可执行,其他人读、可执行。每个角色都加上可执行权限了。实际上这样不太安全,相当于所有人都可以执行它,如果想更精细的控制,那么看帮助了解chmod详细用法。

现在再来执行一下  ./a.sh ,应该可以显示一串字符了。我们输入的命令是echo $PATH,所以执行结果是显示PATH环境变量里的目录,注意是用:分隔的,windows里是;分隔的。可以检查一下,当前目录肯定不在里面,否则就不会“未找到命令”了

正在运行的程序在系统里叫做进程。查看有哪些程序在运行中呢?

ps: 查看进程

ps  aux  详细显示所有用户进程,PID表示进程号。当某个进程占用资源太多或陷入失控,我们可以杀掉它,kill

kill: 杀死进程

kill PID

ps显示的资源信息是静态的,如果想实时观测一下系统资源占用情况,使用top命令监控

top: 监控系统资源,显示各进程cpu占用,内存占用等信息。默认5秒刷新一次,按q退出。

好了,这篇粗略+速成教程就到此为止了。之所以介绍的不很详细,命令也不多,而且没有按部就班,是希望看的人知其然更要知其所以然。至于命令的具体操作,其实帮助是最好的参考资料。何况还有这个更强大man命令,想看某个命令的详细解释和用法:man
xxx 。

有时候命令记不清楚了怎么办?——如果只记起命令的前几个字母,按tab键系统会自动补齐;如果补齐的命令不是我们想要的,连续按两次tab键,会把这几个字母开头的命令全列出来,这个时候差不多也该想起来了。

Linux新手命令

时间: 2024-11-03 22:28:34

Linux新手命令的相关文章

对 Linux 新手非常有用的20个命令

1. ls命令 ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. 1 2 3 4 5 6 7 [email protected]:~# ls Android-Games                     Music Pictures                          Public Desktop                           Tecmint.com Document

Linux 新手非常有用的命令

http://www.cnblogs.com/felix-/p/4341773.html Linux 新手非常有用的命令 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现我的世界里了. 从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳.我担心该记住多少命令,来帮助我完成所有任务. 毫无疑问,在线文档,书籍,man pages以及社区帮了我一个大忙,但是我还是坚信有那么一篇文章记录了如何简单学习和理解命令的秘籍

每个Linux新手都应该记住的10个基本Linux命令

Linux对我们的生活有着很大的影响.至少,你的安卓手机上面就有Linux内核.然而,头一次入手Linux只会让你觉得不适.因为在Linux上,你通常应该使用终端命令,而不是只要点击启动器图像(就像你在Windows上操作那样).不过别担心,下面介绍的这10个基本的Linux命令和重要命令会帮助你尽快入门. 我们在谈论Linux命令时,其实是在谈论Linux系统本身.就这么区区10个基本的Linux命令不会让你成为天才或Linux专家.它会帮助Linux新手使用这些Linux基本命令或者说Lin

对Linux新手非常有用的20个命令

 //对Linux新手非常有用的20个命令 //slwang  2014.4.19 1, ls list directory contents 列出文件夹中内容 ls -l     //以详情模式(long listing fashion)列出文件夹的内容 d:代表目录 rwxr-xr-x:文件或者目录对所属用户,同一组用户和其他用户的权限 ls -a     //列出包括隐藏文件在内的所有文件 2, lsblk 列出块设备,除了RAM外,以标准的树状输出格式,整齐地显示块设备 lsblk

对Linux新手有用的20个命令 | 快课网

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

linux新手非常有用的20个命令

引用:http://www.oschina.net/translate/useful-linux-commands-for-newbies 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了.从我以往的经验来说,当我刚使用Linux,命令,终端啊什么的,吓了我一跳.我担心该记住多少命令,来帮助我完成所有任务.毫无疑问,在线文档,书籍,man pages以及社区帮了我一个大忙,但是我还是坚信有那么一篇文章记录了如何简单学习

Linux新手上路命令

Linux新手上路命令 命令:www.ahlinux.com Ctrl+Alt+F1  进入命令界面 Ctrl+Alt+F7  返回图形界面 root用户和普通用户切换 administrator 2 root 命令 : sudo su root 2 administrator 命令 : su administrator 设置root 用户密码 sudo passwd root 启用root 用户权限 sudo passwd -u root 禁用root 用户权限 sudo passwd -l

Linux 新手应该知道的 26 个命令

当你进入了 Linux 的世界,在下载.安装 了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软件之后,应该去了解下 Linux 真正的魅力所在:命令行.每一个 Linux 命令其实就是一个程序,借助这些命令,我们可以办到非常多的事情.下面将会为大家介绍一下几个常用的命令. 如何寻求帮助? 在 Linux 下遇到问题,最重要的是要自己寻求帮助,下面是三种寻求帮助的方法. man man 是 Linux 的帮助手册,即 manual .因为大多数程序都会自带手册,所以

【转】每个 Linux 新手都应该知道的 10 个命令

你可能认为你是 Linux 新手,但实际上并不是.全球互联网用户有 3.74 亿,他们都以某种方式使用 Linux,因为 Linux 服务器占据了互联网的 90%.大多数现代路由器运行 Linux 或 Unix,TOP500 超级计算机 也依赖于 Linux.如果你拥有一台 Android 智能手机,那么你的操作系统就是由 Linux 内核构建的. 换句话说,Linux 无处不在. 但是使用基于 Linux 的技术和使用 Linux 本身是有区别的.如果你对 Linux 感兴趣,但是一直在使用