liunx基本命令
- date命令是显示当前时间
- history是显示你之前敲过的命令
- crtl+P是自动倒着输入你历史的命令,crtl+N与其相反,当然上下键也可以
- crtl+B是光标向前移动,+f向后移动,+a到行首,+e到行尾
- 光标前边的删除按删除键,del或者ctrl+d是删除光标覆盖的字符,ctrl+u是删除光标前面的所有,+l是清屏
- tab键是自动填充加提示,按下tab会提示你打的字相关的命令,还能自动填充和提示地址,可以将你
写的地址下的子目录全部显示出来,提示都是按两下 - cd是打开文件夹,ls是查看文件夹内容,ls -a隐藏文件查看,ls -l还有详细信息,pwd显示你绝对路径
- bin目录下是常用命令,boot目录下是系统启动文件,dev目录下是设备文件
etc下是安装的软件的配置文件,home是你的用户的目录,lib是系统用到的各种库,
media和mnt是挂载外设的,media是自动挂载的,mnt是手动挂载的,opt额外装软件的目录(一般默认撞到usr),
root是管理员目录,usr目录下是当前用户的应用程序和文件 - 绝对路径和相对路径:前者从根目录开始写,后者是当前目录。.表示当前目录,…表示上一级目录,
-是临近目录切换,cd ~就是去你用户的目录 - 查看你用户的所有文件:先安装tree软件,sudo apt-get install tree,命令行里打上tree,想看具体文件夹
就输入tree 文件夹名。 - 颜色标识(大部分是的):白色:普通文件,蓝色:目录,绿色:可执行文件,红色:压缩文件,青色:链接文件(类似快捷方式),
黄色:设备文件,灰色:其他文件 - 创建目录:例如 mkdir lover,创建连续的目录:mkdir -p aa/bb/cc,删除空目录:rmdir lover,
删除非空目录:rm -r aa无提示rm -ri aa有提示 - 创建文件:touch lucc.c 记得带后缀,删除文件(-i有提示) rm -i lucc.c或者rm lucc.c
- cp lucc.c temp.c,前面是要复制的文件内容,后面是要复制到里面的文件内容(文件名的好像都可以绝对路径),
cp hello nihao -r,是复制目录,如果目标目录存在就会把hello放进nihao里,不存在就会创建一个同级nihao目录,cp hello/* nihao -r 会把hello里面的内容移动到nihao下面 - cat命令可以查看文件内容(显示的较短),more命令显示所有内容(回车下一行,空格下一段,b是上翻,q退出)
- mv命令可以改文件名字,mv hello.c haha.c,还可以移动到目录里mv hello.c haha
- 软连接就是快捷方式(可以跨分区),硬连接就是复制粘贴(不可以跨分区)。源文件消失软连接无法工作,硬链接可以使用。软连接目录和文件都可以,而硬链接只能文件。软连接 :ln -s 绝对路径/文件名 软连接名,例如:home下的hello.c ln -s /home/hello.c nihao 。硬链接:ln 源文件 目标文件.hard 例如:ln hello.c nihao.hard。删除可以用rm。
- ./可执行文件(路径也可以),就会执行文件。du -h显示当前目录下文件夹大小,df -h显示文件系统占用大小
- which命令跟命令,会解析你后面的命令地址在哪。
- whoami命令显示当前登录用户,
- chmod命令修改文件读写权限,chmod [who][±=][mode],who有u(文件所有者),g(文件所属组),o(其他人),a(全部),+增加权限-减少=覆盖之前权限,mode:r(读),w(写),x(执行),举例:chmod a+w filename所有人有文件写权限,
文件名ls -l显示出来的,-rw-rw-r,第一个文件所有者有rw权限,文件组有rw权限,其他人有r权限。
数字权限:0:没有权限,r:4,w:2,x:1,chmod 777 filename给所有人rwx权限,chmod 377 filename给所有者wx权限 - 组:一个文件可以是一组的A创建的,但是它可以属于二组,就像你买了垃圾桶,你放到别人家里。其他人就是三组
- 更改文件所有者:chown 用户名 文件名,更改用户组:chown 用户名:组 文件名,chgrp 组 文件名
- 查找文件:按名字:find 查找目录 -name “文件名”,在不知道全名的情况下,find 路径 -name “文件部分名*”(*匹配多个字符,?匹配一个字符)。
按文件大小:find 查找目录 -size +10k -size -10M (查找目录下大于10k小于10M的文件)(+10k是大于10kb,-10k是小于)
按文件类型:find 查找目录 -type 文件标识(d:目录,f:普通文件,b:块设备,c:字符设备,s:套接字,p:管道) - 按文件内容查找:grep -r “查找内容” 查找路径
软件安装
在线安装
- 安装软件:sudo apt-get install 软件名字,移除软件:sudo apt-get remove 软件名字,更新软件列表:
sudo apt-get update,清理所有软件安装包:sudo apt-get clean - 安装aptitude后,sudo apt-get install aptiyude,安装:sudo aptitude install 软件名字,重新安装:sudo aptitude reinstall 软件名字,更新:sudo apt-get update,移除:sudo aptitude remove 软件名字,显示是否安装成功:sudo aptitude show 软件名字
deb包安装
- deb包安装:sudo dpkg -i 安装包名字,卸载:sudo dpkg -r 软件包名(软件包名会在安装时显示)
源码安装
- 解压缩源代码包
- 查看里面的readme文件,或者官网会有执行安装的步骤,根据他的步骤来
- 进入到安装目录,执行./configure
- 然后make一下
- 安装软件:sudo make install
- 卸载:sudo make distclean
U盘的挂载
- 一般插上U盘就会自动给你挂载到/media,一般在用户名字下面
- 卸载U盘:umount U盘绝对路径
- 安装U盘到/mnt:先sudo fdisk -l查看U盘名字,例如:/dev/sdc4,sudo mount U盘名字 /mnt
- 拷贝文件就用cp命令,卸载U盘要退出U盘目录,sudo umount U盘绝对路径
- 挂载到其他目录的话会临时覆盖其他目录里的东西,当结束挂载会恢复,所以要挂载到mnt或者自动挂载
压缩包管理
- tar命令:
- 压缩:tar zcvf xxx.tar.gz(压缩包名字) 压缩文件名,tar jcvf xx.tar.bz2(压缩包名) 压缩文件名,你只需要改变xxx就行。压缩多个文件往后排就行,也可以目录/文件名
- 参数意思:c-压缩 x-解压缩 v-显示提示信息 f-指定压缩文件名字 z-用gzip方式压缩 j-用bzip2方式压缩
- 解压缩:解压bz2:tar jxvf 压缩包名字 -C 目录名,想解压到当前目录:tar jxvf 压缩包名字。解压gz:tar zxvf 压缩包名字 -C 目录名,想解压到当前目录:tar zxvf 压缩包名字
- rar命令:
- 首先安装rar:sudo apt-get install rar
- 压缩:rar a 压缩包名字(xxx(可以不用带后缀)) 压缩文件或目录
- 解压缩:rar x 压缩包名 解压缩目录(不带的话就是当前文件夹)
- 参数意义:压缩:a,解压缩:x
- zip命令:
- 压缩:zip -r 压缩包名(也不用后缀) 压缩的文件或者目录
- 解压缩:unzip 压缩包名 -d 解压目录 或 unzip 压缩包名(当前文件夹)
压缩:命令+参数+压缩文件名字+压缩文件或目录
解压:命令+压缩包名字+参数+解压目录
进程命令
- 查看当前在线用户状况:who
- 切换设备终端:ctrl+alt+F1,2…7
- 查看所有进程:ps aux,在TTY栏带?的是没有终端的。管道就是把一个的输出当成另一个的输入,管道用|表示。例如:ps aux | grep bash:将所有进程的输出当成grep的输入,在输入里查找bash字符。
- 杀死进程:kill -SIGKILL 进程ID,进程ID是ps aux显示的第二列,kill -l会显示kill所有的命令
- 查看当前进程的环境变量:env,想继续筛选就要使用管道,例如env | grep PATH。环境变量格式:key=value:value:value:value
- top命令:相当于任务管理器,只能看
网络相关
- 查看你电脑网卡相关信息:ifconfig命令,inet地址就是你的IP地址,硬件地址就是MAC地址。
- 两台主机能否通信:ping IP地址,-c 4四条信息后结束 -i 4每四秒ping一次,能否上网就把IP改成www.baidu.com
,想知道对应网址的IP就用nslookup 网址
用户管理
- 添加用户:sudo adduser 用户名(不能有大写),切换用户:su 用户名,useradd命令:sudo useradd -s /bin/bash -g 组名 -d /hmoe/用户名 -m 用户名,这个命令要自己提前创建组
- 添加组:sudo groupadd 组名
- 修改密码:sudo passwd 用户名
- 删除用户:sudo userdel -r 用户名
- 查看用户是否删除或创建:vi /etc/passwd,里面的每一行都是一个用户
ftp服务器搭建(作用:文件的上传和下载,想操作目录就打包)
- 先安装软件:sudo aptitude install vsftpd
- 服务器端
- 修改配置文件
- 进入etc目录,编辑配置文件sudo vi vsftpd.conf
- anonymous_enable=YES,允许匿名用户登录
- local_enable=YES,允许本地用户登录
- 取消注释write_enable=YES,允许实名用户上传
- 取消注释local_umask=022,本地掩码
- 取消注释non_upload_enable=YES,允许匿名用户上传
- anon_mkdir_write_enable=YES,允许匿名用户创建目录
- 重启服务器
- sudo service vsftpd restart
- 修改配置文件
- 默认客户端
- 实名用户登录
- ftp 服务器IP
- 输入服务器名字,服务器密码
- 之后就会自动进入服务器家目录,然后可以随意在服务器的目录切换了
- 退出:bye
- 文件的上传和下载
- 上传文件:put 文件名,客户端登录ftp的时候目录里有的文件才能put
- 下载文件:get 文件名,服务器目前所处文件夹下有的才能下载
- 匿名用户登录(不允许匿名用户随意切换目录)
- ftp 服务器IP
- 用户名:anonymous 密码:直接回车
- 所以要给匿名用户一个工作目录,你可以在服务器一个地方创建一个目录(一般家目录创建一个就行),这个目录就会作为匿名用户的根目录,也有默认目录在/srv/ftp/,还是建议自己创建
- 然后sudo vi vsftpd.conf,在代码里添加:anon_root=/home/yixiyu/hello(你创建的目录绝对路径)
- 如果发现你无法上传文件,就要在服务器端创建的目录下再建立一个目录,给他777权限,才能正常上传,如果你直接把匿名根目录给写权限会导致以后无法登录匿名用户
- 实名用户登录
- lftp客户端
- 软件安装:sudo aptitude install lftp
- 匿名登录:lftp 服务器IP,用户名:login,回车即可登录
- 实名登录:lftp 服务器名@服务器IP ,回车后输入密码
- lpwd命令可以告诉你,你客户端在哪个目录下,lcd还能切换你的本地目录
- 具体操作
- put 文件名:上传单个文件
- mput 文件名 文件名:上传多个文件,
- get 文件名:下载单个文件
- mget 文件名 文件名:下载多个文件
- mirror 目录名:下载整个目录及其子目录,
- mirror -R 目录名:上传整个目录及其子目录
nfs服务器搭建(类似共享文件夹)
- 安装软件:sudo aptitude install nfs-kernel-server
- 服务器端
- 创建共享目录(mkdir)
- 修改配置文件:sudo vi /etc/exports,然后在倒数第二行添加你的共享文件夹,例如/home/yixiyu/hello *(rw,sync) 配置文件解读:前面就是你的共享文件夹,是192.168.0. (0网段是根据你电脑现在网段设置的),rw读写权限ro只读,sync文件同步更新
- 重启服务:sudo service nfs-kernel-server restart
- 客户端
- 挂载服务器共享目录:mount 服务器ip:共享目录的绝对路径 /mnt
- 进入/mnt目录进行复制粘贴等等
SSH服务器搭建(远程登录其他主机)
- 远程登录主机
- 安装软件:sudo aptitude install openssh-server
- 远程登录:ssh 用户名@IP ,然后输入yes,不能只写y,然后输入密码
- 退出登录:logout
- scp命令(超级拷贝)
- scp -r 目标用户名@目标IP:目标文件绝对路径 保存到本机的绝对路径
其他命令
- 清屏快捷键:ctrl + l
- 查看帮助手册:man命令,第一章是命令,第二章是内核函数,第三章是库函数,第五章是文件格式与规范
- 查看命令封装:alias 命令,打造命令自己搜搜
- echo命令可以打印后面的字符串,echo 是从变量中取 值
- poweroff:关机,reboot:重启电脑
VI与VIM的使用
- 先装VIM:sudo aptitude install vim
工作模式
- 命令模式:按i,a,o,s进入文本模式,按shift+:(其实就是:)进入末行模式
- 移动光标:h,j,k,l(上下左右好用)
- 按0切换到行首,按$切换到行尾,按两次g到文首,一次G到文尾,300G跳转到300行
- x删除光标后面的字符,X删除光标前面的字符,删除单词:dw(要移动到单词开头),删除光标前内容:d0,光标后面:D,删除当前行:dd,删除多行:ndd(n是整型)
- 撤销:u,反撤销:U
- 复制粘贴:粘贴:p,复制:yy,复制多行:nyy(n是整型)
- 可视化:按v,进入可视化界面,然后上下左右进行选择,操作:复制:y,删除:d
- 查找:按/后输入查找内容,按n切换到下一处查找到的位置,N去上一处,还有查找一个单词,把光标方式再按#,就会自动查找了
- 缩进:>>或者<< 向右向左缩进
- 文本模式:按esc进入命令模式
- 按a从光标处后面开始输入,A行尾开始
- 按i从光标处前面开始输入,I行尾开始
- 按o会创建新行,O当前行上边创建新行
- s会删除一个字符换取输入,S删除一行换取输入
- 末行模式:按两下esc在进入命令模式
- 输入数字:跳转行数
- 字符串替换:s/tom/jack替换当前行第一个tom,s/tom/jack/g替换当前行所有tom,%s/tom/jack替换文中所有tom,:27,30s/tom/jack/g替换其中27-30行的tom
- wq保存并退出,w保存,q!退出不保存
分屏操作
- 末行模式下垂直分屏,vsp命令,切换两个屏ctrl+ww,退出一个q或wq,光标在哪个屏就退出那个,全退出wqall。
- vsp 跟绝对路径也可以