只要开发系统,就绕不开使用Linux服务器 ,而Linux除了使用BT面板进行初级管理,很多稍微高级点的管理,还是需要命令行进行的。这里总结在不需要精通的情况下,掌握常见命令和环境的相关配置。
(1)登录以及目录的认识
拿到远程服务器的root账号密码之后,使用远程连接工具,我使用了xshell 链接,链接工具很多,我只是用这个比较多,输入账号密码。即可登录。
一般默认情况下,我们都是采用账号密码登录的模式(独立开发者基本都是直接控制服务器的权限,主打效率,密码有特殊字符并随机12位以上,基本就不存在被爆破的可能性了)
熟悉Linux的基础目录结构(这样方便我们知道大致的软件安装地方和查找)
各个目录的主要作用:
/ (根目录):这是文件系统的最顶层目录。
/bin:存放基本的二进制可执行文件,如ls、cat、chmod等。
/sbin:存放系统二进制文件,通常是系统管理员使用的管理工具。
/etc:存放系统配置文件和启动脚本。
/dev:包含设备文件,如硬盘、键盘、鼠标等。
/proc:虚拟文件系统,提供关于运行中的进程和内核参数的信息。
/sys:包含有关系统硬件和设备的信息,是一个虚拟文件系统。
/tmp:存放临时文件,通常在系统重启时会被清空。
/home:用户的主目录,每个用户都有自己的子目录。
/root:系统管理员(root)的主目录。
/usr:存放用户相关的应用程序和文件。
/var:存放经常变化的文件,如日志文件。
/opt:存放第三方应用程序。
/lib:存放系统库文件,这些是程序运行时需要的共享代码。
/mnt:用于临时挂载文件系统。
/media:用于挂载可移动媒体设备。
/boot:包含启动加载程序和内核文件。
/selinux:存放安全相关的策略和配置文件。
/srv:存放系统服务的数据。
/lost+found:在某些文件系统上,用于存放恢复的文件。
/www 一般用来搭建网站的
(2)特殊符号与基础概念
~ 表示登录者的用户目录。Linux给每个登陆者都分配了一个基础的目录。类似win里面的C:\Users\XXX概念,这样,每个用户都有一个自己的基础配置目录,比如使用免登录时候需要用到的 cd ~/.ssh/ 这表示该用户登录的ssh目录。一般这种加密的ssh链接密码,默认都是读取用户的基础目录。这个目录也是基本所有软件的默认配置目录,除非特意修改,否则都是安装在该目录下。
理解管道概念,允许将前一个命令的输出当做后一个命令执行的输入,和开发里面的编程逻辑类似,在一些复合操作的时候经常需要用到。比如:检查某个文本里面是否有我要检查的关键词: cat a.txt |grep "hah" 会将前面的命令输出组合到后面的查找里面,该命令经常用来检查文本里面是否有复合要求的字符串出现。
权限概念: 不经常接触Linux的人对权限概念非常会感觉到非常麻烦。而这也是Linux服务器安全性高的原因。如果一个目录文件全部是允许读写的就是777。777权限的具体含义:第一个数字7代表文件所有者的权限。7表示读(4)+写(2)+执行(1)=7。第二个数字7代表与文件所有者同组的用户权限。同样,7表示读(4)+写(2)+执行(1)=7。第三个数字7代表其他用户(即不属于文件所有者组的用户)的权限。7表示读(4)+写(2)+执行(1)=7。
因此,权限777意味着:文件所有者可以读取、写入和执行文件。与文件所有者同组的用户可以读取、写入和执行文件。其他所有用户都可以读取、写入和执行文件。不同的权限设置不同的数字即可。 脚本的执行。默认情况下 直接使用sh XX.sh 既可以开始写脚本。下面是我一个写的用来自动拉取服务器上git代码的脚本。
#!/bin/bashdatetime=$(date +%Y-%m-%d\ %H:%M:%S)TARGET_DIR="gitupdate"if [ ! -d "$TARGET_DIR" ]; thenecho "Error: Directory '$TARGET_DIR' does not exist."exit 1fi# Get a list of files in the directoryFILES=$(ls -1 "$TARGET_DIR")# Loop through each filefor FILE in $FILES; doif [ -f "$TARGET_DIR/$FILE" ]; thencontent=$(cat "$TARGET_DIR/$FILE")cd "$content"str=$(git pull | grep -e 'Already up to date.')pwd=`pwd`echo "now directory:$pwd"if [ "$str" != "" ]; thenecho "$datetime $project 's warehouse is up to date"elseecho "$datetime $project 's git pull running..."ficd "-"rm "$TARGET_DIR/$FILE"fidone
(3)基础的命令使用
这里需要对Linux的结构目录有个基础了解 win是C盘 D盘,Linux全部是结构目录。一般我们搭建网站是/www(大部分情况下,我们实现的是web项目)。
查看当前系统的属性,Linux版本比较多多,有debian ubuntu centOS三个比较大的版本,不同版本命令稍有不同。我用centOS居多,所以登录服务器的第一件事情,是确认自己的Linux服务器版本。Hostnamectl 输入这个命令就可以查看服务器。这个流程和我们查看自己win服务器上属性一样,知道内核版本号,32位/还是64位。这样才能找到相关的命令运行
命令cd 切换到任意目录 最常用 登录服务器后,我们需要查看我们的项目相关列表。cd – 会回到上一层自己操作的目录,这个命令很有用,特别是在脚本里面切目录执行了某个目录,需要切回上一次切回来的目录的时候,需要用到。
Ls (ll -a) 查看当前目录的文件,如果需要查看 .开头的隐形文件,需要用到查看全部文件 ll -a 。特别是需要编辑类似 .user.ini文件的时候,需要能查看到,否则默认是看不到的。
Vi 就是打开我们的记事本进行编辑效果一样。 编辑完成后 :x 就是保存当前文件,取消保存:q 如果使用vim 可以看到颜色,不过vi是都带了的命令,而且一般情况下,我们都不会再服务器上用vi来做很多操作。
Ps -ef 查看当前服务器的相关进程。类似我们win的任务管理,主要看服务器我们指定的进程是否还在运行 。其他类似的命令 top free df 相对而言,操作服务器不频繁的情况下,用的更少。
对于Linux 更多其他常用命令需要查相关手册,这里不做Linux各个命令的详细拆解。对于我们需要完成的目标项目而言,基本上你能登录服务器,拿到文件移动到本地,完成代码效果的开发,就完成了基础的目标。其他常用命令主要有(cp 复制文件 touch 创建一个文件 cat 查看一个文件信息 su 切换账号 chown 权限 echo 打印显示)