一、日常操作命令

**查看当前所在的工作目录:pwd

**查看当前系统的时间:date

**查看谁当前登陆了服务器:who

**查看登陆历史:last

**进入到用户根目录:cd(cd ~)

**返回到原来的目录:cd -

**当前目录:.

**补全命令:tab键

**返回上一级目录:cd ..

**清屏:ctrl+l

**停止当前进程:ctrl+c

**查看命令历史:ctrl+r

**保存并退出:shift+zz(相当于:wq,PS:在进入vi编辑状态中)

**显示行号::set nu(PS:在进入vi编辑状态中)

**取消行号::set nonu(PS:在进入vi编辑状态中)

**网卡网络配置详解:ifconfig

**测试网络的连通性:ping

**在网上下载资料:wget https://www.baidu.com

二、文件系统操作命令

**切换目录:cd /home

**查看根目录下的子节点(文件夹和文件)信息:ls /

**显示隐藏文件:ls -al (-a是显示隐藏文件   -l是以更详细的列表形式显示)

**创建文件夹:mkdir a(相对路径) mkdir /a(绝对路径) mkdir -p a/b/c(建立嵌套文件夹)

**删除文件夹:rmdir(删除空目录) rm -r a(可以把整个文件夹a及其中的所有子节点全部删除) 

       rm -rf a(强制删除a)

**修改文件夹名称:mv a b

**创建文件:touch 1.txt(创建一个空文件) 

      echo "i miss you" > 1.txt(将引号里的内容写入到文件1.txt中,覆盖效果) 

      echo "i love you" >> 1.txt(追加效果)

**查看文件:cat 1.txt

**复制文件:cp 1.txt /home(把文件1.txt复制到home文件夹)

         cp 1.txt /home/2.txt(把文件1.txt改名为2.txt后复制到home文件夹中)

**移动文件:mv 1.txt 2.txt 3.txt /home(移动三个文件夹到home目录中)

      mv *.txt /home(移动所有txt文件到home目录中)

**重命名文件:mv 1.txt 2.txt(把 1.txt 改为 2.txt)

       mv /home/1.txt /home/2.txt(绝对路径下把 1.txt 改为 2.txt)

**重命名目录:mv a/ b/(目录 a 改为 b)

**查看文件内容:cat install.log(一次性将文件内容全部输出到控制台上)

        more install.log(可以翻页查看,空格下翻页,b上翻页,q退出)

        less install.log(↑上翻一行,↓下翻一行,/keyword搜索关键字)

        tail -10 install.log(查看文件尾部十行的内容)

        tail -f install.log(跟踪文件唯一的inode号,即使文件改名依然跟踪原来inode表示的文件)

        tail -F install.log(按照文件名来跟踪)

        head -10 install.log(查看文件头部的十行)

**使用文本编辑器:vi /home/1.txt(在home中创建或编辑1.txt文件)

         (PS:先按i进入编辑模式,按Esc退回一般模式,按:wq+回车退出保存,:wq!表示强制保存)

**高级命令行文本处理器工具cut、sort、wc、sed 的基本用法:

    对于路径PATH,/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/apps/jdk1.7.0_45/bin:/root/bin

    echo $PATH | cut -d ':' -f 5(| 表示管道把PATH作为文本流输入到cut,-d表示分隔符以单引号中的冒号作为分隔)

                (-f 5 表示取第5个元素,-f 3,5 表示取第3和第5个元素,-f 3-5 表示取3到5的元素)

                (-f 3- 表示取3到最后一个的元素,-f 3-5,7表示取3到5和第7个元素)

------------------------------------------------------------------------------------------------------------------------------------------

    对于文件passwd

    cat /etc/passwd | sort  -t ':' -k 3 -u(-t表示以冒号为分隔符,-k 3 表示以第3个元素的id字典作为排序标准,-u表示去重)

                   (-k 3n 表示以第3各元素的id数字作为排序标准,3nr表示倒叙排列)

    cat test.txt | sort | uniq -c(对排序后的test文件进行去重,uniq只能对排序过的文件进行去重,-c表示频数)

