(转)Linux最常用指令及快捷键 Linux学习笔记

Linux最常用指令及快捷键 Linux学习笔记

原文:http://blog.csdn.net/yanghongche/article/details/50827478

【摘自 鸟叔的私房菜】--转载请注明出处

本文仅简单记录有哪些常用命令,具体用法需要具体查询

常用基础指令:

bc:计算器

cal:日历

date:日期与时间

man:查询指令或者相关档案的用法  man page通常放在目录/usr/share/man下面

        man page中常用快捷键:

              【Page Down】:向下翻一页

              【Page Up】:向下翻一页

              【Home】:去到第一页

              【End】:去到最后一页

                n,N:利用/或?来搜寻字符串时,可以用n来继续下一个搜索(不论是/或?),利用N来进行反向搜索

                q:结束这次的man page

       man page中常用命令:

               /string:向下搜索string这个字符串

              ?string:向上搜索string这个字符串

info:在线查询指令或者相关档案的用法,与man不同的是,info page将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写,并且在各个页面中还有类似网页的超链接来跳转到各不同的页面中,每个独立的页面也被成为一个节点。所以可以将info page想成是文本模式的网页显示数据 info page默认放置在目录 /usr/share/info/ 下面

       info page中常用快捷键:

             【space】:向下翻一页

             【Page Down】:向下翻一页

             【Page Up】:向上翻一页

             【tab】:在node之间移动,有node的地方,通常会以*显示

             【Enter】:当光标在node上面时,按下Enter可以进入该node

              b:移动光标到该info画面当中的第一个node处

              e:移动光标到该info画面当中的最后一个node处

              n:前往下一个node处

              p:前往上一个node处

              u:向上移动一层

              s(/):在info page当中进行搜索

              h:显示求助选单

              ?:指令一览表

              q:结束这次的infp page

whatis:man的简略写法,试用钱需要建立whatis数据库-->[root@chy ~]#makewhatis

who:查看目前有谁在线(Linux的每个程序或者说是服务是在后台执行的,因此看不到屏幕背后其实有可能有相当多人同时在主机上面工作)

netstat -a:查看网络的联机状态

ps -aux:查看后台执行的程序

shutdown:给在线使用者一些时间来结束他们的工作

几个与开机/重启相关的指令

sync:将数据同步写入硬盘中的指令,这个指令在系统关机或重新启动之前,很重要!最好多执行几次

shutdown:惯用的关机指令

          自由选择关机模式:是要关机、重新启动或进入单人操作模式均可

          设定关机时间:可以设定成现在立刻关机,也可以设定某一个特定的时间才关机

          自定义关机讯息:在关机之前,可以将自己设定的讯息传送给在线user

          仅发出警告讯息:有时可能要进行一些测试,而不想让其他的使用者干扰,或者是明白的告诉使用者某段时间要注意一下!可以使用shutdown来吓一吓使用者,单却不是真的要关机啦!

          选择是否要fsck检查文件系统

 

          -t sec:-t后面加秒数,过几秒后关机的意思(我尝试后发现这个时间不是秒数)

          -k:不要真的关机,只是发出警告讯息

          -r:在将系统的服务停掉之后就重新启动(常用)

          -h:将系统的服务停掉后,立即关机(常用)

          -n:不经过init程序,直接以shutdown的功能来关机

          -f:关机并开机之后,强制略过fsck的磁盘检查

          -F:系统重新启动之后,强制进行fsck的磁盘检查

          -c:取消已经在进行的shutdown指令内容

例子:

    [root@www ~]#/sbin/shutdown -h 10 'I will shutdown after 10 mins'     告诉大家这部机器会在十分钟后关闭,并且会显示在目前登陆者的屏幕前方

    时间参数务必加入指令中,柔则shutdown会自动跳到run-level1(单人维护的登录情况),这样就伤脑筋了

    [root@www ~]#shutdown -h now    立刻关机,now相当于时间为0的状态

    [root@www ~]#shutdown -h 20:25  系统在今天的20:25分会关机,若在21:25才下达此指令,则隔天才关机

    [root@www ~]#shutdown -h +10  系统再过十分钟后自动关机

    [root@www ~]#shutdown -r now  系统立刻重新启动

    [root@www ~]#shutdown -r +30 'This system will reboot'  显示后面的讯息给所有在线的使用者

    [root@www ~]#shutdown -k now 'This system will reboot'  仅发出警告信件的参数!系统并不会关机!吓唬人!

          

