linux下常见命令 - Go语言中文社区

linux下常见命令


1、一些常用快捷键

   2、

2、Shell 常用通配符:

3、用户及文件权限管理

3.1 添加root用户及密码

             sudo passwd 或者sudo passwd root

             Password:你当前的密码

             Enter new UNIX password:这个是root的密码

             Retype new UNIX password:重复root的密码

3.2 添加普通用户

             sudo adduser name

这个命令首先创建一个用户user,然后再创建一个和用户同名的组user,接着将该用户添加到该组,同时也会默认为新用户创建 home目录

3.3 用户组

           在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个

3.3.1 groups命令

       使用方式:groups username

         结果说明:其中冒号之前表示用户,后面表示该用户所属的用户组。每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组(差不多就相当于家长的意思,或者说是老总)。默认情况下在sudo用户组里的可以使用sudo命令获得root权限

3.3.2 查看/etc/group文件

     使用方式  cat /etc/group | sort

       这里 cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort 表示将读取的文本进行一个字典排序再输出

       /etc/group 的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:

        group_name:password:GID:user_list
       默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入sudo用户组从而获取 root 权限

         使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令

        格式  sudo usermod -G sudo lilei

3.4 删除用户

          添加用户命令  adduser

          删除用户命令  deluser

4、linux文件权限

4.1 查看文件权限

              使用    ls -l    得到较长格式列出文件

           

           

4.1.1  文件类型、文件权限、链接数

          关于文件类型,这里有一点你必需时刻牢记Linux 里面一切皆文件,正因为这一点才有了设备文件( /dev 目录下有各种设备文件,大都跟具体的硬件设备相关)

         读权限,表示你可以使用 cat <file name> 之类的命令来读取某个文件的内容;写权限,表示你可以编辑和修改某个文件; 执行权限,通常指可以运行的二进制程序文件或者脚本文件,如同 Windows 上的'exe' 后缀的文件,不过 Linux 上不是通过文件后缀名来区分文件的类型。

          你需要注意的一点是,一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息

          所有者权限,这一点相信你应该明白了,至于所属用户组权限,是指你所在的用户组中的所有其它用户对于该文件的权限

           链接到该文件所在的 inode 结点的文件名数目

          以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上-lh 参数来更直观的查看文件的大小

           明白了文件权限的一些概念,我们顺带补充一下关于 ls 命令的一些其它常用的用法

          显示除了 '.'(当前目录),'..' 上一级目录之外的所有包含隐藏文件(Linux 下以 '.' 开头的文件为隐藏文件) ls -A

          当然,你可以同时使用 '-A' 和 '-l' 参数

         查看某一个目录的完整属性,而不是显示目录里面的文件属性:

4.2 变更文件所有者

          sudo chown username filename

4.3 修改文件权限

        如果你有一个自己的文件不想被其他用户读、写、执行,那么就需要对文件的权限做修改,这里有两种方式:

       方式一:二进制数字表示

        每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 "rwx",也就是一个 '7' ,所以如果我要将文件“iphone6”的权限改为只有我自己可以用那么就这样:    chmod 700 iphone6

         方式二:加减赋值操作

        完成上述相同的效果,你可以:  chmod go-rw iphone          'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加
和去掉相应的权限

5、Linux 目录结构及文件基本操作

            FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

           FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等

           第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如/var/log 放置系统登录文件、/usr/share 放置共享数据等等。

FHS是根据以往无数 Linux 用户和开发者的经验总结出来的,并且会维持更新,FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动(注意,不是不能,学习过程中,不要怕这些),将目录定义为四种交互作用的形态,如下表所示:

