1)基本常用命令

=========================一: 基本命令格式和文件处理命令:=======================
ls [选项] [文件或目录]
-a 显示所有文件,包括隐藏文件(相当于–all)
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
//(ll就是ls -l)
//不过不同版本系统可能稍有差别

linux中不是以扩展名来区分文件类型的,不像windows,而是以文件权限来区分的
-rw-r–r–
- 文件类型(- 文件 d 目录 l 软链接文件(及快捷方式))
rw- r– r–
u所有者 g所属组 o其他人
r读 w写 x执行

//上面只列出了三种文件类型,一共有7种类型,其他四种分别是:
// 块设备文件,字符设备文件,套接字文件和管道文件
//这四种文件不需要普通用户操作,知道即可

1: 目录处理命令
1)建立目录:mkdir(make directories) //创建一个空文件用touch
mkdir -p [目录名]
-p 递归创建
ep: mkdir lanbo
这样就创建了一个lanbo文件夹,但是如果我想把创建的lanbo文件夹放在favorite文件夹下呢?那么这就是递归创建了
ep:mkdir -p favorite/lanbo 这样创建了两个目录,favotite和在此目录下的lanbo目录
ep:mkdir -p favorite/lanbo 创建了一个包含lanbo目录的favorite目录

2)切换目录:cd [目录] (change directoty)
cd ~ 进入当前用户家目录(直接cd也是这样)
cd - 进入上次所在目录
cd .. 进入上一级目录
cd .  进入当前目录(这条命令其实就是进入当前目录,没什么影响,但这条命令是可以运行的) 
pwd   打印当前所在目录

 3)(只能)删除空的目录:rmdir(remove empty directories)(不过一般不这么做)
rmdir [目录名]

删除文件或目录:rm
rm -rf [文件或目录]
   选项:
    -r 删除目录
    -f 强制