reboot,halt, poweroff:重新启动,关机 这些关机指令均已在关机前进行了sync这个工具的呼叫,不过多做几次总是比较放心点

[ ls ]: ls -al .bashrc*   查看文件名包含.bashrc的所有文件的详细信息

            ls -ald testing testing/testing  

             drwxr--r--  2  root  root  4096  Sep  19  16:01  testing

            -rw-------  1  root  root     0        Sep  19  16:01  testing/testing

[ mkdir ]:建立新目录  [root@www tmp]#mkdir testing

[ touch ]:建立空档案  [root@www tmp]#touch testing/testing

[ su ]:切换用户身份  [root@www tmp]#su - myname

[ cat ]:将档案内容读出来  [root@www tmp]#cat .bashrc

 

 

 

 

[ cat ]:由第一行开始显示档案内容

[ tac ]:从最后一行开始显示,可以看出tac是cat的倒着写

[ nl ]:显示的时候,顺道输出行号

[ more ]:一页一页的显示档案的内容

[ less ]:与more类似,但是可以往前翻页

[ head ]:只看头几行

[ tail ]:只看尾巴几行

[ od ]:以二进制的方式读取档案内容

 

 

[ ll ]:相当于ls -l 是被做出来的一个命令别名

[ touch ]:变更档案的时间  即使我们复制一个档案时,复制所有的属性,也没有办法复制ctime这个属性,ctime可以记录这个档案最近的状态被改变的时间。touch最常被使用的情况是:1. 建立一个空的档案  2. 将某个档案日期修订为目前(mtime 与 atime)

[ chattr ]:设定其他的系统隐藏属性

[ lsattr ]:查看其他的系统隐藏属性

[ umask ]:档案预设权限  指定目前用户在建立档案或目录时候的权限默认值

 

 

常用快捷键:

【tab】【tab】:接在一串挃令的第一个字的后面,则为命令补全     接在一串指令的第二个字以后时,则为『档案补齐』

【Ctrl】-c:将正在运作中的指令中断,如耗费时间较长的查询指令正在运作中,中断起继续查询

【Ctrl】-d:键盘输入结束  也可以用来取代命令exit

 

 

 

Tips:

1. 常用软件的说明文档所在位置:/usr/share/doc  需要多多查阅这个目录来了解各个软件的版本信息

2. 

  在文字接口下,有任何你丌知道的挃令戒文件格式这种玩意儿,但是你想要了览他,请赶忚使用
man 戒者是 info 来查询!
  而如果你想要架讴一些其他的朋务,戒想要利用一整组软件来达成某项功能时,请赶忚到
/usr/share/doc 底下查一查有没有该朋务的说明档喔!
  另外,再次的强调,因为 Linux 毕竟是外国人发明的,所以中文文件确实是比较少的! 但是丌
要害怕,拿本英文字典在身边吧!随时查阅!丌要害怕英文喔!

3. 通常shutdown和reboot比较常用,通信启动时,会下达如下指令: [root@www ~]#sync;sync;sync;reboot

4. Linux共有七种执行等级,

        run level 0:关机

        run level 3:纯文本模式

        run level 5:含有图形接口模式

        run level 6:重新启动

    使用init指令来进行各个模式间的切换   [root@www ~]#init 0   关机

5. 所有系统上的账号与一般身份使用者,还有root的相关信息,都是记录在/etc/passwd这个档案内

6. 个人密码记录在/etc/shadow 这个档案下

7. Linux所有组名都记录在/etc/group内  以上三个档案是Linux系统里面账号、密码、群组信息的集中地,不能随便删除这三个档案

8. 隐藏文件-----文件名第一个字符为 . 的档案

