liunx总结

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 软件包名(软件包名会在安装时显示)

源码安装

  1. 解压缩源代码包
  2. 查看里面的readme文件,或者官网会有执行安装的步骤,根据他的步骤来
  3. 进入到安装目录,执行./configure
  4. 然后make一下
  5. 安装软件:sudo make install
  6. 卸载: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
  • 服务器端
    1. 修改配置文件
      • 进入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,允许匿名用户创建目录
    2. 重启服务器
      • sudo service vsftpd restart
  • 默认客户端
    • 实名用户登录
      1. ftp 服务器IP
      2. 输入服务器名字,服务器密码
      3. 之后就会自动进入服务器家目录,然后可以随意在服务器的目录切换了
      4. 退出: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
  • 服务器端
    1. 创建共享目录(mkdir)
    2. 修改配置文件:sudo vi /etc/exports,然后在倒数第二行添加你的共享文件夹,例如/home/yixiyu/hello *(rw,sync) 配置文件解读:前面就是你的共享文件夹,是192.168.0. (0网段是根据你电脑现在网段设置的),rw读写权限ro只读,sync文件同步更新
    3. 重启服务:sudo service nfs-kernel-server restart
  • 客户端
    1. 挂载服务器共享目录:mount 服务器ip:共享目录的绝对路径 /mnt
    2. 进入/mnt目录进行复制粘贴等等

SSH服务器搭建(远程登录其他主机)

  1. 远程登录主机
    • 安装软件:sudo aptitude install openssh-server
    • 远程登录:ssh 用户名@IP ,然后输入yes,不能只写y,然后输入密码
    • 退出登录:logout
  2. scp命令(超级拷贝)
    • scp -r 目标用户名@目标IP:目标文件绝对路径 保存到本机的绝对路径

其他命令

  • 清屏快捷键:ctrl + l
  • 查看帮助手册:man命令,第一章是命令,第二章是内核函数,第三章是库函数,第五章是文件格式与规范
  • 查看命令封装:alias 命令,打造命令自己搜搜
  • echo命令可以打印后面的字符串,echo PATHPATHPATH意思是打印PATH的值,是从变量中取 值
  • 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 跟绝对路径也可以
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章