linux系统以及服务器操作笔记
这是一个扫盲指导,对于第一次使用linux的用户,希望能有所帮助,尽量少走弯路,少提naive的问题。
1. 目录结构
首先是对linux目录结构的理解,它的结构目录是
没有像C:\ D:\ E:\ 这样的盘符,在Windows系统中我们都把系统文件安装在C:\中,而在linux中系统文件是分别放在不同的目录中的,/bin 中存放编译好的二进制可执行程序,/home 是用户存放数据的目录,/lib 用来存放内核模块和共享链接,具体可以参考这里。
那么为什么linux的目录结构是这个样子?阮一峰对此有个深入的挖掘。
一般用的服务器多为linux系统的,管理员root会给你开通一个帐号ABC,你登录后进入的用户目录就是/home/ABC。
2. 登录服务器
如何登录服务器? 在windows下一般可以下载登录软件putty或者setupssh.zip(我记不住名字是什么了,下载的安装包是这样的名字)。 putty是有一个登录界面软件,setupssh.zip则是可以直接用CMD窗口直接登录。
使用setupssh.zip登录需要的命令是 ssh ABC@xxx.xxx.xxx.xxx 回车后,键入密码。
登录后进入/home/ABC的目录下面,有些管理员允许你在/home文件夹下自己的文件夹里存储文件,但是有些数据量很大的文件(GB\TB级别)是不能存储在/home文件夹里的。这时管理员会告诉你可以将文件存放在哪个目录下。
3. 安装软件
接下来说说所安装软件,在多用户的服务器上,不是每个用户都有权限将软件安装在/usr /opt之类的文件夹里。那么,你只能将自己需要用的软件安装在自己的/home/ABC文件夹里, 需要编译安装的软件(用C写的),第一步很多时候是./config –prefix=/home/ABC 这个的作用就是指定软件安装的地址,是你自己的目录下。之后程序会自动创建/home/ABC/bin目录来存放二进制文件,自动创建/home/ABC/lib目录来存放共享链接和一些库函数。
在安装后,你会发现很多软件只能在安装的目录下“./软件名”这样执行,这是因为你没有设置环境变量,还不能被相应的应用程序或守护进程访问到安装的软件(这半句的解释不一定正确)。 设置环境变量的方法,请自行google,基本格式是:
1. 修改profile文件:
# vi /etc/profile
在里面加入:
export PATH="$PATH:/home/ABC/build_tools/bin"
2. 修改.bashrc文件:
# vi /root/.bashrc 或者 /home/xxxx/.bashrc
我高估了人类的举一反三能力,如我只写/root/地址他们不管有没有权限,都只往/root/下写,另外写对地址的,一定要重新登录,不愿意重新登录的,在终端键入 source /root/.bashrc 或者 source /home/xxxx/.bashrc ,从这件事情我发现,饭不喂到嘴里,没人会吃,这是通病(估计我有时也一样)。2013年08月04日
在里面加入:
export PATH="$PATH:/home/ABC/build_tools/bin"
可爱的师弟对我在这里点评了他的事情”耿耿于怀”,他竟然在18年翻出了这个文章又看了一次-_-b
2018.07.25留
注意:方法1在服务器上是只有管理员级别用户才能做到的。
4. 常用命令
查看目录下的文件和文件夹 ls
。
查看目录下的文件和文件夹的具体属性 ll
。注意: ll
有两个辅助选项很管,一个是-h
可以显示文件的大小(以human看得懂的方式;)
,所以你知道为啥简称是h了吧);另一个是-a
可以显示隐藏文件,对了,linux系统下的隐藏文件写法是.文件名
,这个辅助选项在ls
后面加也管用。
在文件名前加个点,就看不见了,为啥呢? 看完原因后,大家是不是都有个姚明笑
的表情。
跳转目录 cd
目录绝对地址或相对地址(如果调转到下层子目录,可以用相对地址)。
察看文件内容 less
。注意:less -N
命令可以显示文件的行号。另外,二进制文件是无法察看的(你能看到的也是乱码),二进制
是给机器看的嘛。
复制文件cp
。
将文件传输到本地scp
。注意:这个需要知道本地的ip地址(我没在Windows下测试过,只在linux下用过)。
很多时候,大家需要在服务器后台上运行程序,而不耽误前台的工作。使用的命令是screen 或者nohup 或者tmux
(2018.07.25编辑,目前用tmux比较多,因为分屏方便),别用什么奇葩的at!!!
其实很多时候,使用linux命令时要多用辅助选项-h
查看简单帮助,或者用man
查看详细的帮助文档。
还有其他常用的vi, top, awk, grep, diff, ln
等等,请自行在需要的时候google。
要记住,你想做的80%的文件处理工作,linux都有常用工具+简单的pipeline
可以帮你实现,不要在处理数据时show自己那点可怜的编程技术,耽误处理的速度。
最好的学习方法就是逼迫自己使用linux系统,等你每天都见不到Windows时,你会发现自己变成了一个自由软件的忠实使用者。
一个学习参考网站http://nixsrv.com/llthw