9. ls -al列出的档案信息意义依次为: 

     1.  档案类型权限:这一栏共有十个字符 dr-wxr-xr-x     -rw-r--r--

            第一个字符:代表档案是 目录、档案或链接文件等等

                  [ d ] 目录  例如 .gconf

                  [ - ] 档案  例如  install.log

                  [ l ]  连结档(link file)

                  [ b ]  装置文件里面的可供储存的接口设备(可随机存取装置)

                  [ c ]  装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

           剩下的字符:三个为一组,且均为 rwx 的三个参数的组合。 [ r ] 代表刻度( read ), [ w ] 代表可写( write ),[ x ] 代表可执行(execute),这三个权限的位置不会改变,若没有权限,就会出现减号[ - ]

                  第一组:档案拥有者的权限

                  第二组:同群组的权限

                  第三组:其他非本群组的权限

      2. 第二栏表示有多少档名链接到此节点(i-node)

      3. 第三栏表示这个档案(或目录)的拥有者账号

      4. 第四栏表示这个档案的所属群组

      5. 第五栏为这个档案的容量大小,默认单位为bytes

      6. 第六栏为这个档案的建档日期或者是最近的修改日期   若档案被修改的时间距离现在太久,那么时间部分会仅显示年份

      7. 第七栏为这个档案的档名  如果档名之前多一个 . ,则代表这个档案为 隐藏档

10. 如果在纯文本的终端机模式中出现乱码,可以尝试用 LANG=en_US 来修改语言

11. 想让系统默认语言变成英文的话,可以修改系统配置文件 /etc/sysconfig/i18n,利用nano来修改该档案的内容,使LANG这个变量成为上述的内容即可

 

 

 

 

 

 

 

文本编辑器:

nano:

        超简单文本编辑器

vi:

vim:

 

打包工具:

gunzip

tar

 

技术点:

1. 任何一个档案(文件)都具有 User, Group, Others 三种身份的个别权限 但是 root 是万能的  使用者身份与该使用者所支持的群组概念,在Linux的世界里面是相当重要的,它可以让多任务Linux环境变得更容易管理

      1. 使用者

           档案拥有者  把档案设定成只有档案拥有者,就是我,才能看与修改这个档案的内容

      2. 群组

      3. 其他人

2. 改变文件属性与权限

      chgrp:改变档案所属群组  要被改变的组名必须要在/etc/group 档案内存在才行 [root@www ~]#chgrp users install.log

      chown:改变档案拥有者  用户必须是已存在系统中的账号,也就是在/etc/passwd这个档案中有记录的用户名称才能改变

            还可以顺便修改群组的名称 [root@www ~]#chown bin install.log 将install.log的拥有者改为bin这个账号

            [root@www ~]#chown root:root install.log  将install.log的拥有者与群组改回为root 

            [root@www ~]#chown .sshd install.log  单纯的修改所属群组

      chmod:改变档案的权限,SUID,SGID,SBIT 等等的特性

3. 什么时候使用chown和chgrp?

      复制行为(cp)会复制执行者的属性与权限,[root@www ~]#cp 来源档案 目标档案  如果原档案是-rw-r--r--,则目标档案需要改为用户可以使用的权限 -rw-rw-rw-

4. 只有 r 确实可以让用户读取目录的文件名列表,不过详细的信息却还是读不到的,同时也不能将该目录编程工作目录(用 cd 进入该目录之意)

 

 

