玩转Linux的必备技能–进阶篇

如下:

1、启用root用户

某些公有云服务商不会直接提供给你root账户,而是给你密钥或者是其他用户,这种情况下就需要我们手动开启root账户并设置密码登录。

  • 先用云服务商提供给你的密钥文件或者是其他用户登录上去
  • 然后执行sudo su获得root权限
  • 执行vi /etc/ssh/sshd_config找到PermitRootLoginPasswordAuthentication如果这两项前面有注释则去掉注释并将后面改为yes
  • 文件保存退出后执行passwd root按照提示进行root账户的密码设置(输入的密码不会显示)
  • 最后执行systemctl restart sshd重启ssh服务,然后就可以用root用户登录了

2、了解Linux的目录结构

  • / :根目录,每一个文件和目录从根目录开始,只有root用户具有该目录下的写权限。
  • /bin : 用户二进制文件包含二进制可执行文件。在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。
  • /boot :主要放置开关机会使用的文件,包括Linux 内核文件以及开关机菜单与开机所需要的配置文件。
  • /dev :在Linux 系统中所有的设备与接口设备都是以文件的形式存放在这个目录中。只要访问这个目录下的某个文件就相当于访问某个设备。
  • /etc :所有系统管理所需要的配置文件和子目录。比如设置运行级别。
  • /home :存放普通用户的主目录,在Linux 系统中每个用户都有一个独立的目录,一般该目录名以账号用户名命名。
  • /lib :系统开机所需要的最基本的动态链接共享库,功能类似于Windows 中的DLL 文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost + found :这个目录一般是空的,当用户非法关机后会保存一些文件。
  • /misc :挂载外部设备
  • /media :Linux 系统会自动识别一些设备,例如U 盘、光驱等,当识别后Linux 会把识别的设备挂在这个目录下。
  • /mnt :为了让用户临时挂载别的文件系统,我们可以将光驱挂在在该目录中。
  • /opt :给主机安装额外软件所摆放的目录。默认情况下是空的。比如我们可以将数据库安装在这个目录下。
  • /proc :这个目录上是一个虚拟的目录,它是系统内存的映射,我们通常可以访问这个目录来获取系统信息。
  • /root :该目录为系统管理员的主目录。
  • /sbin :Super Bin的意思, 系统二进制文件,就像/bin,/sbin同样也包含二进制可执行文件。但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。
  • /selinux :这个目录是Redhet 与CentOS 所特有的目录,是一个安全机制,类似于防火墙。
  • /srv :service 的缩写,该目录存放一些服务启动之后需要提取的数据。
  • /sys :该目录下安装了2.6 内核中新出现的一个文件系统sysfs。
  • /tmp :该目录用来存放一些临时文件。
  • /usr :很重要的一个目录,用户的很多应用程序和文件都放在这个目录下。类似于Windows 中的program files 目录。
  • /var :这个目录存放着在不断被扩充的文件。我们习惯将那些经常需要被修改的文件放在该目录下,比如一些日志文件等。

3、了解文件权限
作为小白的你往往不会自己去写shell脚本,经常去网上找别人写好的相同功能的脚本,这时你下载下来准备执行的时候发现无法执行。

  • 这是为什么呢?这是因为改为鉴不具备执行权限所以无法运行。
  • 这个时候我们就需要简单的了解一下文件的权限
    可能权限就像下面这样:
-     rw-    r--    r--

那么如何更改文件的权限呢?
这个时候我们就需要chmod命令了
语法
chmod [-cfvR] [–help] [–version] mode file…
参数说明
mode : 权限设定字串,格式如下 :

[ugoa…][[+-=][rwxX]…][,…]
其中:

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

  • 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
    其他参数说明:

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
实例:
将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt

将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt

将 ex1.py 设定为只有该文件拥有者可以执行 :
chmod u+x ex1.py

将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *

此外chmod也可以用数字来表示权限如 :
chmod 777 file

语法为:
chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
chmod a=rwx file和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
若用chmod 4755 filename可使此程序具有root的权限

好了说了那么多,直接一点吧!!!
我们简单一点比如我们的操作对象为 a.sh
想要赋予执行权限直接可以用chmod +x a.sh即可
然后就可以快乐的用./a.sh跑脚本了。