1. 学习 Linux 基本命令之前必需了解的基本内容和概念


    1). 目录结构:Linux 采用树型结构组织目录

            /                 根目录,一切文件都源自这里

            /bin            普通用户的命令文件

            /sbin          超级用户的命令文件

            /boot          Linux 的内核及 grub 等相关文件

            /dev           系统设备放在这里(Linux下所有设备都是文件)

            /etc            系统配置文件放在这里

            /home        用户的根目录(通常普通用户只有自己目录的写权限)

            /lib             Linux 的程序通用动态库文件

            /mnt           Linux 预留的磁盘挂载目录

            /proc          内在中的设备信息挂载在这里

            /tmp           临时文件目录

            /usr            应用程序目录

            /usr/src     对应程序源代码文件

            /usr/bin      对应普通用户程序编译后的文件

            /usr/sbin     对应超超级用户程序编译后的文件

            /var            存放变动信息的文件的位置,比如:日志文件、缓存文件

    2). 基本概念:

            a. Linux 是真正的多用户、多任务的操作系统

            b. 绝对路径从 /(根) 开始,相对路径从当前目录开始

            c. 调用命令帮忙信息的几种方法

                help 命令    或者    命令 --help    简单帮助


                man 命令                                    命令手册(如果有的话)


                info 命令                                     同 man
            d. 输入命令时连按两次 Tab 键,可以补全命令或操作目录、文件

2. Linux 基本命令的基本用法。详细用法参照:命令 --help 寻找更多信息

    sudo: Executing Commands with Elevated Privileges 执行命令特权 sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。

1). 文件和目录管理类常用命令
         ls                    列出目录和文件。实列:ls /boot -lha    a表示全部,h表示友好方式,l表示详细列表
         touch              创建空文件。实例:touch a    创建一个名为 a 的空文件
         mkdir              创建空目录。实例:mkdir a    创建一个名为 a 的空目录
                                其它常用方法:mkdir d1 d2 /home/user1/d3 创建三个空目录
         cat,less,more  查看文件内容。实例:cat a    区别:cat 一次次全部显示,less 分页显示内容可返回
                                查看,more 同 less 只是查看文件内容的过程里不能向上返回。

         cat /proc/cpuinfo显示CPU信息  

         rm                   删除文件或目录。实例:rm a 删除文件a,rm -r a 删除目录 a 及所有子目录和文件
         rmdir               删除空目录
         cp                   复制文件或目录。实例:cp a b 复制文件 a 为文件 b,cp -r a b 复制目录 a 为目录 b
         mv(移动):移动命令,若移动的位置还算原来的路径,那么他就是个重命名命令,这个不难理解。比如 mv 文件1 文件2。文件2可以仅仅是路径也可以是包括文件的路径 。若仅仅是路径,那文件仅仅是移动而不会改名,当然,你也可以在移动过程中重新命名。
         find                  查找文件。实例:find . -name a 在当前目录查找名为 a 的文件
                                 sudo find / -name ls 从根目录开始查找名为 ls 的文件在什么位置
         pwd                 显示当前目录

         cp(复制):复制命令,格式为cp 文件1 文件2 。文件1和文件2还有cp之间当有空格。文件1和文件2可以包括路径。值得注意的是,这样并不能复制目录,复制目录要加入递归参数,即 cp -r 目录1 目录2

         cd                    改变目录    实例:cd /boot 切换到 /boot 目录。cd - 切换到上次工作目录 。cd 回主目录

                                 默认打开终端进入的是你的家(home)目录 。要进入文件系统就输入cd. 。几个参数例子:


进入根目录,输入"cd /" ,不含双引号,cd和/之间有空格,下同。


进入家目录输入 "cd" 或者 "cd ~"


进入上一级目录输入 "cd .."


回到之前的目录输入 "cd -"


当然你想进入一个目录,而你又知道他的绝对路径的话,可以直接输入绝对路径,比如 cd /boot/grub就是直接进入 /boot/grub。另外,如果你在cd后面并不加 / 的话,那就是进入当前目录的下的文件,比如你现在在家目录 /home/XXX,输入 cd pictures那就是进入/home/XXX/pictures目录


2). 磁盘管理
         df            查看磁盘容量及使用情况。如:df -h 以友好方式显示磁盘使用情况
         du           查看目录体积。如: du -sh 列出当前目录体积。sudo du /etc -sh 列出 /etc 目录体积
         mount      挂载磁盘设备。如:sudo mount /dev/cdrom /mnt 将光驱挂载到 /mnt 目录
         unmount  卸载磁盘设备。如:sudo unmount /dev/cdrom 卸载设备与卸载挂载点等效。
         eject        弹出磁盘设备。如:eject /dev/cdrom 弹出光驱
         hdparm    测试磁盘速度。如:sudo hdparm -tT /dev/sda 测试磁盘 sda 的缓存和缓冲读取速度
         cfdisk       磁盘分区。
         mkfs         分区格式化。 如:sudo mkfs -T fat32 /dev/sda1 将sda上的第一个分区格式化为 fat32 格式
         sync         将已更改的数据写入磁盘。


