shell快捷键

  • ctrl+a=home
  • ctrl+e=end
  • crtl+d=delete
  • ctrl+u删除光标前所有字符
  • ctrl+k删除光标后所有字符

    linux目录

  • /bin:存放二进制文件,可执行程序,shell命令

  • /sbin:存放系统管理员使用的系统管理程序,ifconfig, halt, shutdown, reboot等
  • /dev:device,存放驱动文件
  • /lib:存放动态库如libc.so、libpthread.so等(动态库文件在Windows中为dll文件,linux中为so文件)
  • /mnt:手动挂载目录,如光盘等
  • /media:外设自动挂载目录,如光盘等
  • /root:root用户的家目录
  • /usr:Unix system resource 类似于Windows的Program Files
    • /usr/include:存放头文件,如stdio.h、stdlib.h、string.h、pthread.h等
  • /etc:存放配置文件
    • /etc/passwd:所有用户密码
    • /etc/group:所有用户分组信息
    • /etc/profile:系统配置文件,修改该文件会影响所有用户
  • /opt:安装第三方应用程序的位置
  • /home:存放所有用户的家目录:如/home/ytl为用户ytl的家目录
  • /tmp:存放临时文件,新建在这个目录下的文件会在系统重启后自动被清除

    常用指令

  • ls

    • -a:列出路径下所有文件,包括“.”开头的隐藏文件
    • -R:递归列出所有目录中的内容(效果不如tree)
    • -l:列出文件详细信息

image.png

  1. - 文件类型(第一个字符)
  2. - -:普通文件
  3. - d:目录
  4. - l:符号链接(软链接)相当于Windows中的快捷方式
  5. - s:套接字
  6. - p:管道
  7. - b:块设备,如硬盘
  8. - c:字符设备,如键盘、鼠标
  9. - 用户操作权限(2-10个字符)
  10. - 2-4文件所有者,5-7文件同组者,8-10其他人
  11. - r:读,w:写,x:执行
  12. - 硬链接计数
  13. - 文件所有者
  14. - 文件所属组
  15. - 文件大小:单位默认为字节,目录大小为4k4096字节)
  16. - 文件最后修改时间
  17. - 文件名
  • 参数之间结合使用
    • ls -al:列出路径下所有文件(包含隐藏文件)详细信息
    • ls -ltr:按修改时间,从久到近列出所有文件

image.png

  • pwd:查看当前工作目录
  • which:显示命令所在目录