5. 档案种类:

      1. 正规档案(regular file)  (-)  例如:[-rwxrwxrwx ]

                 纯文本档案(ASCII):

                            是Linux系统中最多的一种文件类型,内容为我们可以直接读到的数据,例如数字、字母等等。几乎只要可以用来作为设定的档案都属于这一种文件类型。 [root@www ~]#cat ~/.bashrc 将档案内容读出来

                 二进制文件(binary):

                           我们的系统其实仅认识且可以执行二进制文件,Linux当中的可执行文件就是这种格式(scripts,文字型批处理文件不算)。指令 cat 就是一个 binary file

                数据格式文件(data):

                          有些程序在运行的过程中会读取某些特定格式的档案,那些特定格式的档案就被称为数据文件(data file)。举例来说,我们的Linux在使用者登录时,都会讲登录的数据记录在/var/log/wtmp那个档案内,该档案是一个 data file,他能够透过 last 这个挃令读出来! 但是使用 cat 时,会读出乱码~因为他是属二一种特殊格式的档案。

 

     2. 目录(directory)

     3. 链接档(link)

                  就是类似 Windows 系统底下的快捷方式啦! 第一个属性为 [ l ](英文 L 的小写),例如[lrwxrwxrwx] ;

     4. 设备与装置文件(device)

                  与系统周边及储存等相关的一些档案,通常都集中在/dev这个目录下

                            区块(block)设备档:

                                       就是一些储存数据,以提供系统随机存取的接口设备,硬盘与软盘就是啦。可以随机在硬盘的不同区块读写。 查看/dev/sda 第一个属性为[ b ]

                            字符(character)设备文件:

                                       是一些穿行端口的接口设备,例如键盘、鼠标等等。这些设备的特色是一次性读取,,不能够截断输出。距离来说,不可能让鼠标跳到另一个画面,而是滑动到另一个地方。第一个属性为 [ c ]

     5. 资料接口文件(sockets)

                 这种类型的文件都被用在网络上的数据承接。可以启动一个程序来监听客户端的要求,而客户端可以透过这个socket来进行数据的沟通。第一个属性为 [ s ],最长在/var/run 这个目录中看到这种文件

     6. 数据传送文件(FIFO, pipe)

                 FIFO也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。FIFO 是 first-in--first-out 的缩写。第一个属性为 [ p ]

 

6. 在默认权限的属性上,目录与档案是不一样的。x 权限对于目录是非常重要的,但是一般档案的建立则不应该有执行的权限,因为一般档案通常是用在于数据的记录。

        1. 若使用者建立为 档案 则预设 没有可执行(x)权限,亦即只有 rw 这两个项目,也就是最大为 666 分,预设权限为:-rw-rw-rw-

        2. 若用户建立为 目录,则由于 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即777:drwxrwxrwx

 

 

7. 档案隐藏属性

 

 

 

=====================================================================================

程序编写相关

1. vim常用指令

2. 区块选择   p是paste粘贴

 

3. 多档案编辑  vim后跟多个文件名   4yy复制4行

 

4. 多窗口功能  ctrl+f(相当于pageup) ctrl+b(相当于pagedown)

  方法:  :sp filename

 

5. vim环境设定与记录:环境设定档案~/.vimrc    记录动作的档案是~/.viminfo 

      整体的档案是在/etc/vimrc下,单不建议修改它,可以修改~/.vimrc这个档案

 

6. dos2unix   unix2dos   DOS与Linux断行字符不同,用cat -A 来观以DOS(Windows系统)建立的档案的特殊格式,发现DOS使用的断行字符为 ^M&,我们称为CR与LF两个符号,而在Linux底下,则仅有LF($)这个断行符号。这个断行符对于Linux的影响很大。在Linux底下的指令在开始执行时,判断依据是Enter,而Linux的Enter为LF符号,由于DOS的断行符号是CRLF,也就多了一个^M的符号出来,在这样的情况下,如果是一个shell script的程序档案,将可能造成程序无法执行状态

7. 语系编码  big5和utf8  使用 iconv 进行互转  这个指令支持的语系非常多,除了正体中文的big5,utf8编码之外,也支持简体中文的gb2312。如果将正体中文的utf8转成简体中文的utf8编码时,就得费些功夫了,举例来说,如果将刚刚那个 vi.utf8 转成简体的 utf8 时,可以这样做:

[root@www vitest]# iconv -f utf8 -t big5 vi.utf8 | \

> iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8

 

8. 

 

9. 系统的合法shell 与 /etc/shells:系统上合法shell要写入/etc/shells这个档案,系统某些服务在运作过程中,会去检查使用者能够使用的shells,而这些shell的查询就藉由 /etc/shells 这个档案

