目录
inux概念
熟悉linux系统时我们首先要了解一个概念
在linux世界里一切皆文件!
liunx系统里是使用命令来进行各种操作,所以首先我们需要熟悉liunx的文件形式。
在linux中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。
目录分别代表如下含义
系统启动必须:
/boot[常用]:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
/etc[]常用:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
/lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
指令集合:
/bin[常用]:存放着最常用的程序和指令
/sbin:只有系统管理员能使用的程序和指令。
外部文件管理:
/dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
/media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
/mnt[常用]:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件:
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
/lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
/tmp:这个目录是用来存放一些临时文件的。
账户:
/root[常用]:系统管理员的用户主目录。
/home[常用]:用户的主目录,以用户的账号命名的。
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序与指令。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src[常用]:内核源代码默认的放置目录。
运行过程中要用:
/var[常用]:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
/proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
/opt[常用]:默认是空的,我们安装额外软件可以放在这个里面。
/srv:存放服务启动后需要提取的数据(不用服务器就是空)
咳咳,接下来我们可以先熟悉下命令
基本命令
pwd:是英文print working directory 显示当前所在路径。
cd:是 change directory的缩写,表示改变当前所在路径。
touch命令 :如果文件不存在,则创建一个字节数为0的文件。
ls 命令:是英文单词list的缩写.用来查看文件目录的属性。
直接输入ls按回车,查看当前目录下的文件以及目录
ls -l l参数代表以列表的方式显示。
mkdir 命令是make directory的英文缩写
rm 命令remove的英文缩写。 可以用来删除普通文件,也可以用来删除目录。
常用参数:
‐f ‐‐force #强制删除,不询问是否要删除。
‐r ‐‐recursive #递归删除,包括文件夹中的内容。
mv命令英文单词move的缩写。可以用来移动文件夹或者文件,也可以用来更改文件名。
cp命令是英文单词copy的缩写,表示拷贝文件。 可以用来拷贝普通文件:
cp file file_bak #拷贝一份file为file_bak 可以用来拷贝目录
cp dir dir_bak ‐r #拷贝一个目录dir 为dir_bak, ‐r参数代表递归拷贝,把dir目录中的文件也拷贝
cat命令是英文单词concatenate连锁的缩写,用来查看文件内容,以及将几个文件连成一个文件
> 定向前两个文件里的数据生成到文件中(没有文件则创建文件)
find 命令直接在全文件系统上搜寻,功能强大,速度慢。
head命令 查看文件开头内容 head [选项] 文件名
-n [行数] 显示指定行数的内容(不加选项-n默认显示10行)
tail查看文件末尾的信息 tail [选项] 文件名
-n [行数] 显示指定行数的内容(不加选项-n默认显示10行)
which 用来搜索某一命令的路径 which 命令
where is 也用来搜索某一命令的路径
xshell快捷键
Ctrl+l 清屏
shift+tab 切换终段
ctrl+c 取消当前命令执行
. 代表当前目录
Ctrl+a 光标移动至行首
Ctrl+e 光标移动至行尾
“*‘ 代表任意所有字符
Ctrl+u 清空至行首
Ctrl+w 删除一个单词
图形界面
Ctrl+ shift+“+” 调整图形化终端界面变大
Ctrl+ shift+“-” 调整图形化终端界面变小
vim编辑器
Vim 的前身是 vi,一个简洁但是略有不足的编辑器,但是从 vi 开始,编辑器的模式区分和唯快不破的思想就已经体现的很到位了。Vim 即是 vi improved,是在 vi 原本所有的方式上进行的进一步提升,但是并不会改变 vi 的其他本质,只是增加了更多适应如今需要的一些功能。
vi 于 1976 年诞生,与 Emacs 不分先后,两者因其快捷的编辑被奉为主流的神器,甚至使用者们还有爆发过 “圣战”,即是 神的编辑器 Emacs VS 编辑器之神 Vim,但是当然分不出结果,因为各有优劣。但它们共有的特点就是高度的扩展性与高度的可定制性以及快捷方便的使用。
安装方法
安装有两种做法。
做法一,使用命令安装,但因为系统安装的时候 Vim 就是从默认软件源安装的,所以软件源里 Vim 的版本并不是最新的 = =。这个时候应使用第三方软件源安装,命令如下:
1.sudo add-apt-repository ppa:jonathonf/vim
2.sudo apt-get update
3.sudo apt-get install vim
做法二,先到 Releases - vim/vim 下载源码包,然后解压,并进入解压后的文件夹,并打开终端,cd 至文件夹路径,并依次输入如下命令:
1.sudo apt-get install python-dev
2.sudo apt-get install python3-dev
3.sudo apt-get install libncurses5-dev
4../configure
5.make
6.sudo make install
vim模式及快捷键
Vim 的命令大部分都是在一般模式下完成的,普通模式下可不能乱按,可以说每个键都是命令。
普通模式下最重要的命令,没有之一,那就是 u。撤销命令,作用是撤销上一次对文本的更改,普通模式下的 x,d,p 命令都会被撤销,同时进入一次插入模式所编辑的文本也算一次更改,u 命令会删去从进入到退出插入模式所输入的所有东西。
然后的话, 就是普通模式下常用的命令。由于对行命令的使用很频繁,所以大部分的单键命令都可以通过按两次来实现对行操作。常用命令是 x ,用于删除光标后的一个字符。然后是 d 命令,也是删除,但是种类更多,这里不做赘述。同时 d 命令像之前说的,按两次即可删除整行,即 dd。
然后是y命令,可以复制被选中的区域,这涉及到可视模式,即按 v 进入可视模式,多用于选中区域。进入可视模式后移动光标来确定选取范围是可以的,此时按 o 键即可切换活动端,省去了如果跑反方向的麻烦。包括移动光标。当然,选中后按 x 或 d 亦可删除。同时,y 也符合 d 的性质,yy 将可以复制当前行。
然后就是更快的跳跃了。如果说只是使用 hjkl 的话,光标的移动显然不够快,而鼠标却又要伸手去拿。Vim 提供了普通模式下更快的跳跃方法,w 可以跳到下个单词的开头,而 e 可以跳到当前单词结尾,0 可以跳至行首,$ 可以跳至行尾,岂不是快多了?而且 w,e,0,$ 还可以用于许多命令中 de,dw,d0,d& 分别对应删至单词尾,删至下个单词头,删至行首,删至行尾。以及y命令亦可同理。
命令行模式及其快捷键
此模式下有一些很有用的命令
:q 退出,:w 保存,:wq 保存并退出,:q! 不保存并退出,:e filename 打开当前目录下指定文件,这些是比较基础的。
然后是很强大的命令 :x1,x2 s/A 串 / B 串 / 作用是把第 x1 行至 x2 行中的所有 A 串替换成 B 串。想象一下题写完了,但是发现没开 long long 的时候,完全不绝望有没有,一个小命令,妙不可言。瞬间所有 int 变 long long。
系统常用命令
◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、
exit、last;
◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、
crontab;
◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、
finger、mail、 nslookup;
◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、
who;
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。