------------------------------------------------------------------------------------------------------------------------------------------

    wc -l test.txt (统计文件的行数)

    wc -w test.txt (统计单词的个数,以空格为标准)

    wc -m test.txt(统计文件的字符数)

    wc -c test.txt (统计文件的字节数)

------------------------------------------------------------------------------------------------------------------------------------------

    sed '2d' test.txt(删除test文件的第2行)

    sed '2,$d' test.txt(删除文件的第2到最后一行)

    sed '/hello/' test.txt(删除文件中包含hello的行)

    sed 's/hello/world/g' test.txt(把文件中所有的hello都替换成world,s表示替换,g表示全局)

    sed -n 's/^hello/my/p' test.txt(把文件中每一行第一个hello替换成my并打印所替换的行,-n表示发生替换的行,p表示打印)

    sed 's/^hello/&you/' test.txt(在文件中的hello后追加you)

更多的sed命令不做详细记录,使用sed速查手册

------------------------------------------------------------------------------------------------------------------------------------------

    last -n 5 | awk '{print $1}'(表示获取最近五次登录的用户,输出他们的第一个元素,默认空格为分隔符)

    cat /etc/passwd | awk -F ':' '{print $1}'(表示文件以冒号为分隔符获取并打印每行的第一个元素) 

awk命令比cut命令的功能更加强大,更多的命令可以使用awk速查手册

------------------------------------------------------------------------------------------------------------------------------------------

**编辑器中的快捷键:

  a(在光标后一位开始插入)   

  A(在该行的最后插入) 

  I(在该行的最前面插入) 

  gg(直接跳到文件的首行) 

  G(直接跳到文件的末行) 

  dd(删除行,如果 5dd 则一次性删除光标后的5行) 

  yy(复制当前行,3yy 则复制当前行附近的3行) 

  p(粘贴) 

  v(进入字符选择模式,选择完成后,按y复制,按p粘贴) 

  ctrl+v(进入块选择模式,选择完成后,按y复制,按p粘贴) 

  shift+v(进入行选择模式,选择完成后,按y复制,按p粘贴) 

三、文件及权限的操作命令

**解读权限符含义:drwxr-xr-x(首字母为标识节点类型,d:文件夹   -:文件  l:链接)

         第一组rwx:表示这个文件的拥有者对它的权限:可读可写可执行

         第二组r-x:  表示这个文件的所属组对它的权限:可读,不可写,可执行

         第三组r-x:  表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行

**修改文件权限:chmod g-rw ha.dat(表示将ha.dat 对所属组的rw权限取消)

        chmod o-rw ha.dat(表示将ha.dat 对其他人的rw权限取消)  

        chmod u+x ha.dat(表示将ha.dat 对所属用户的权限增加x)

        chmod 777 ha.dat(使用数字形式修改权限)

        chmod -R 770 a(对于文件夹a中所有的文件进行权限修改)

        chown angela:angela a(修改文件所属组,只有root可修改)

 

**压缩文件:gzip 1.txt(只能对文件进行压缩,无法对目录或包进行压缩)  

 

**解压文件:gzip -d 1.txt.gz(对压缩包1.txt.gz进行解压)

 

**打包:tar -cvf a.tar a(把目录a打包成tar包a.tar)

 

**解包:tar -xvf a.tar(对tar包a.tar进行解包)

 

    PS:对于目录无法直接压缩,可以先打包,再进行压缩。

 

**一次性完成打包和压缩的操作:tar -zcvf a.tar.gz a(对目录a进行打包和压缩的操作)

 

**一次性完成解压和解包的操作:tar -zxvf a.tar.gz(对压缩包a.tar.gz进行解压和解包的操作)

 

               tar -zxvf a.tar.gz -C home(把a.tar.gz包解压到home目录中)