3). 用户管理

         useradd        添加一个用户。如:sudo useradd user1 添加一个名为 user1 的用户。

         userdel         删除一个用户。如:sudo userdel user1 删一个名为 user1 的用户。

         groupadd      添加一个用户组。如:sudo groupadd guest 添加一个名为 guest 的用户组。

         groupdel       删除一个用户组。如:sudo groupdel guest  删除一个名为 guest 的用户组。

         groups          查看用户所在组。如:groups user3 查看 user3 属性哪个组。

         usermod       更改一个用户的属性。如:sudo usermod -g guest user3 将 user3 移到 guest 这个组中。

         id                  显示用户的 ID 号。如:id user3 查看 user3 这个用户的 ID 号。

         passwd         修改用户密码。如:sudo passwd user3 回车后修改 user3 这个用户的密码。

                              sudo passwd    修改 root 密码

         who               显示当前所有用户。

         whoami         显示当前用户。

         finger            显示用户信息。如:finger root 显示 root 的信息。

         su                 切换用户。如:su root 切换为root 身份,su - root 完全切换到

         sudo             切换用户并运行。如:sudo -u user3 ls 以 user3 身份列出当前目录

4). 进程管理
          ps            查看当前进程。如:ps aux 显示当前所有进程
          pstree      树型显示进程。
          top           动态查看进程。
          kill [pid]    通过进程号结束进程。
          pkill [pname]  通过进程名结束进程。
          jobs          查看后台进程。

5). 网络命令
         ping [ip/domain]        测试到指定电脑的网络是否畅通。
         ifconfig                      查看当前网络 IP 信息
         netstat -an                查看当前网络连接及端口信息


6). 压缩包管理

            文件类型            相关命令

            .tar                     tar    常用参数:c 打包,v 可视进度,f 生成文件的名字,后面紧跟要生成的文件名,x 解包,z 是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩


参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
   『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!

                                      sudo tar cvf backup.tar /var/log/*  将 /var/log 下所有文件打包为 backup.tar 文件


                                      tar xvf backup.tar    解包 backup.tar 文件

            .gz                      gzip,gunzip    对应 gz 的压缩与解压缩

            .bz2                    bzip2,bunzip    对应 bz2 的压缩与解压缩,压缩率比 gz 高点。

            .zip                     zip,unzip         对应 zip 格式的压缩与解压

            .rar                     rar a,rar x       对应 rar 格式的压缩与解压

            .Z                       compress,uncompress  也可使用 gz 工具解压

            7z                       7z 工具可以解压以上所有格式

             .tar.gz                通常是用 tar 打包,再用 gzip 工具压缩生成的
             .tar.bz2              通常是用 tar 打包,再用 bzip2 工具压缩生成的


7). 软件包管理命令


安装软件 apt-get install softname1 softname2 softname3……
  卸载软件 apt-get remove softname1 softname2 softname3……
  卸载并清除配置 apt-get remove --purge softname1
  更新软件信息数据库 apt-get update
  进行系统升级 apt-get upgrade
  搜索软件包 apt-cache search softname1 softname2 softname3……


安装deb软件包 dpkg -i xxx.deb
  删除软件包 dpkg -r xxx.deb
  连同配置文件一起删除 dpkg -r --purge xxx.deb
  查看软件包信息 dpkg -info xxx.deb
  查看文件拷贝详情 dpkg -L xxx.deb
  查看系统中已安装软件包信息 dpkg -l
  重新配置软件包 dpkg-reconfigure xxx




8). Ubuntu 任务管理
            单次任务:只执行一次的任务。                ( at 编辑,atq 查看,atrm 删除 )
            周期任务:按一定周期循环执行的任务。  ( crontab -e 编辑,crontab -l 查看,crontab -r 清空任务)
            实例:
            a. 在 0:00 分执行关机命令:# at 0:00 回车开始编辑命令:at>poweroff 按 Ctrl+D 保存并退出。
                  查看单次任务列表:#atq 回车,删除单次任务:#atrm [atid] 按任务 ID 号删除任务。
            b. 每天零晨 2 点执行 back.sh 脚本
                   #crontab -e 进入编辑,选择一款编辑器开始编辑内容如:
                   #m h dom mon dow command (格式)
                    * 2 * * * back.sh (保存)
                   重启计划任务即可将周期任务列入进程:#sudo /etc/init.d/cron restart
                   每分钟执行,每一个参数用:*/1


9).Ubuntu关机重启命令简介

重启命令:

1、 reboot

2、 shutdown -r now立刻重启(root用户使用)

3、 shutdown -r 10过10分钟自动重启

4、 shutdown -r 20:35在时间为20:35时候重启

如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启。

关机命令:

1、 halt立刻关机

2、 poweroff立刻关机

3、 shutdown -h now立刻关机

4、 shutdown -h 1010分钟后自动关机