linux常用命令总结之一

信息技术领域综述与实操
本文概述了信息技术领域的核心内容,从操作系统到人工智能,涵盖了前端开发、后端开发、移动开发、游戏开发等多个细分技术领域。同时,文章介绍了如何在实际项目中应用这些技术,包括开发工具、测试方法、数据安全等实践知识。通过深入浅出的讲解,旨在帮助读者全面理解信息技术的现状与发展趋势。

********************************************************************************************************************************************************

           标准输出(0)、标准输出(1)、标准错误(2

 在普通用户的身份下:(su - redhat

输入命令: find /etc -name passwd

包含正确信息和错误信息

将正确信息和错误信息分开,产生标准输出和标准错误

输入命令:find /etc -name passwd 1> /test/stdout 2> /test/stderr

 

查看标准输出、标准错误的内容

cat stdout

cat stderr

******************************************************************************************************************************************************************

vim(编辑器)的四种模式:

    (1)普通模式:文本的查看

    (2)插入模式:(i I a A s S o O

     (3)命令模式:执行相关命令(在普通模式下键入:)

             w 保存

             q 退出

             wq 保存并退出

             wq! 保存并退出(对于重要文件)

              q! 强制退出 (对于重要文件,之前的)

     (4)视图模式

           1)对列操作:

         (ctrl+v)进入视图模式---->选中操作的列--->'I'(设置添加内容)--->Esc

           2)对行操作

          (shift+v)进入视图模式--->选中操作的行

           y 复制

           p 粘贴

           d 删除

           

       替换操作:

           %s///g 全局操作

              例:%s/nologin/hello/g

           ,  s///g   局部操作

             例  2,10s/\/nologin/hello/g   210行将/nologin 替换成hello

        vim的应用: 第三方插件

          步骤:

           1> (没有ctags命令的)

             使用yum仓库安装

                 yum install ctags -y

           2>cd /usr/include

           3>ctags -R

           4>vim /etc/vimrc

           5>进入配置文件之后,添加:

                set tags=/usr/include/tags

                set  tags+=/mnt/linux_kernel/tags

           6>以上步骤完成后,则完成配置

              vim -t NULL

              vim -t task     查看进程

              vim -t printf   查看printf函数

         ctrl+]    查看结构体中的结构体

         ctrl+o    退出

*******************************************************************************************************************************************************************

useradd 创建用户 (只有超级用户才能创建)

id + 用户名 验证用户是否存在

su - redhat 切换用户

root@localhost   root:代表用户 localhost:代表主机

hostname  查看主机名

hostnamectl  查看详细信息(包括系统型号、主机名等)

代表普通用户

代表超级用户

userdel -r 彻底删除用户(推荐使用)

userdel    (不彻底删除)

****************************************************************************************************************************************************************

添加新用户

步骤(本例中添加用户redhat1)

   1) vim /etc/passwd 

        添加内容:redhat1:x:1003:1003:redhat1:/home/redhat1:/bin/bash

   2)vim /etc/shadow

        添加内容:redhat1:!!:16809:0:99999:7:::

   3)vim /etc/group

        添加内容:redhat1:x:1003:redhat1

   4)在家目录下创建目录

        cd /home

        mkdir redhat1

        ll(显示详细信息可看到redhat1的拥有者和所属组都为root

   5)修改所属组和拥有者

          chown redhat1.redhat1 redhat1/

   6)此时用ll查看时redhat1拥有者和所属组都为redhat1

   7)使用命令su - redhat1 可切换到用户redhat1

效果如下所式:

[root@localhost home]# su - redhat1

-bash-4.2$ cd /

-bash-4.2$ ls

bin   dev  home  lib64  mnt  proc  run   srv  tags  tmp    usr

boot  etc  lib   media  opt  root  sbin  sys  test  tools  var

-bash-4.2$ 

     8)稍作修改:

       cd /home/redhat1

       cp /etc/skel/.* ./

     9)效果如下:

[root@localhost redhat1]# su - redhat1

Last login: Tue Jan 12 10:51:38 CST 2016 on pts/0

[redhat1@localhost ~]$ ls

[redhat1@localhost ~]$ cd /

[redhat1@localhost /]$ ls

bin   dev  home  lib64  mnt  proc  run   srv  tags  tmp    usr