**安装软件:rpm -ivh 软件名

**强制卸载软件:rpm -e 软件名 --nodeps

**查看系统中安装rpm包:rpm -qa | grep mysql(查看所有mysql包)

四、基本的用户管理命令

**添加用户:useradd  angela(要修改密码才能登陆)

**修改密码:passwd angela(按提示输入密码即可)

**为用户配置权限:用root编辑 vi /etc/sudoers,在文件的如下位置,为hadoop添加一行即可

         root      ALL=(ALL)       ALL

         hadoop     ALL=(ALL)       ALL

         (PS:配置后hadoop用户就可以用sudo来执行系统级别的指令了,比如添加用户)

五、系统管理操作命令

**查看主机名:hostname

**修改主机名:hostname CentOS(重启后无效) 

       vi /etc/sysconfig/network(重启后永久生效)

**修改IP:ifconfig eth0 192.168.12.22(重启后无效) 

     vi /etc/sysconfig/network-scripts/ifcfg-eth0(重启后永久生效)

**增加IP地址:ip addr add 192.168.35.3 dev eth0(ifconfig看不出来,ip addr才看的出来)

**修改IP地址和主机名的映射关系:vi /etc/hosts

**修改网卡的IP地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0

**重启网络:service network restart

**挂载外部存储设备到文件系统中:mkdir /mnt/cdrom(创建一个目录,用来挂载)

                   mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom(-t表示挂载的文件类型,光盘ro,硬盘rw)

                (将设备/dev/cdrom挂载到挂载点/mnt/cdrom中)

**解挂载:umount /mnt/cdrom

**统计文件或文件夹的大小:du -sh /mnt/cdrom/Packages(查看Packages的大小)

**查看磁盘的空间:df -h

**关机:halt

**重启:reboot

**配置主机之间的ssh免密登陆:假如A要登陆B,在A上操作输入命令ssh-keygen生成密钥对,输入ssh-copy-id B

                将A的公钥拷贝并追加到授权列表文件authorized_keys中。

               PS:如果是minimal模式下输入 yum -y install openssh-clients

                  即可解决-bash: ssh: command not found的问题。

               PS:ssh mini2 mkdir /root/concent;在其他机器上创建目录

**后台服务管理:service network status(查看指定服务的状态)

        service network stop(停止指定服务)

        service network start(启动指定服务)

        service network restart(重启指定服务)

        service --status -all (查看系统中所有的后台服务)

**设置后台服务的自启配置:chkconfig(查看所有服务的自启配置)

             chkconfig iptables off(关掉指定服务的自动启动)

             chkconfig iptables on(开启指定服务的自动启动)

**查看系统启动级别的管理:vi /etc/inittab(系统默认级别是3)

 六、杂记

**防火墙iptables操作:service iptables status(查看防火墙状态)

            service iptables start(开启防火墙)

            service iptables stop(关闭防火墙)

            chkconfig iptables --list(查看是否开机启动)

            chkconfig iptables on(设置开机启动)

            chkconfig iptables off(设置开机不启动)

**minimal最小化安装:eth0默认没有自启用,修改ifcfg-eth0配置文件中的onboot=yes

**解决克隆后eth0不见的问题:直接修改ifcfg-eth0配置文件,删掉其中的UUID和HWADDR,配置静态地址。

              然后rm -rf  /etc/udev/rules.d/70-persistent-net.rules或者修改这个文件,

              将其中的eth1的物理地址复制给eth0然后删掉eth1的配置,最后reboot。

**修改静态地址后发现无法ping外网:需要设置网关,route add default gw 192.168.35.2,添加nameserver,

                 vi /etc/resolv.conf,nameserver 192.168.33.1

                 (PS:无法永久解决,重启网络后消失)