image.png

  • touch
    • touch 文件名:文件不存在创建新文件,存在则更新最后修改日期
  • mkdir
    • 单级目录:mkdir dir
    • 多级目录:mkdir -p dir/a/b/c
  • rmdir:删除空目录
  • rm:删除文件不放如回收站
    • 删除文件:rm 文件名
    • 删除目录:rm -r 目录名
      • -r:递归删除目录
      • -i:提示用户是否删除文件或目录
      • -f:强制删除
  • cp
    • cp fille file1(不存在)
      • 创建file1,将file内容复制到file1中
    • cp file file1(存在)
      • file覆盖file1
    • cp file dir(存在)
      • file拷贝到dir/下
    • cp -r dir(存在) dir1(存在)
      • 将dir拷贝到dir1下
    • cp -r dir(存在) dir1(不存在)
      • 创建dir1将dir中所有文件拷贝到dir1
    • cp -a可以报了被拷贝文件的一些属性信息
  • mv
    • 改名
      • mv file(存在) file1(不存在)
      • mv dir(存在) dir1(不存在)
      • mv file(存在) file1(存在):file改名为file1,覆盖原有file1
    • 移动
      • mv file dir:将file移动到dir下
      • mv dir(目录存在) dir1(目录存在):将dir移动到dir1
  • cat
    • cat 文件名:将文件内容输出到终端
    • cat file1>file2:相当于cp file1 file2,>为覆盖,>>为续写
  • more
    • more 文件名:文件内容分页显示到终端,只能向下浏览,不能回退
    • 回车:显示下一行;空格:显示下一页;退出:q(ctrl+c)
  • less
    • less 文件名:文件分页显示到终端,可上下浏览
    • 键盘上下键:上下行;PageUp:上一页;PageDown/空格:下一页;退出:q(ctrl+c)
  • head:从文件头部开始查看前n行内容,默认显示10行
    • head -20 文件名:显示前20行
  • tail:用法与head相同,显示后n行内容
    • tail -f test.log 显示日志
  • 软链接:类似于Windows下的快捷方式
    • ln -s 文件名 快捷方式名
    • ln -s 目录名 快捷方式名
    • 软链接大小是路径总字节数,尽量使用绝对路径
  • 硬链接
    • ln 文件名 链接名
    • 硬链接不能建立在目录上
    • ls -i 文件名:查看文件i节点
    • stat 文件名:查看i节点信息
  • wc
    • wc -l file:显示文件总行数
    • wc -c file:显示文件总字节数
    • wc -w file:显示文件总单词数
    • wc file:显示文件行数,字节数,单词数
  • whoami:显示当前登录的用户名
  • chmod:文件权限控制
    • chmod [u/g/o/a] [+/-/=] [r/w/x] 文件名
      • u:文件拥有者;g:同组用户;o:其他用户;a:所有用户(默认)
      • +:添加权限;-:取消权限;=:直接设定权限
      • r:读;w:写;x:执行
      • chomd ug+wr file.txt:给file.txt的拥有者及同组用户添加读写权限
    • chmod [+/-/=] [mode] 文件名
      • mode:0:没有权限;1:x;2:w;4:r
      • chmod 664 file.txt:给file.txt设置rw-rw-r—权限
      • chmod +111 file.txt:给所有用户添加对file.txt的执行权限
  • chown
    • chown ytl:ytl file.txt:将文件所有者设置为ytl,所属组设置为ytl
    • chown ytl file.txt:只设置所有者
    • chown :ytl file.txt:只设置所属组
  • chgrap
    • chgrap ytl file.txt:等同于chown :ytl file.txt
  • find
    • 按文件名查
      • find 路径 -name “文件名正则”
    • 按文件类型查
      • find 路径 -type 类型(普通文件用f而不是-)
    • 按文件大小查询
      • find -size 范围
      • find -size +100M:查找大于100M的文件
      • find -size - 20k:查找小于20k的文件
      • find -size 50c:查找大小为50字节的文件
    • 按文件日期
      • 创建日期:-ctime -n/+n
        • -n:n天以内
        • +n:n天以外
      • 修改日期:-mtime
      • 访问日期:-atime
    • 按深度
      • maxdepth n:搜索层数不超过n
      • mindepth n:搜索层数不低于n
    • 高级查找
      • find ./ -type d -exec shell {} \:搜索路径下所有文件夹,对搜索到的结果执行指定shell
      • find ./ -type d -ok shell {} \:ok比exec安全(特别是rm时),会弹出操作询问
      • find ./ -type d | xargs shell:管道执行与exexc类似,更适用于搜索结果集大时分页显示
  • grep
    • grep -r -i -n “hello” ./:递归寻找当前目录下,内容包含hello(忽略大小写)的文件,并显示行号
      • -r:递归搜索,适用于文件夹
      • -n:搜索结果显示行号
      • -i:忽略大小写
      • -v:不含有某些字符
  • find和grep合用
    • find . -name “*.c” | xargs grep -n “main”:寻找.c结尾的文件中包含main的行
  • tar
    • z:用gzip压缩/解压文件
    • j:用bzip2压缩/解压文件
    • c:创建tar包,与x互斥
    • x:释放tar包,与c互斥
    • v:打印出操作文件的详细信息
    • f:指定文件名字
    • t:查看压缩包中有些文件
    • 常用参数组合
      • tar cvf file.tar file:打包
      • tar zcvf file.tar.gz file:打包压缩成gzip格式
      • tar jcvf file.tar.bz2 file:打包压缩成bz2格式
      • tar xvf file.tar.gz:解压到当前文件夹
      • tar zxvf file.tar.gz:解压到当前文件夹
      • tar jxvf file.tar.bz2:解压到当前文件夹
      • tar zxvf file.tar.gz -C 解压目录:解压到指定目录
      • tar -tvf file.tar.gz:查看压缩包中有哪些文件(v:详情信息 )
    • apt-get
      • 软件安装:sudo apt-get install 软件名
      • 软件卸载:sudo apt-get remove 软件名
      • 更新软件列表:sudo apt-get update
      • 清理安装包:sudo apt-get clean
    • dpkg
      • 软件安装:sudo dpkg -i xxx.deb
      • 软件卸载:sudo dpkg -r 软件名