zoukankan      html  css  js  c++  java
  • (转)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

  • 相关阅读:
    MVC之路由规则 (自定义,约束,debug)
    MCV之行为
    mvc之页面强类型
    Jquery异步上传图片
    三层VS控制器
    Oracle 表分区
    C#编写的通过汉字得到拼音和五笔码
    MYSQL存储过程学习
    Sina App Engine(SAE)入门教程(9)- SaeMail(邮件)使用
    状态CSS
  • 原文地址:https://www.cnblogs.com/liujiacai/p/8052097.html
Copyright © 2011-2022 走看看