补充:rm -rf /temp/* 加×代表删除temp目录下的所有文件
rm -rf /temp/ 不加表示删除temp整个目录
习惯上,不管是目录还是文件,都用rm -rf

 4)复制命令;cp
cp [选项] [源文件诺目录][目标目录]
选项:
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于-pdr(这样目标文件和源文件一模一样,完全一样)
ep:cp japan /tmp/ 后面没加文件名,就是原名复制
cp japan /tmp/japan1 这样就是改名复制
(date命令显示系统时间)



 5)剪切命令
mv [源文件] [目标目录] (不用加-r)
 要改名的话
mv file file2
这样就行了

2: 文件处理命令
vi(或者vim) 可以打开文件
3:链接命令
ln - [源文件] [目标文件]
选项:-s 创建软链接
硬链接特征(不佳):
1)拥有相同的i节点和存储block块,可以看作是同一个文件
2)可通过i节点识别
3)不能跨分区
4)不能针对目录使用

  软链接特征:(如果要创建软链接,一定写绝对路径(除非源文件和软链接在同一目录),而硬链接不用)
1)类似于windows的快捷方式
2)软链接拥有自己的i节点的block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
3)lrwxrwxrwx l表示软链接
        软链接文件权限都为rwxrwxrwx (其实真正的权限还得看源文件)
4)修改任意文件,另一个都改变
5)删除原文件,软链接文件不可用
  做了下实验,比如新建一个文件a,写一些内容,然后创建一个a的软链接sa,cat a和cat sa是一样打,删除a后软链接就不可用了,但是如果再新建一个文件  
    夹,命名为a,输入不同的内容,结果cat sa后显示的是第二次的内容,就算没有删除原先的a,而是将其命名为aa,sa仍然是a(后来的)的软链接,即是通过文件  
    而不是i节点

4:常见目录的作用
/根目录
/bin命令保存目录(普通用户就可以读取的命令)
根目录和usr目录下的bin,sbin,这四个目录都是用来把保存系统命令的,区别是两个bin目录普通用户都可以执行
而sbin只有root下的超级用户才可以执行,Linux就是以这样的方式来区分权限的
/boot启动目录,启动相关文件
/dev设备文件保存目录 //没事别去动它
/etc配置文件保存目录
/home普通用户的家目录
/root超级用户的家目录
/lib系统库保存目录
/mnt系统挂载目录
/media系统挂载目录
/tmp 临时目录
/sbin命令保存目录(超级用户才能用的目录)
/proc直接写入内存的
/sys sys和proc这两个目录不要对它进行操作
/usr系统软件资源目录
/usr/bin/系统命令(普通用户)
/usr/sbin/系统命令(超级用户)
/var系统相关文档内容
/目录下的media,misc,mnt都是空目录,可以用来挂载cd,usb等设备,不过习惯于在mnt下创建cd,usb目录,其他两个不用,老式linux里只有mnt
这个目录,没有media和misc,当然随便你怎么用

!!!linux是一个严谨的内容,不是所有的目录下都可以随便存放内容的,可以在家目录root或home,以及tmp目录下随意存放内容

=========================二: 文件搜索命令=======================
1)文件搜索命令locate(优点:速度非常快)
touch可以新建文件
格式: touch cangls
这样就在当前目录新建了一个名为cangls的文件

 locate命令格式
 locate 文件名
  .在后台数据库按文件名搜素,搜索速度更快

      /var/lib/mlocate
  .locate命令所搜索的后台数据库 

  update
  更新数据库
  !当新建一个文件,比如touch cangls
 然后locate cangls  结果是找不到这个文件的,因为数据库基本一天更新一次,所以一天后就可以找到了,难道`只有等一天吗?
 其实可以更新数据库的,执行updatedb命令就更新了,然后就可以找到新建的文件了

 如果不记得数据库目录在哪,可以locata locate,根据不同的版本,目录名可能不同,我的这个在/var/lib/mlocate

 缺点:只能搜索文件名,功能单一
       相比find(耗费资源多,慢,但功能强大),耗费资源少,
  !!locate有一个很有意思的地方
  当在/root和/tmp目录下都新建一个文件cangls时,然后updatedb,用locate只能找到/root下的cangls
因为locate是按照/etc/updatedb.conf配置文件来搜索的

 prune 删除,减少
 PRUNE——BIND——MOUNTS="YES"
 #开启搜索限制

 PRUNEFS=
 #搜索时,不搜索的文件系统

 PRUNENAMES=
 #搜索时,不搜索的文件类型

 PRUNEPATHS=
 #搜索时,不搜索的路径(/tmp)在这个目录下
 所以上面只搜索到了/root目录下的cangls,可以打开updated.conf配置文件     

2)命令搜索命令whereis和which
a:whereis 命令名 //只能搜索系统命令,不能搜索自己创建的命令
#搜索命令所在路径及帮助文档所在位置
选项:
-b:只查找可执行文件
-m:只查找可帮助文件
whoanmi 可以知道自己是什么用户
whatis ls 就可以知道ls是干嘛的

    b:which 文件名(和whereis非常相似,只是多了可以查看别名的功能,比如ll,不过不能看帮助文档(不知道是不是系统原因,我的
                 系统上不可以看到别名))
        #搜索命令所在路径及别名
    但不是所有的命令都可以找到目录的,比如cd命令,因为是shell自带的
ps:其实我们使用的命令都是在某个目录下,要使用某条命令比如ls,是要输入绝对路径的,不然直接输入ls会提示找不到ls,卧曹,
 那这样岂不是很麻烦,为此,我们可以配置环境变量,这些命令的环境变量都是配置好了的,所以我们可以直接输入ls就就以了,
 可以用echo $PATH查看配置的环境变量
 PATH环境变量:定义的是系统搜索命令的路径

3) find命令
find [搜索范围] [搜索条件]
#搜索文件
find / -name install.log //在/目录下按照文件名搜索,搜索文件名为”install.log”的文件
执行此命令会非常慢,系统压力很大,因为在整个根目录下搜索
#所以使用find时要避免大范围搜索,会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名(必须文件名一模一样才会搜索到),如果需要匹配,使用通配符匹配,通配符是完全匹配

  linux中的通配符
× 匹配任意内容 find /root -name “install.loh*” 用引号括起来
find /root -name “*” 这样就是列出当前目录下所有文件,包括隐藏文件
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符 find /root -name “ab[cd]” 就是搜索abc文件或者abd文件

  find /root -iname install.log  
  iname就是不区分大小写

  find /root -user root
    -user 按照所有者搜索

   find /root -nouser 
     -nouser 查找没有所有者的文件 //linux中,没有所有者打文件就是垃圾文件,所以一般找到这些文件后都可以手动删除,不过需要注意两种情况
    //1: 由内核产生的文件(该文件直接由内核调用而不经过系统目录)有可能没有所有者:
    //    比如/目录下打proc和sys这两个目录,这两个目录是内存打挂载点,内核有可能在这两个目录中进行交互,所以如果在这两个目录下找到了没有所
    //    有者的文件,是正常打,不要去删除
    //2:外来文件:
    //  比如u盘(光盘等)拷贝一个windows系统中的文件,然后拷贝到linux中,因为windows忽略啦所有者(并不是没有)这一概念,所以这些文件也是
    //  没有所有者的
    除了这两种情况之外,其他的所有没有所有者的文件都是垃圾文件

    find /var/log/ -mtime +10
    #查找10天前修改的文件
    -10   10天内修改文件
     10    10天当天修改文件
     +10   10天前修改文件
     atime   文件访问时间
     ctime   改变文件属性
     mtime   修改为文件内容 

 find . -size 25k         .就表示在当前目录
                        也可以找大小为兆字节的文件,注意的是,千字节要小写的k,而兆字节要大写的M,不然会报错
                       如果不带单位,直接find . -size 25 就是搜索25个扇区大小的文件,就是25*512字节大小,所以基本都带单位 
    #查找文件大小为25kb的文件
   -25    小于25kb的文件
    25kb  等于25kb的文件
    +25   大于25kb的文件

     find . -inum 262422
    #查找i节点是262422的文件


     find /etc -size +20k -a -size -50k
    #查找/etc目录下,大于20k小于50k的文件
    -a and 逻辑与,
    -o or  逻辑或

 find /etc -size +20k -a -size -50k -exec ls -lh {} \;
     #查找/etc/目录下,大于20k并小于50k的文件,并人性化显示详细信息


     #-exec/-ok 命令 {} \;对搜索结果执行操作 只要用了-exec就必须在后面加{} \;
  如果-exec后接rm -rf,那么就是把找到的文件删除

4) 字符串搜索命令 grep
grep [选项] 字符串 文件名
#在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除制定字符串(即搜索不包含指定字符串打字符串)

#find命令和grep命令的区别:
*find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

×grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配

//===========================================三:帮助命令=======================================================
1) 帮助命令man
man 命令
# 获取指定命令的帮助
ex: man ls
#查看ls的帮助

    man的级别:
    1:查看命令的帮助
    2:查看可被内核调用的函数的帮助
    3:查看函数和函数库的帮助
    4:查看特殊文件的帮助(主要是/dev目录下的文件)
    5:查看配置文件的帮助
    6:查看游戏的帮助
    7:查看其他杂项的帮助
    8:查看系统管理员可用命令的帮助
    9:查看和内核相关文件的帮助

#查看命令拥有哪个级别的帮助
. man -f 命令
     相当于:
. whatis 命令

#知道了命令拥有哪些等级的帮助后,可以查看相应等级的帮助
例如:
    man 5 passwd
    man 4 null
    man 8 ifconfig

# 查看和命令相关的所有帮助(只要帮助文档里有该名令的关键字,就会列出来)
. man -k 命令
相当于:
. aprops 命令
比如忘记了chpasswd命令,不记得怎么写,可以man -k passwd,会在列出的里面看到chpasswd

2) 其他帮助命令
    1:第一种: 选项帮助
    . 命令 --help
    *获取命令项的帮助
    例如:ls --help

2:第二种:shell内部命令帮助
    . help shell内部命令
     ×获取shell内部命令的帮助
     例如 . whereis cd
             #确定是否是shell内部命令
          . help cd
         #获取内部命令帮助
3:详细命令帮助info(知道就好,太麻烦)
    . info 命令
    - 回车    进入子帮助页面(带有*号标记)
    - u 进入上层页面
    - n 进入下一个帮助小节
    - p 进入下一个帮助小节
    - q 退出

//===========================================三:压缩与解压缩命令=======================================================

常用压缩格式: .zip    .gz     .bz2
        .tar.gz .tar.bz2

1: .zip格式压缩(这种格式和windows是通用的)
    zip 压缩文件名 源文件
        #压缩文件
    zip -r 压缩文件名 源目录
        #压缩目录

   .zip格式解压缩
    uzip 压缩文件
        #解压缩.zip文件

2: .gz格式压缩

    . gzip 源文件
        #压缩.gz格式的压缩文件,源文件会消失

    gzip -c 源文件 > 压缩文件  //<就是将命令的结果写入后面的文件,比如touch a然后ls > a,就是将
        #压缩为.gz格式的压缩文件,源文件保留                //ls显示的信息写入a中
        //这样就做到了压缩原文件而源文件不消失的效果


    gzip -r 目录(目录不会发生变化,里面文件会压缩)
        #压缩目录下所有子文件,但是不能压缩目录     

    .gz格式解压缩(解压缩目录就加-r)

    . gzip -d 压缩文件
        #解压缩文件

    .gunzip 压缩文件
        #解压缩文件

3: .bz2格式压缩

    .bzip2 源文件
        #压缩.bz2格式,不保留源文件

    .bzip2 -k 源文件
        #压缩之后保留源文件

    !!注意,bzip2命令不能压缩目录

    . bz2格式解压缩

    bzip2 -d 压缩文件
        #解压缩,-k保留压缩文件

    bunzip2 压缩文件
        #解压缩,-k保留压缩文件


4:打包命令tar

    . tar -cvf 打包文件名 原文件
    . 选项:
        -c: 打包
        -v: 显示过程
        -f:     指定打包后的文件名

    ex:(jp文件夹里面有a,b两个文件)

        tar -cvf jp.tar jp  //这样就会有一个打包好的jp.tar文件
        gzip jp.tar     //然后再压缩为gzip格式(或者bzip2格式),这样就解决了不能压缩目录的问题

   解打包命令

    . tar -xvf 打包文件名
    . 选项:
        -x 解打包

//如果每次都要打包,再压缩,那岂不是太麻烦了,所以就有.tar.gz和.tar.bz2这两种格式

5: .tar.gz压缩格式

    . 其实.tar.gz格式是先打包为tar格式,再压缩为.gz格式

    . tar -zcvf 压缩包名.tar.gz 原文件   //默认压缩在当前路径,后面可以加上文件从而压缩多个文件
    . 选项:
        -z: 压缩为.tar.gz格式

    . tar -zxvf 压缩包名.tar.gz
    . 选项:
        -x: 解压缩.tar.gz格式



6:  .tar.bz2压缩格式

    . tar -jcvf 压缩包名.tar.bz2 原文件    //默认压缩在当前路径,后面可以加上文件从而压缩多个文件
    . 选项:
        -j: 压缩为.tar.bz2格式

    . tar -jxvf 压缩包名.tar.bz2
    . 选项:
        -x: 解压缩.tar.bz2格式

.如果要将.tar.gz和.tar.bz2格式解压缩到指定位置,后面加-C 位置
    //C是大写

    . 也可以查看内容,不解压缩
        -t 查看内容,不解压缩(test,相当于测试一下)

    ep: tar -jtvf 压缩包名.tar.bz2  //就会看到压缩包里面的文件

//===========================================三:关机和重启命令=======================================================

1: shutdown命令(这条命令在关机之前会保存数据,比较安全)

. shutdown [选项] [时间]
   选项:
    -c 取消前一个关机命令
    -h 关机
    -r 重启

ep: shutdown -h 06:20
    //按下回车后终端会卡住(当然以实际情况为准,不同系统会不同),直到到了06:20后自动关机,可以按Ctrl+c中断命令
    //如果想让命令后台执行,后面加个& (shutdown -h 06:20 &)

时间如果是now就是马上,比如:shutdown -h now

data可以显示时间

2: 其他关机命令
. halt
. poweroff
. init 0
//这三个命令都不是太安全,不会像shutdown一样在服务器关机和重启时正确保存数据,知道就好

3: 其他重启命令
. reboot //如果不想敲长的shutdown -h now,可以用reboot
. init 6 //尽量不要用

4: 系统运行级别
.0 关机
.1 单用户 //可以想象成windows的安全模式
.2 不完全多用户,不含NFS服务
.3 完全多用户 //字符界面
.4 未分配
.5 图形界面
.6 重启

. runlevel
    #查询系统运行级别
    执行该命令后,出现了N 5
        N代表NULL,第一个代表进入当前级别之前在哪个级别,第二个是当前所在级别,5是图形界面,N表示之前是"空的",所以这就表示系统一开机就进入了图形界面,

想想,如果既装了字符界面又装了图形界面,那么开机默认是进入哪个级别呢?可以查看配置文件,cat/etc/inittab,不过我的系统不在这里

5:退出登录命令logout

//===========================================四:其他常用命令=======================================================

1:挂载命令
挂载: 在linu中所有的存储设备(u盘,光盘,硬盘等),必须在挂载之后才能正常使用

1): 查询与自动挂载
    . mount
       #查询系统中已经挂载的设备
    . mount -a
       #根据配置文件/etc/fstab的内容,自动挂载

2):命令挂载格式
    . mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

    选项:
        -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统
        -o 特殊选项:可以指定挂载的额外选项

    //选项参数看图片

       可以创建一个脚本文件:touch hello.sh
    然后用vim编写脚本,内容是:
        #!/bin/bash //必须这样开头
        echo "Hello shell"  //输出一段信息
    然后给权限:  chmod 755 hello.sh 
    就生成了一个可执行的脚本文件,./hello.sh就可以执行了

    mount -o remount,noexec /home   //remount表示重新挂载,使选项生效,noexec表示不执行,
                    //挂载到home分区(我实验时挂载到home分区失败,所以就挂载到根分区,成功了,结果/下命令都执行不了了,除了自带的cd命令)
    不要轻易修改!!!否则就是自己给自己挖坑,这时候就算是root,可执行文件也不可执行,万一挂载的是/目录,那就惨了,命令都执行不了了,重装系统吧
    注意一下,这里直接写home,没有写设备文件名也是可以的,因为home分区已经自动挂载好了


3):挂载光盘

    mkdir /mnt/cdroom
      #建立挂载点

    mount -t iso9660 /dev/cdrom /mnt/cdrom/
      #挂载光盘
     //光盘的文件系统就是iso9660,没什么好说的,设备名可以写/dev/sr0(dev/cdrom是dev/sr0的快捷方式,即软连接,需要系统完全启动之后才会起作用,因此建议写
     ///dev/sr0)

    -t iso9660也是可以省略的
    挂载光盘后,可能会出现:
        /dev/sr0 is write-protected, mounting read-only
    这不是报错,因为挂载后默认是读写的,而光盘是只读的,这里被迫挂载为只读,所以会有提示,挂载并没有失败

     windows中光盘要取出来,直接按键就弹出了,不过linux中,要先卸载光盘,不然再怎么按也弹不出来(其实windows也一样,只不过可以取出来,数据可能丢失而已,而                   linux更严谨,直接无法弹出)

4):卸载命令

    umount 设备文件名或挂载点
        umount /mnt/cdrom

5): 挂载u盘
    fdisk -l
     # 查看u盘设备文件名

    mount -t vfat /dev/sdb1 /mnt/usb/   //插入u盘后,执行fdisk -l就会看到u盘设备文件名,一般来说是sdb1,以实际为准
       //上面的vfat文件系统相当于windows的fat32系统(这种系统基本淘汰,因为不支持单个文件大小超过4g),这里就是指定u盘的文件系统为fat32


    注意:Linux默认是不支持NTFS文件系统的,所以,移动硬盘是不能直接在linux中挂载的,要想挂载,两种方法:
        1:重新编译linux内核,使得支持NTFS文件系统
        2:下载NTFS-3g,安装,之后就默认支持NTFS,不过就算这样也是只读的,linux与windows到底不是一个系统,兼容性不太好,要在linux和windows之间共享文件                  一般都是网络传输

2:查看登录用户信息

.w 用户名

# 命令输出:
  USER:登录的用户名
  TTY:登录终端
  FROM: 从哪个IP地址登录
  LOGIN@: 登录时间
  IDLE: 用户闲置时间
  JCPU: 指的是和该终端连接的所有进程占用的时间,这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
  PCPU:是指当前进程所占用的时间
  WHAT:当前正在运行的命令

. who 用户名

 # 命令输出:
    - 用户名
    - 登录终端
    - 登录时间(登录来源IP地址)

. last      //查询当前登录和过去登录的所有用户信息

    # last命令默认是读取/var/log/wtmp文件数据
    # 命令输出
        - 用户名
        - 登录终端
        - 登录IP
        - 登录时间
        - 退出时间(在线时间)


. lastlog   //查看所有用户的最后一次登录时间

    # lastlog命令默认是读取/var/log/lastlog的文件内容
    # 命令输出:
        - 用户名
        - 登录终端
        - 登录IP
        - 最后一次登录时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值