Ubuntu 服务器管理员手记(一):常用 Linux 命令

本文针对Ubuntu,绝大部分Linux命令是通用的。

命令行首符号“#”表示使用root权限,“$”表示一般用户权限;与通常Linux终端表示方法相同。

Linux命令参数或需依实际情况输入的变量,用首字母大写的单词拼写,能顾名思义的不再另行解释,如FileName。

 

文件管理

    查看文件属性(list long)

    $ ls -l

    $ ll

    每个文件一行,依次列出文件权限、所有者、所在组、文件大小、创建时间和文件名。

    文件权限是10位标识符,依次包含:是否目录(1)位、所有者权限(3位)、同组用户权限(3位)、其他用户权限(3位)

    第1位如果是“d”表示目录,如果是“-”表示常规文件。

    3位权限标识符依次是r、w、x,分别表示允许读、写、执行;如果某位是“-”表示禁止相应操作。

    更改文件所有者(change owner)

    # chown [-R] UserName:GroupName FileName

    即change owner,

    选项-R可用于更改目录的所有者,表示递归(recursive)更改子目录及包含文件的所有者。

    更改文件权限(change mode)

    $ chmod [-R] Who[+/-]Permition FileName

    选项-R可用于更改目录权限,表示递归(recursive)更改子目录及包含文件的权限。

    Who用如下字母组合表达:u=文件所有者(user),g=同组用户(group),o=其他用户(others)。

    Permition则由字母r、w、x组成。

    $ chmod DigitalExpression FileName

    DigitalExpression是用三个并排数字依次表达所有者、同组用户和其他用户的权限,每个数字按r=4、w=2、x=1将相应权限换算求和,如7=rwx、5=r-x,755=rwxr-xr-x。

    文件查找

    $ find [-L] Path FilterType FilterValue...

    使用选项-L则查找时包含符号链接指向位置。

    FilterType包括:-name 按文件名查找

    FilterValue是FilterType对应的值,如要查找的文件名等。

    文件解压缩

    在保存解压后文件的目录下,执行:

    $ tar -zxvf PackedFile

    则将目标压缩文件解压缩至当前目录。

    执行文件

    定位到可执行文件即可运行,比如直接给出文件完整路径:

    $ /usr/bin/java

    注意例外情况,当可执行文件在当前目录时,需使用“./”前缀显式指明文件位置为当前目录:

    basicthinker@ubuntu:/usr/bin$ ./java

    因为如果不添加“./”,会默认使用 PATH 环境变量指明的文件位置:

    basicthinker@ubuntu:~$ java

    系统管理

      查看端口帧听

      # lsof -i :25

      该命令是“list open file”的缩写,因为 Linux 把网络端口等均视为文件,所以有此用途并不奇怪。最后端口的完整写法可以是 tcp@localhost:25,注意和一般表示文件路径区分,tcp不是用户而是指协议 。

      更改环境变量

      通过编辑 /etc/environment 文件等方法固然可行,但是如下方式最为推荐:

      # cd /etc/profile.d/

      # vim FileName.sh

      如果是新建文件,FileName可以任意设定,以添加环境变量 JAVA_HOME 为例,可以新建文件 java.sh 并写入如下内容:

      export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.22

      当不再需要该环境变量时,可以直接删除 java.sh 文件。这样管理,更加方便安全,背后的原由在于 /etc/profile 文件中有读取 profile.d 目录并执行其中 *.sh 文件的脚本。

      远程登录

      $ ssh UserName@HostAddress

      远程拷贝

      $ scp Source Destination

      其中 Source 或 Destination 可为远程地址,格式形如:UserName@HostAddress:Path

      查看安装包

      $ dpkg -l *PackageName*

      查看包的安装状态,包名中可使用通配符。列出结果的前三各字母表示安装状态:

      第一列标识期望值,包括:
        u 状态未知,这意味着软件包未安装,并且用户也未发出安装请求。
        i 用户请求安装软件包。
        r 用户请求卸载软件包。
        p 用户请求清除软件包。
        h 用户请求保持软件包版本锁定。
      第二列标识软件包的当前状态,包括:
        n 软件包未安装。
        i 软件包安装并完成配置。
        c 软件包以前安装过,现在删除了,但是它的配置文件还留在系统中。
        u 软件包被解包,但还未配置。
        f 试图配置软件包,但是失败了。
        h 软件包安装,但是但是没有成功。
      第三列标识错误状态,包括:
        空表示没有问题
        h 软件包被强制保持,因为有其它软件包依赖需求,无法升级。
        r 软件包被破坏,可能需要重新安装才能正常使用(包括删除)。
        x 软包件被破坏,并且被强制保持。

       

      用户管理

        创建用户

        # adduser UserName

        自动添加同名用户组(group)

        将用户加入特定组

        # usermod -G GroupName1,GroupName2 UserName

        其中用户和组均已存在。

        将用户从组中删除

        # gpasswd -d UserName GroupName

        实际是修改文件 /etc/group,通过 gpasswd 命令操作更安全,比 usermod 命令更简单直接。

        查看用户属于哪些组

        $ groups UserName

        授予用户root权限

        在用户使用sudo命令前,需确保该用户属于 sudoers 组,否则无法使用 sudo 授权。

        打开sudoers文件:

        # vim /etc/sudoers

        在“root”行后面添加如下行:

        %GroupName ALL=(ALL) ALL

        则名为 GroupName 的组中所有用户均可使用 sudo 命令执行 root 权限。

         

        另一种办法就是将现有用户加入到已经准许授予 root 权限的组中。假设 /etc/sudoers 文件中已经包含如下行:

        %admin ALL=(ALL) ALL

        说明 admin 组准许授予 root 权限。于是,可将当前用户加入到 admin 组中:

        # adduser UserName admin

         

        • 1
          点赞
        • 1
          收藏
          觉得还不错? 一键收藏
        • 0
          评论
        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值