6、目录路径

         使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录, .. 表示上一级目录(**注意,还记得我们上一节介绍过的,以. 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录, ~ 通常表示当前用户的"home"目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。

         使用 pwd 获取当前路径:

         绝对路径关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin ,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。

         相对路径,相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如:usr/local/bin (这里假设你当前目录为根目录)

7、Linux 文件的基本操作

7.1 新建

          新建空白文件,使用 touch 命令创建空白文件,关于 touch 命令,其主要是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个为指定文件名的空白文件(不会覆盖已有同名件),当然你也可以同时指定该文件的时间戳

          新建目录,使用 mkdir (make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在有时候安装软件,配置安装路径时非常有用)

          mkdir -p father/son/grandson

7.2 复制

           复制文件,使用 cp (copy)命令复制一个文件或目录到指定目录。

           cp test father/son/grandson          将之前创建的"test"文件复制到"/home/shiyanlou/father/son/grandson"目录中:

          如果直接使用 cp 命令,复制一个目录的话,会出现如下错误:

          

          要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制,就是说有点“株连九族”的意思:

           cp -r father family

7.3 删除

           删除文件使用 rm (remove files or directories)命令,删除一个文件或目录:

          有时候你会遇到想要删除一些为只读权限的文件,直接使用 rm 删除会显示一个提示,如下:

          

          你如果想忽略这提示,直接删除文件,可以使用 -f 参数强制删除:       rm -f test

          删除目录跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参数:

7.4  移动文件与文件重命名

        移动文件,使用 mv (move or rename files)命令,移动文件(剪切)。将文件"file1"移动到"Documents"目录 mv 源目录文件 目的目录

        mv file1 Documents

        重命名文件,将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名 :mv file1 myfile

7.5 查看文件

           使用 cat , tac 和 nl 命令查看文件

           这两个命令都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示, tac 倒序显示

            标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误 可以加上 -n 参数显示行号:

          使用 more 和 less 命令分页查看文件

          如果说上面的 cat 是用来快速查看一个文件内容的,那么这个 more 和less 就是天生用来"阅读"一个文件的内容的,比如说"man"手册内部就是使用的 less 来显示内容。

          使用 head 和 tail 命令查看文件

        这两个命令那些性子比较急的人应该会比较喜欢,因为它们一个是只查看的头几行(默认为10行,不足10行则显示全部)和尾几行甚至更直接的只看一行, 加上 -n 参数,后面紧跟行数,关于 tail 命令,不得不提的还有它一个很牛的参数 -f ,这个参数可以实现不停地读取某个文件的内容并显示。这可让我们动态查看日志起到实时监视的作用,

7.6 查看文件类型

             前面我提到过,在 Linux 下面文件的类型不是根据文件后缀来判断的,我们通常使用 file 命令可以查看文件的类型:

 file /bin/ls

7.7 编辑文件

                  在 Linux 下面编辑文件通常我们会直接使用专门的命令行编辑器比如(emacs,vim,nano)

8、软件安装

           通常 Linux 上的软件安装主要有三种方式:在线安装、从磁盘安装deb软件包、从二进制软件包安装、从源代码编译安装

8.1    在线安装

            sudo apt-get install softname

8.2 apt包管理工具介绍

            APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程, sudo apt-get install w3m

         APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。这个包管理器包含以 apt- 开头的的多个工具,如 apt-get、 apt-cache、apt-cdrom 等,在Debian系列的发行版中使用

         当你在执行安装操作时,首先 apt-get 工具会在本地的一个数据库中搜索关于 w3m 软件的相关信息,并根据这些信息在相关的服务器上下载软件安装,这里大家可能会一个疑问:既然是在线安装软件,为啥会在本地的数据库中搜索?要解释这个问题就得提到几个名词了:软件源镜像服务器、软件源

          我们需要定期从服务器上下载一个软件包列表,使用 sudo apt-get  update 命令来保持本地的软件包列表是最新的(有时你也需要手动执行这个操作,比如更换了软件源),而这个表里会有软件依赖信息的记录,对于软件依赖,我举个例子:我们安装 w3m 软件的时候,而这个软件需要 libgc1c2 这个软件包才能正常工作,这个时候apt-get 在安装软件的时候会一

8.3  apt-get

          apt-get 使用各用于处理 apt 包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些 apt-get 包含的常用的一些工具

 

8.4 安装软件包

         关于安装,如前面演示的一样你只需要执行 apt-get install <软件包名> 即可,除了这一点,你还应该掌握的是如何重新安装软件包

         很多时候我们需要重新安装一个软件包,比如你的系统被破坏,或者一些错误的配置导致软件无法正常工作

         你可以使用如下方式重新安装:   sudo apt-get --reinstall install w3m

         另一个你需要掌握的是,如何在不知道软件包完整名的时候进行安装。通常我们是使用 Tab 键补全软件包名,后面会介绍更好的方法来搜索软件包。有时候你需要同时安装多个软件包,你还可以使用正则表达式匹配软件包名进行批量安装

8.5 软件升级

   

8.6  卸载软件

          如果你现在觉得 w3m 这个软件不合自己的胃口,或者是找到了更好的,你需要卸载它,那么简单!同样是一个命令加回车 sudo
apt-get remove w3m ,系统会有一个确认的操作,之后这个软件便“滚蛋了”。或者,你可以执行

         

8.7  软件搜索

         当自己刚知道了一个软件,想下载使用,需要确认软件仓库里面有没有,就需要用到搜索功能了,命令如下:

                         sudo apt-cache search softname1 softname2 softname3

        apt-cache 命令则是针对本地数据进行相关操作的工具, search 顾名思义在本地的数据库中寻找有关 softname1 softname2 …… 相
关软件的信息

8.8  使用 dpkg 从本地磁盘安装

8.8.1  deb 软件包

           dpkg 是 Debian 软件包管理器的基础,它被伊恩·默多克创建于1993 年。dpkg 与 RPM 十分相似,同样被用于安装、卸载和供给和 .deb 软件包相关的信息。

            dpkg 本身是一个底层的工具。上层的工具,像是 APT,被用于从远程获取软件包以及处理复杂的软件包关系。"dpkg"是"Debian Package"的简写

            我们经常可以在网络上简单以 deb 形式打包的软件包,就需要使用dpkg 命令来安装

            dpkg 常用参数介绍:
                                            -i 安装指定deb包
                                            -R 后面加上目录名,用于安装该目录下的所有deb安装包
                                            -r remove,移除某个已安装的软件包
                                            -I 显示 deb 包文件的信息
                                            -s 显示已安装软件的信息
                                            -S 搜索已安装的软件包
                                            -L 显示已安装软件包的目录信息

8.8.2  使用dpkg安装deb软件包

               我们先使用 apt-get 加上 -d 参数只下载不安装,下载emacs编辑器的deb包,下载完成后,我们可以查看/var/cache/apt/archives/目录

             然后我们将第一个 deb 拷贝到home目录下,并使用 dpkg 安装

             cp /var/cache/apt/archives/emacs24_24.3+1-4ubuntu1_amd64.deb ~

            安装之前参看deb包的信息$ sudo dpkg -I emacs24_24.3+1-4ubuntu1_amd64.deb

            如你所见,这个包还额外依赖了一些软件包,这意味着,如果主机目前没有这些被依赖的软件包,直接使用dpkg安装可能会存在一些问题,因为 dpkg 并不能为你解决依赖关系

            使用dpkg安装$ sudo dpkg -i emacs24_24.3+1-4ubuntu1_amd64.deb

            跟前面预料的一样,这里你可能出现了一些错误:

                 

                我们将如何解决这个错误了,这就要用到 apt-get 了,使用它的 -f参数了,修复依赖关系的安装sudo apt-get -f install

8.8.3  查看已安装软件包的安装目录

         如果你依然在纠结到底linux将软件安装到了什么地方,那么很幸运你将可以通过 dpkg 找到答案

        使用 dpkg -L 查看 deb 包目录信息      sudo dpkg -L emacs

9、linux额外命令

9.1 ps命令

        ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

         

             

                    

 

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/guosuling/article/details/85757269
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 02:36:11
  • 阅读 ( 1223 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