boot  etc  lib   media  opt  root  sbin  sys  test  tools  var

[redhat1@localhost /]$ 

     10)到此为止,新用户redhat1创建完毕

*************************************************************************************************************************************************************

权限下放(用普通用户创建新用户)    sudo

visudo 配置信息(如果编辑错误时回报错) ===  vim /etc/sudoers (如果编辑出错,不会报错)

推荐使用 visudo

步骤:

    1)键入命令:visudo

        进入到了配置信息--->键入 : ---> 进入命令行 键入 99 ---> 在第99行添加

     redhat localhost=(root)  /usr/sbin/useradd , /usr/sbin/userdel

    2)如果你的普通用户redhat没有密码,首先使用root身份给redhat设置密码

        passwd redhat

    3)密码设置好以后,切换到reahat普通用户下

           sudo  su - redhat

    4) 使用useradd redhat2 添加新用户

           其拥有者和所属组都是redhat2

    5)到此为止,用普通用户添加新用户的任务已完成。

******************************************************************************************************************************************************

权限管理:

-rwxrwxrwx

1)第一个字符说明文件的类型:

     - 代表普通文件类型

     c 代表字符设备

     b 代表磁盘设备

     d 代表目录

     l 代表链接文件

     p 代表管道文件

     s 代表套接字

后面9个字符分为三组

2)第一组代表拥有者(u), 第二组代表所属组(g)。第三组代表其他组(o

3)其中每组三个字符分别为:rwx

      r 可读 ==4

      w 可写 ==2

      x 可执行 ==1

   chown  修改所属用户和组

   chmod  修改文件权限

   chgrp  修改组

    

 

    对于目录的权限:

     目录的可读可写 指对成员的删除和创建

     目录的可执行   指可以看成员

  如果想要修改目录和目录内文件的权限,使用-R参数

********************************************************************************************************************************************************

suid  针对可执行文件

   对于普通用户redhat来说,使用touch命令创建的文件,其拥有者为redhat,所属组为redhat;

   对于超级用户root来说,使用touch命令创建的文件,其拥有者为root,所属组也为root

   使用命令chmod u+s touch 使得普通用户用touch创建的文件其拥有者为root,而不是redhat,所属组仍是redhat

   1cd /bin    (调转到bin目录下)

   2chmod u+s touch

   3)切换到普通用户(su - redhat,使用touch创建的文件其拥有者就属于root,但所属组仍是redhat

*********************************************************************************************************************************************************

sgid 针对目录

  对于普通用户redhat,使用mkdir test1 创建目录后,在目录内创建文件,

touch file{1..2},

   切换用户到普通用户westos ,在目录test1内创建文件,touch file{3..4}

  则用户redhat 既可以删除自己创建的文件file1file2,也可删除普通用户westos创建的文件file3file4,对于普通用户westos也是如此,可使用命令chmod g+s test1 来避免这一问题。

    切换到root下,使用命令chmod g+s test1

     则普通用户redhat,只能删除自己创建的文件file1file2;

     对于普通用户westos,只能删除自己创建的文件file3file4,增加了安全性。

*****************************************************************************************************************************************************

关于密码的加密方式:

westos:$6$pExetOF0/yap.g9H$Pz9k0MvQbc8kKEcfIsdEKPcmmAebFAtD.4J6m1iT8rej5CPMTULm4pMBYcbyEOkzt7TeKaI1KWGUFCsdd0fu..:16809:0:99999:7:::

其中westos代表用户 代表加密方式为 SHA-512    pExetOF0/yap.g9H 称为混淆值(salt)    

代表加密方式为md5

代表加密方式为SHA-256

 

 

编写一个c程序产生加密后的字符串

vim  crypt_SHA_512.C

程序:

  #include<stdio.h>

  #include<stdlib.h>

  #include<unistd.h>

 #if 1

  6 

  7   int main(int argc,char **argv)

  8 {

  9  char *buf =NULL;

 10 

 11 //参数检测

 12 

 13     if(argc != 2){

 14         fprintf(stderr,"usage:/crypt passwd. \n");

 15         exit(1);

 16     }

 17     printf("the passwd is :%s\n",argv[1]);

 18     //加密

 19     buf = crypt((const char *)argv[1],"$6$awervill32");

 20     printf("the crypt passwd:%s\n",buf);

 21 

 22     return 0;

 23 

 24 }

 25 #endif

 编译程序:

   gcc crypt_SHA_512.c -o crypt -lcrypt

 在命令行输入:  ./crypt redhat

 执行结果:

the passwd is :redhat

the crypt passwd:$6$awervill32$eAQuuToIp5u/sBRMfVLn6DBJ2MmooRA/m/shfZ.zktRst4QXwhH8vNlK1t8XrTA8uALjp3tO6.hmyTw99s6Sz.

**********************************************************************************************************************************************************

设置文件的初始权限:

 umask

  目录权限:777-umask

  文件权限:777-111-umask (去除可执行权限)

******************************************************************************************************************************************************************************

小文件对磁盘的影响:

  1)dd命令指定一块空间

     dd if=/dev/zero of=/test/largefile bs=1M count=100

  2)格式化这块空间

       mkfs.ext4 /test/largrfile

  3)挂载:

     mount /test/largefile /tmp

     可用df查看

  4)编写脚本

      vim full_shell.sh

 

  1 #!/bin/bash

  2 

  3 for ((i=1; ;i++))

  4 do

        //判断上一次创建爱你是否成功,成功继续创建,否则退出

  5     if [ $? -eq 0 ]; then

  6        echo "this is test file_${i}" > /tmp/large_file${i}

  7    else

  8      exit 1

  9     fi

 10 done

 11 

 

  5)使用命令 du -sh /tmp 查看磁盘大小的消耗

     脚本执行之前看到磁盘的大小消耗为13K

  6)执行脚本:

      使用命令 bash full_bash.sh

      或者:chmod +x full_shell.sh

  7)执行完shell脚本后,再次使用命令 du -sh /tmp

     可看到磁盘消耗为29M

  申请的空间大小为100M,对于磁盘来说:分控制信息+存储信息,