10. Bash shell 的功能  /bin/bash 是Linux预设的shell

               1. 命令编修能力(history)  记忆使用过的指令  记录在~/.bash_history中,记录前一次登录以前所执行过的指令,这一次登录所执行的指令都被暂存在内存中,当成功的注销系统后,该指令记忆才会记录到.bash_history中

               2. 命令与档案补全功能(tab 按键)  在一串指令的第一个字的后面,则为命令补全   在一串指令的第二个字以后,则为档案补全

               3. 命令别名设定功能(alias) alial lm='ls -al' 

               4. 工作控制、前景背景控制  使用前景、背景的控制可以让工作进行的更为顺利。至于工作控制的用途则更广,可以随时将工作丢到背景中执行,不怕不小心使用了ctrl+c来停掉程序,也可以在单一登录的环境中,达到多任务的目的。

               5 .程序化脚本(shell scripts)

               6. 通配符(Wildcard)  除了完整的字符串之外,bash还支持许多的通配符来帮助用户查询与指令下达,例如 ls -l /usr/bin/X*  查询以X为开头的档案

11. Bash shell的内建命令 type    判断指令是来自于外部或是内建在bash当中的

利用type搜寻后面的名称时,如果后面接的名称并不能以执行档的状态被找到,那么该名称是不会被显示出来的,也就是说,type主要在找出执行档而不是一般档案名。所以type也可以用来作为类似which指令的用途,找指令用的。

 

12. 指令的下达

        当我们顺利的在终端机(tty)上面登入后,Linux就会依据/etc/passwd档案的设定给我们一个shell(预设是bash)

13. Shell的变量功能  Linux是多人多任务的环境,每个人登入系统都能取得一个bash,每个人都能够使用bash下达mail这个指令来收受自己的邮件,问题是,bash是如何得知你的邮件信箱是哪个档案?这就需要变量的帮助了。

 

14. 影响bash环境操作的变量  PATH、HOME、MAIL、SHELL等等,为区别与自定义变量的不同,环境变量通常以大写字符来表示

15. 脚本程序(shell script)的好帮手

16. 变量的取用与设定 echo $HOME

      变量的设定规则

           1. 变量与变量内容以一个等号 = 来链接   myname=VBirt

           2. 等号两边不能直接接空格符 例如:myname = VBird   myname=VBirt Tsai 错误

           3. 变量名称只能是英文字母与数字,但是开头字符不能是数字,例如: 2myname=VBird 错误

           4. 变量内容若有空格符可使用双引号或单引号将变量内容结合起来

                   双引号内的特殊字符如 $ 等,可以保持原有的特性,如: var="lang is &LANG" 则 echo $var可得 lang is en_US

                   单引号内的特殊字符则仅为一般字符(纯文本),如:var='lang is $LANG' 则 echo $var 可得 lang is $LANG

           5. 可用转换符 \  将特殊符号(如 Enter $ \ 空格符 ' 等)变成一般字符

           6. 在一串指令中,还需要藉由其他的指令提供的信息,可以使用反单引号 `指令`  或 $指令。例如:想要取得核心版本的设定 version=$(uname -r) 再 echo $version 可得 2.6.18-128.el5

           7. 若该变量为扩增变量内容时,则可用 "$变量名称" 或 $(变量)  累加内容,如: PATH="$PATH":/home/bin

           8. 若该变量需要在其他子程序执行,则需要以export来使变量变成环境变量,如:export PATH

           9. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符,方便判断

          10. 取消变量的方法为使用unset,如: unset myname

 

17. 子程序?在目前这个shell的情况下,区启动另一个新的shell,新的shell就是子程序啦。一般情况下,父程序的自定义变量是无法在子程序内使用的。但是通过export将变量变成环境变量后,就能够在子程序底下应用了。

          例如:进入到目前核心的模块目录

              [root@www ~]#cd /lib/modules/`uname -r`/kernel

              [root@www ~]#cd /lib/modules/$(uname -r)/kernel

posted @ 2017-12-17 14:49  liujiacai  阅读(604)  评论(0编辑  收藏  举报