**修改静态地址后发现无法ping外网:使用vi /etc/sysconfig/network-scripts/ifcfg-eth0为eth0网卡添加DNS信息,

                 DNS1=192.168.35.2,DNS2=192.168.35.254,

                 配置后无需再配置/etc/resolv.conf文件,永久生效。

                 (PS:网络服务重启以后会根据/etc/sysconfig/network-scripts/ifcfg-eth0

                 来重载配置,如果ifcfg-eth0没有配置DNS,那么resolv.conf会被冲掉,

                 重新变成空值。)

**动态监控文件大小:watch -d ls -ls(与 ll 命令相似)

**上传文件到服务器:在Secure_CRT下使用SFTP工具。(或者 yum -y install lrzsz + rz 安装传输命令)

          第一步:使用 alt+p 调出SFTP界面,

          第二步:使用 put+文件目录 命令上传。(如果不使用cd指定目录,则上传到当前用户的主目录)

 

          PS:如果先输入命令cd /home,再输入命令 put+文件目录 ,则文件被上传到服务器的home目录中。

 

          PS:如果需要指定下载到本地目录时,输入lcd d:/ 命令,再输入 get+文件目录,则文件被下到本地磁盘d中。

**制作yum源:

------------------------------------------方法一单台配置--------------------------------------------------

      第一步:mkdir /mnt/cdrom;mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom(挂载)

      第二步:cd /etc/yum.repos.d

      第三步:rename .repo .repo.bak *

      第四步:cp CentOS-Media.repo.bak CentOS-mini.repo

      第五步:vi CentOS-mini.repo

          baseurl=file:///media/CentOS/

                file:///media/cdrom/

                file:///media/cdrecorder/

          改为 baseurl=file:///mnt/cdrom/

          把 gpgcheck=1 改为 gpgcheck=0

          把 enabled=0 改为 enabled=1
      第六步:输入vi /etc/fstab,添加 /dev/cdrom    /mnt/cdrom    iso9660 defaults  0 0

          PS:这样做的目的是为了开机自动默认加载yum源,避免每次重启后手动mount

      第七步:yum repolist(查看yum源)

------------------------------------------方法二多台网络版配置--------------------------------------------------

概述:在局域网内部配置一台节点(server-base)的本地文件系统yum仓库,然后将其发布到web服务器中,
其他节点就可以通过http://server-base/pagekege/path/

制作流程:先挑选一台机器mini,挂载一个系统光盘到本地目录/mnt/cdrom,然后启动一个httpd服务器,
     将/mnt/cdrom 软连接到httpd服务器的/var/www/html目录中(cd /var/www/html; ln -s /mnt/cdrom ./centos)
     然后通过网页访问测试一下:http://mini/centos 会看到光盘的目录内容。

至此:网络版yum私有仓库已经建立完毕,剩下就是去各台yum的客户端配置这个 http 地址到repo配置文件中。

      第一步:mkdir /mnt/cdrom;mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom;

      第二步:输入 cd /var/www/html,打开 httpd 的页面目录(可以在其中写HTML文件并通过浏览器访问)

         第三步:ln -s /mnt/cdrom ./centos,创建从当前目录下的软链接centos到/mnt/cdrom

          (通过浏览器访问 mini/centos 查看光盘的目录内容)

      第四步:cd /etc/yum.repos.d;rename .repo .repo.bak *;cp CentOS-Media.repo.bak CentOS-mini.repo;

      第五步:vi CentOS-mini.repo(修改内部配置gpgcheck为0,enabled为1,name为CentOS-mini,

          把 baseurl=........改为 baseurl=http://mini/centos)

          PS:修改Windows内部的hosts文件是Windows下的浏览器可以识别mini。

      第六步:在其他服务器上cd /etc/yum.repos.d;vi CentOS-Media.repo;

          修改配置如baseurl为http://mini/centos、name....、gpgcheck...、enabled...

      第七步:yum repolist(查看yum源)

      PS:总的思路就是将yum源投射到httpd服务器上,其他服务器可以通过局域网挂载。