由于小文件把控制信息消耗完了,导致存储空间还有剩余却无法存储。

   使用命令 df -iT /tmp 可看到inode数量已用完!!!!

 

   ll -i 列出文件inode编号

****************************************************************************************************************************************************

软链接和硬链接

    (1)软链接:软链接和原来的文件不是同一个文件(inode不同(ll -i 命令查看))

      对原文件的修改会影响链接文件,对链接文件的修改也会影响原文件

      如果原文件删除,链接失败,

      软链接可以对不存在的文件建立,只是无法使用,如果创建原文件,链接生效。

     cd /test

     touch file

     ln -s /test/file /test/file_l

     ll

     echo "hello,world" > ./file

     cat file

     显示结果: helloworld

     cat file_l

     显示结果:helloworld

     echo "hello"   > ./file_l

     cat file

     显示结果: hello

     cat file_l

     显示结果:hello

   2)硬链接:硬链接和原来是同一个文件 ,硬链接只能针对文件,不能针对目录建立

     相当于一块空间上有很多指针,只有将其全删除,文件才算删除。

      ln /test/file /test/file_l

       如果将文件file_l删除,然后重新创建时,链接不会生效!!!!

***************************************************************************************************************************************************

redhat 6 服务管理(串行)

[root@server3 init.d]# /etc/init.d/httpd start

Starting httpd:         [  ok  ]

[root@server3 init.d]# /etc/init.d/httpd stop

Stopping httpd:          [    ok   ]

[root@server3 init.d]#  /etc/init.d/httpd start

Starting httpd:        [  ok  ]

[root@server3 init.d]#   /etc/init.d/httpd reload

Reloading httpd:        [   ok   ]

[root@server3 init.d]#  /etc/init.d/httpd restart

Stopping httpd:        [    ok   ]

Starting httpd:        [   ok     ]

 

 

redhat 7 服务管理(并行)

[root@server init.d]# systemctl start|stop|restart|status|enable|disable vsftpd

 

 

I*****************************************************************************************************************************************************************

远程访问

   (1root@server .ssh]# ssh root@192.168.3.252

      第一次获取对方公钥的内容放在:

       /root/.ssh/know_hosts  (超级用户)

       /home/westos2/.ssh/know_hosts  (用自身的普通用户登陆时)

     如果ssh速度慢,则需要做解析 /etc/hosts

        例:

          eg:

              192.168.3.243 server3.examole.com

                    ip+地址

/etc/hostsdns服务器那个为标准?

[root@server .ssh]# vim /etc/nsswitch.conf

