zoukankan      html  css  js  c++  java
  • Linux之常用命令I

    一、Linux简介

    1)Minix(只为教学,开源的)-->Linux(以前者为模板,添加了一些软件)

    2)Linux分为内核版本和发行版本

    区别:Linux内核版本就是核心版本,不用最新版本,用最安全、最稳定的版本,由官方网站提供,任何人都可以下载使用;而在内核版本的基础之上开发一些工具就会变成开发商的发行版本。

    3)Linux主要发行版本

    Redhat、ubuntu(图形界面更加漂亮)、CentOS、SuSE、fedora、gentoo linux、mandriva等等。Redhat和CentOS其实是完全一样的,前者收售后服务费,后者是免费的。Fedora是redhat的个人版本,功能比redhat还强大,因为开发一个新的功能就放在这里测试

    4)开源软件简介

    定义:开放源代码,绝大多数开源软件免费。

    例如:Apache、NGINX、Mysql、php、samba、mongoDB、python、Rudy、Sphinx

    5)Linux与Windows的不同

    Linux严格区分大小写

    Linux中所有内容以文件形式保存,包括硬件(一切内容皆文件)

    Linux不靠扩展名区分文件类型(靠权限区分),没有扩展名概念,有一些约定型扩展名。例如:

    压缩包:*.gz、*.bz2、*.tar.bz2、*.tgz

    二进制软件包:.rpm

    网页文件:*.html、*.php

    脚本文件:*.sh

    配置文件:*.conf

    Windows下的程序不能直接在Linux中安装和运行

    二、Linux系统安装

    1) 虚拟机安装

    1、简介:VMware是一个虚拟PC的软件,相当于模拟出一台新的PC

    2) 系统分区

    1、 磁盘分区:是使用分区编辑器在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区。

    2、 分区类型:主分区:最多只能4个

    扩展分区:最多只能有1个;主分区加扩展分区最多有4个;不能

    写入数据,只能包含逻辑分区。

                     逻辑分区:是在创建主分区以后的分区。

    硬盘的盘符是从C:开始的,C:就是无可选择的主要分区。如果一个硬盘只划分一个分区,那整个硬盘就是一个盘符C:。如果划分不止一个分区,那么C:后的分区就是扩展分区。扩展分区的第一个盘符D:就是第一逻辑分区,依此类推。

    3、 格式化:又称逻辑式化,它是指根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。

    4、 硬件设备文件名

    硬件

    设备文件名

    IDE硬盘

    /dev/hd[a-d]

    SCSI/SATA/USB硬盘

    /dev/sd[a-p]

    光驱

    /dev/cdrom或/dev/hdc

    软盘

    /dev/fd[0-1]

    打印机(25针)

                        /dev/usb/lp[0-15]

    打印机(USB)

    /dev/usb/lp[0-15]

    鼠标

    /dev/mouse

    5、 分区设备文件名

    设备文件名:/dev/hda1(IDE硬盘接口)(hd代表硬盘的接口;a代表第一个

    硬盘;1代表第一个分区)

                           /dev/sda1(SCSI硬盘接口、SATA硬盘接口)

    6、 挂载

    必须分区:/(根分区)

              swap分区(交换分区或虚拟内存,内存2倍,不超过2GB)

    推荐分区:/boot(启动分区,200MB,建议单独分区,不影响启动)

    7、 总结

    分区:把大硬盘分为小的逻辑分区

    格式化:写入文件系统

    分区设备文件名:给每个分区定义设备文件名

    挂载:给每个分区分配挂载点

    挂载点:即可理解为windows中的盘符,比如C盘、D盘等。

    3) Linux系统安装

    安装教程:http://www.imooc.com/video/3245

    安装完成后会有默认三个文件,就是安装日志

    1、/root/install.log:存储了安装在系统中的软件包及其版本信息

    2、/root/install.log.syslog:存储了安装过程中留下的事件记录

    3、/root/anaconda-ks.cfg:以Kickstart配置文件的格式记录安装过程中设置的选项信息

    如果需要安装大数量的Linux,可以依据此文件进行安装,这叫做网络批量安装

    三、Linux常用命令

    1) 命令基本格式

    [root@localhost ~]#

    root 代表当前登录用户(Linux当中管理员账号是root)

    localhost 主机名

    ~ 当前所在目录(家目录,例如root用户的家目录就是/root,user1用户的

    家目录即是/home/user1)

    # 超级用户的提示符

    $ 普通用户的提示符

    命令格式:

    命令 [选项] [参数]

    注意:个别命令使用不遵循此格式;当有多个选项时,可以写在一起;简化选项与

    完整选项(-a等于--all)

    1、 查询目录中内容:ls

    ls [选项] [文件或目录]

    选项:-a 显示所有文件,包括隐藏文件

          -l 显示详细信息

          -d 查看目录属性

          -h 人性化显示文件大小

          -i 显示inode

    注意:在linux当中.开头的文件都是隐藏文件

    例如:drwxr-xr-x . 3 user  user  3.6K  2010-05-07 14:38  Downloads

          drwxr-xr-x (文件的权限)

          . (代表ACL权限)

          3(引用计数)

    user(文件的所有者)

    user(文件的所属组)

    3.6k(文件大小,字节)

    2010-05-07 14:38(最有一次修改的时间)

    Downloads(文件名)

    2、 文件权限(默认10位)

    第一位“-”为文件类型(-代表文件;d代表目录;l代表软链接文件即快捷方式),后面每3位一组。

    -rw-r--r--

    rw-  u所有者

    r--   g所属组(相同身份、相同权限)

    r--   o其他人

    r读 w写 x执行

    2) 文件处理命令

    1、 目录处理命令

    ◆  建立目录:mkdir(原意:make directories)

    mkdir –p [目录名](-p表示递归创建)

    例如:[root@localhost ~]# mkdir -p japan/cangls

    代表:创建japan目录,随便在此目录下创建canls目录,这叫递归创建。

    ◆  切换所在目录:cd(原意:change directory)

    简化操作

    cd ~ 进入当前用户的家目录

    cd

    cd - 进入上一次目录

    cd .. 进入上一级目录

    cd . 进入当前目录

    ◆  相对路径:参照当前所在目录,进行查找

    如:[root@localhost ~]# cd ../usr/local/src/

    ◆  绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置。(建议初学者都用绝对路径来进行访问)

    如:[root@localhost ~]#cd /etc/

    ◆  查询所在目录位置:pwd(原意:print working directory)

    ◆  双击Tab键补全命令/目录

    ◆  删除空目录:rmdir(原意:remove empty directories)

    rmdir [目录名]

    ◆  删除文件或目录:rm(原意:remove)

    rm –rf [文件或目录]

    选项:-r(删除目录)

              -f(强制)

    ◆  复制命令:cp(原意:copy)

    cp [选项] [原文件或目录] [目标目录]

    选项:-r(复制目录)

              -p(连带文件属性复制)

              -d(若源文件是链接文件,则复制链接属性)

              -a(相当于 –pdr以上3个整合)

    ◆  剪切或改名命令:mv(原意:move)

    mv [原文件或目录] [目标目录]

    2、 常见目录作用

    ◆  /根目录

    ◆  /bin命令保存目录(普通用户就可以读取的命令)

    ◆  /boot启动目录,启动相关文件

    ◆  /dev设备文件保存目录

    ◆  /etc配置文件保存目录

    ◆  /home普通用户的家目录

    ◆  /lib系统库保存目录

    ◆  /mnt系统挂载目录(u盘、移动硬盘等)

    ◆  /media挂载目录(光盘等)

    ◆  /misc挂载目录(外接磁盘机等)

    ◆  /root超级用户的家目录

    ◆  /tmp临时目录

    ◆  /sbin命令保存目录(超级用户才能使用的目录)

    ◆  /proc直接写入内存的

    ◆  /sys(proc和sys目录不能直接操作,保存的是内存的挂载点)

    ◆  /usr系统软件资源目录

       /usr/bin/系统命令(普通用户)

        /usr/sbin/系统命令(超级目录)

    ◆  /var系统相关文档内容

    注:①根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的,sbin目录下保存的命令只有root和超级用户才能执行。

    ②可以在以上标红色的目录下随便放内容,其它目录谨慎使用

    3、 链接命令

    ◆  链接命令:ln(原意:link)

    ln –s [原文件] [目标文件]

    功能描述:生成链接文件

    选项: -s 创建软链接

    ◆  硬链接特征:

    拥有相同的i节点和存储block块,可以看做是同一个文件;

    可通过i节点识别;

    不能跨分区;

    不能针对目录使用。

    ◆  软链接特征:

    类似Windows快捷方式;

    软链接拥有自己的i节点和block,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据;

    lrwxrwxrwx l代表软链接(软链接文件权限都为rwxrwxrwx取决与原文件);

    修改任意文件,另一个都改变;

    删除原文件,软链接不能使用。

    注:在创建软链接的时候原文件一定要写绝对路径

    3) 文件搜索命令

    1、 文件搜索命令locate

    ◆  locate 文件名(在后台数据库中按文件名搜索,搜索速度更快)

    ◆  /var/lib/mlocate(locate命令所搜索的后台数据库,不是实时更新,每天更新)

    ◆  updatedb(更新数据库,新建文件需要更新数据库才能搜索到)

    注:locate是按照/etc/updatedb.conf这个配置文件来搜索的,配置文件里的内容如下:

    PRUNE_BIND_MOUNTS=”yes”(开启搜索限制,yes代表以下规则都生效)

    PRUNEFS=“”(搜索时,不搜索的文件系统)

    PEUNENAME=“”(搜索时,不搜索文件名带有这些关键字的文件)

    PRUNEPATHS=“”(搜索时,不搜索的路径)

    2、 命令搜索命令whereis与which

    ◆  搜索命令的命令:whereis

    whereis 命令名(搜索命令所在路径及帮助文档所在位置)

    选项:-b:只查找可执行文件

                     -m:只查找帮助文件

    ◆  搜索命令的命令:which

                     which 文件名(搜索命令所在路径及别名)

    ◆  PATH环境变量

    PATH环境变量:定义的是系统搜索命令的路径

    执行命令的时候都要在path定义的目录(可输入echo$PATH)中去寻找。

    所以像ls这样的命令就可以不用加绝对路径(/bin/ls)就可以执行了。

    如果自己写的脚本 在运行时不想写绝对路径,需要在path设置目录

    3、 文件搜索命令find

    ◆  文件搜索的命令:find

    find [搜索范围] [搜索条件]

    例如:[root@localhost ~]# find / -name install.log

    注:避免大范围搜索;如果需要匹配,可使用通配符(*、?、[])匹配。

    ◆  find /root –iname install.log(不区分大小写)

    ◆  find /root –user root(按照所有者搜索,搜索root目录下的所有者属于root用户的文件)

    ◆  find /root –nouser(查找没有所有者的文件,搜索没有所有者的文件,除了由内核产生的(一般在proc和sys目录下)和外来文件(如光盘、u盘))

    ◆  find 按文件时间来搜索

    find /home -mtime +10/10/-10 在home目录下,查找10天前/10天当天/ 10天内修改的文件

    atime 文件访问时间

    ctime 改变文件属性

    mtime 修改文件内容

    ◆  find按照文件大小来搜索

    find .(代表当前目录) -size 25k(查找文件大小是25kb的文件)

    -25k 小于25kb的文件

     25k 等于25kb的文件

    +25k 大于25kb的文件

    注意:单位用小写k或者大写M ,不能不加文件大小的符号,find默认的是数据块(扇区:每个扇区512字节)

    ◆  find . –inum 262422(查找i节点是262422的文件)

    ◆  find /etc –size +20k –a –size -50k(查找/etc/目录下,大于20kb并且小于50kb的文件)

    -a 表示and 逻辑与,两个条件都满足

    -o 表示or  逻辑或,两个条件满足一个即可

    ◆  find /etc -size +20k -a -size -50k -exec ls -lh {} ;(查找/etc/目录下,大于20kb并且小于50kb的文件,并显示详细信息)

    {} ; 标准格式,只要有-exec这个命令就要书写,表示直接对前面的搜索结果进行后面的命令处理,其中必须添加可以处理第一条命令的命令

    4、 字符串搜索命令grep

    ◆  搜索字符串命令:grep

    grep [选项] 字符串 文件名 (在文件当中匹配符合条件的字符串。字符串使用 "" 包围。)

    -i 忽略大小写

    -v 排除指定字符串

    5、 find命令与grep命令的区别

    find:在 系统 中搜索符合条件的 文件名,使用通配符(完全)匹配

    grep:在 文件 当中搜索符合条件的字符串,使用 正则表达式 (包含)匹配

    通配符(完全)匹配:搜索文件名

    正则表达式 (包含)匹配:搜索文件中的数据

    4) 帮助命令

    1、 帮助命令man

    ◆  man 命令(获取指定命令的帮助)

    man ls(查看ls的帮助)

    ◆  man的级别

    1:查看命令的帮助

    2:查看可被内核调用的函数的帮助

    3:查看函数和函数库的帮助

    4:查看特殊文件的帮助(主要是/dev目录下的文件)

    5:查看配置文件的帮助

    6:查看游戏的帮助

    7:查看其它杂项的帮助

    8:查看系统管理员可用命令的帮助

    9:查看和内核相关文件的帮助

    ◆  查看命令拥有哪个级别的帮助

    man –f 命令(相当于whatis 命令)

    查看和命令相关的所有帮助

    man –k 命令(相当于apropos 命令)

    2、 其它帮助命令

    ◆  选项帮助

    命令 --help(获取命令选项的帮助)

    例如:ls --help

    ◆  shell内部命令帮助

    help shell内部命令(获取shell内部命令的帮助)

    例如:whereis cd(确定是否是shell内部命令)

    help cd(获取内部命令帮助)

    ◆  详细命令帮助info

    Info命令(info里面内容十分繁琐,是关于命令的一个巨大的帮助文档,里面有各个版本对于此命令的说明。)

    -回车:进入带*号的说明

    -u: 进入上层页面(up)

    -n: 进入下一个帮助小节(next)

    -p: 进入上一个帮助小节(previous)

    -q: 退出(quit)

    5) 压缩与解压缩命令

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

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

    1、 .zip格式压缩

    zip 压缩文件名 源文件(压缩文件)

    zip -r 压缩文件名 源目录(压缩目录)

    2、 .zip格式解压缩

    unzip 压缩文件(解压缩.zip文件)

    3、 .gz格式压缩

    gzip 源文件(压缩为.gz格式的压缩文件,源文件会消失)

    gzip -c 源文件 > 压缩文件(压缩为 .gz格式,源文件保留)

    例如:gzip -c test > test.gz

    gzip -r 目录(压缩目录下所有的子文件,但是不能压缩目录)

    4、 .gz格式解压缩

    gzip -d 压缩文件(解压缩文件)

    gunzip 压缩文件(解压缩文件)

    5、 .bz2格式压缩

    bzip2 源文件(压缩为.bz2格式,不保留源文件)

    bzip2 -k 源文件(压缩为.bz2格式,保留源文件)

    注意:bzip2 命令不能压缩目录

    6、 .bz2格式解压缩

    bzip2 –d 压缩文件(解压缩,-k保留压缩文件)

    bunzip2 压缩文件(解压缩,-k保留压缩文件)

    7、 打包命令tar

    tar -cvf 打包文件名 源文件

    选项:

    -c 打包

    -v 显示过程

    -f 指定打包后的文件名

    例如:tar  -cvf  test.tar  test

    8、 解打包命令

    tar -xvf 打包文件名

    选项:

             -x:解打包

    例如:tar -xvf test.tar

    9、 .tar.gz压缩格式

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

    ◆  tar -zcvf 压缩包名.tar.gz 源文件

    选项:

                    -z:压缩为.tar.gz格式

    例如:[root@localhost ~]# tar -zcvf /tmp/test.tar.gz 文件名1 文件名2

    (压缩多个文件到指定tmp目录下)

    ◆  tar -zxvf 压缩包名.tar.gz

    选项:

                    -x:解压缩.tar.gz格式

    例如:[root@localhost ~]# tar -ztvf test.tar.gz(只查看压缩文件里内容不解压)

    10、.tar.bz2压缩格式

    ◆  tar -jcvf 压缩包名.tar.bz2 源文件

    选项:

                         -z:压缩为.tar.bz2格式

    ◆  tar -jxvf 压缩包名.tar.bz2

    选项:

                         -x:解压缩.tar.bz2格式

    例如:[root@localhost ~]# tar –jxvf test.tar.bz2 -C /tmp/(指定解压到tmp目录下)        

    6) 光机和重启命令

    1、 shutdown命令

    shutdown [选项] 时间

    选项:-c:取消前一个关机命令

              -h:关机

              -r:重启

    后台运行:[root@localhost ~]# shutdown -r 时间 &

    2、 其它关机命令(一般不会保存数据关机)

    [root@localhost ~]# halt

    [root@localhost ~]# poweroff

    [root@localhost ~]# init 0(零)

    3、 其它重启命令

    [root@localhost ~]# reboot

    [root@localhost ~]# init 6(尽量不用)

    4、 系统运行级别

    0      关机

    1      单用户(相当于windows中的安全模式)

    2      不完全多用户,不含NFS服务

    3      完全多用户(我们常用的字符界面)

    4      未分配

    5      图形界面(用大写X代表)

    6      重启

    [root@localhost ~]# cat /etc/inittab(修改系统默认运行级别)

    id:3:initdefault:

    [root@localhost ~]# runlevel(查询系统运行级别)

    N 3(N代表进入3级别前的那个级别即空级别,3代表当期级别即字符界面)

    5、 退出登录命令

    [root@localhost ~]# logout

    7) 其它常用命令

    1、 挂载命令

    ◆  查询与自动挂载

    [root@localhost ~]# mount(查询系统中已经挂载的设备)

    [root@localhost ~]# mount(依据配置文件/etc/fstab的内容,自动挂载)

    /etc/fstab:自动挂载的配置文件

    ◆  挂载命令格式

    [root@localhost ~]# mount [-t 文件系统] [-o 特殊选项] 文件名 挂载点

    选项:

    -t文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统

    -o特殊选项:可以指定挂载的额外选项。以下参数建议不要修改:

    参数

    说明

    Atime/noatime

    更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认更新

    Async/sync

    异步/同步,默认为异步

    Auto/noauto

    自动/手动,mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动

    Defaults

    定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项

    Exec/noexec

    执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许

    Remount

    重新挂载已经挂载的文件系统,一般用于指定修改特殊权限

    Rw/ro

    读写/只读,文件系统挂载时,是否具有读写权限,默认是rw

    Suid/nosuid

    具有/不具有SUID权限,设定文件系统是否具有SUID和SGID的权限,默认是具有

    user/nouser

    允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许只有root可以挂载分区

    usrquota

    写入代表文件系统支持用户磁盘配额,默认不支持

    grpquota

    写入代表文件系统支持组磁盘配额,默认不支持

    ◆  挂载光盘

    [root@localhost ~]# mkdir /mnt/cdrom/(建立挂载点)

    [root@localhost ~]# mount –t iso9660 /dev/cdrom(建议用sr0) /mnt/cdrom(挂载光盘)

    [root@localhost ~]# mount /dev/sr0 /mnt/cdrom/

    ◆  卸载命令

    [root@localhost ~]# umount 设备文件名或挂载点

    [root@localhost ~]# umount /mnt/cdrom

    ◆  挂载u盘

    [root@localhost ~]# fdisk –l(查看u盘设备文件名)

    [root@localhost ~]# mount –t vfat /dev/sdb1 /mnt/usb/

    注意:Linux默认是不支持NTFS文件系统的

    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

    -最后一次登录时间

  • 相关阅读:
    mysql 加入列,改动列,删除列。
    C语言中的static 具体分析
    [Python网络编程]gevent httpclient以及网页编码
    iOS学习之 plist文件的读写
    数据库设计中的14个技巧
    最简单的基于FFMPEG的封装格式转换器(无编解码)
    一次重要的爱情婚姻抉择,您怎么看?
    2014年到期的myeclipse5.5.1注冊码
    24点经典算法
    使用val()方法设置表单中的默认选中项
  • 原文地址:https://www.cnblogs.com/huhyoung/p/6262884.html
Copyright © 2011-2022 走看看