#hosts:  db files nisplus nis dns

hosts:   files dns

    (2ssh通过公私钥进行访问

[root@server .ssh]# ssh-keygen

默认生成路径在/root/.ssh/目录中:

id_rsa(私钥) id_rsa.pub(公钥)

非对称加密

把公钥发送给指定用户(需要进行密码验证)

[root@server .ssh]# ssh-copy-id -i id_rsa.pub root@192.168.3.155

如果成功,下次ssh登陆对方使用公私钥口令验证,无需通过密码验证

指定验证的私钥(无需输入口令)

[root@server .ssh]# ssh-add /root/.ssh/id_rsa

************************************************************************************************

远程拷贝文件

远程文件拷贝

(1)本地拷贝到远程主机

[root@localhost Desktop]# scp ./full_shell.sh root@192.168.3.252:/root/Desktop/

(2)远程主机的内容拷贝到本地(少见)

[root@server Desktop]# scp -r root@192.168.3.155:/root/Desktop/install ./

*如果是目录,添加-r参数

*************************************************************************************************************************************************************

压缩、解压、聚合

   (1)查看压缩包的分布

[root@server test]# vim linux-3.18-rc6.tar.xz

    (2)把压缩包解压到制定目录

[root@server test]# tar xvf linux-3.18-rc6.tar.xz -C ./

   

    (3)聚合文件(非压缩)

[root@server tar_file]# tar cvf tar.file.gz ./*

    (4)压缩方式:

-j, --bzip2

-z, --gzip

filter the archive through bzip2

filter the archive through gzip

[root@server test_etc]# tar cvfj tar.etc.bz2 ./etc/*

[root@server test_etc]# tar cvfz tar.etc.gz ./etc/*

 例如:

 

     cd /test/test1

     touch file{1..100}

     tar cvfj tar.file.bz2 ./*

     tar cvfz tar.file.gz  ./file*

     tar cvfz tar.file_ll.gz ./file*

结果显示:

-rw-r--r--. 1 root root 61440 Jan 12 20:06 tar.file

-rw-r--r--. 1 root root   456 Jan 12 20:04 tar.file.bz2

-rw-r--r--. 1 root root   896 Jan 12 20:04 tar.file.gz

-rw-r--r--. 1 root root 61440 Jan 12 20:06 tar.file_ll.gz

[root@localhost test1]# 

*******************************************************************************************************************************************

unzip 解压

zip压缩

例如:

  507  unzip -o -d ./test1 phpMyAdmin-4.5.2-all-languages.zip 

  508  cd test1

  509  ls

  510  touch file{1..50}

  511  zip -r my_file ./file*

  512  ls

  513  rm file* -fr

  514  ls

  515  unzip -o -d ./ my_file.zip 

  516  ls

  517  history

[root@localhost test1]# 

 

 

使用make命令进行安装

     cd /test

    1) 解压安装包

          tar xvf rarlinux-4.0.1.tar.gz  -C ./

 

    2)cd rar

    3)make (安装)

    4yum install   libstdc++.so.6  -y

rar压缩:

       rar file.rar ./file*

rar解压:

解压

[root@server test]# rar -o+ e file.rar

(遇到和解压文件相同的名称,直接覆盖)

**************************************************************************************************************

yum repo 指定路径:

[root@server3 init.d]# cd /etc/yum.repos.d/

文件必须以repo结尾:

[root@server3 yum.repos.d]# vim redhat.repo

[source]

name="install source"

baseurl=ftp://192.168.3.252/pub/rhel7.0

gpgcheck=0

设置完使用yum clean all进行更新:

yum clean all

 

 

设置本地镜像:

1)得到镜像文件,必须和自己的操作系统版本一致

  将镜像文件放在/tools

    mv rhel-server-7.0-x86_64-dvd.iso  /tools

2)iso文件挂载到指定目录下

    vim /etc/fstab

    添加: /tools/rhel-server-7.0-x86_64-dvd.iso   /var/ftp/pub iso9660 defaults,loop 0     0

3)vim /etc/yum.etc.repos.d/yum.repo

     编辑:

  1 [source]

  2 name=localserver

  3 baseurl=file:///var/ftp/pub

  4 gpgcheck=0

  5 enable=1

4)yum clean all

到此为止配置完毕!!!!!!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值