Linux 操作笔记

好记性不如烂笔头,记录一下日常工作学习中常使用的 Linux 命令。

安装磁盘分配

  • /boot 用来存放与 Linux 系统启动有关的程序,比如启动引导装载程序等,建议大小为 100MB。
  • swap 实现虚拟内存,建议大小是物理内存的1~2倍。
  • / Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为5GB以上。
  • /home 存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。

系统目录结构

  • /:存放系统程序,也就是 At&t 开发的 Unix 程序。
  • /usr:存放 Unix 系统商(比如 IBM 和 HP)开发的程序。
  • /usr/local:存放用户自己安装的程序。
  • /opt:在某些系统,用于存放第三方厂商开发的程序,所以取名为 option,意为 “选装”。

常用基本命令

  • ls 列出当前目录下的文件 ls ser* 查找 ser 打头的文件
  • ls -l (简化为:ll)列出当前目录下文件的详细信息
  • ls -a 列出当前目录下的所有文件(包括隐藏文件)
  • ls -t 依时间排序,而不是用档名
  • ls -S 依大小排序,ls -Sr 按大小倒序
  • ls --full-time 以完整时间模式 (包含年、月、日、时、分) 输出( Mac 是 ls -T
  • ll -d 查看当前目录的详细信息
  • ll -a 详细列出当前目录下的所有文件
  • ll 路径 列出指定路径(可为相对或绝对路径)下的文件
  • ll -d 路径 查看指定路径的详细信息
  • 打开文件夹:cd 路径
    • cd /etc (相对路径)cd xxx(绝对路径)
    • 返回上一级目录:cd ..
  • 查看当前目录:pwd(path where dir)
  • 查看当前用户:whoami
  • 切换用户:su -用户名 或者 su 用户名(从其他用户切换到 root 用户需要密码,从 root 用户切换到任何其他用户不需要密码)
    • 切换到 root 用户:su
    • 切换到 root 用户后使用命令:exit 切换到普通用户
  • 清屏:clear 或者 Ctrl + L
  • 关机:halt 或者 shutdown -h now
  • 修改密码:修改 root 自己的密码,直接输入 passwd,输入两遍新密码即可。若修改其他用户,如 oracle 的密码,可直接输入 passwd oracle,输入两遍性新密码即可。
  • 查看系统编码:locale
  • 获取权限:chmod 777 文件名
  • 检索(例如检索 profile):ls -l | grep profile
  • 文件拖拽软件安装:yum install lrzsz
  • 查看进程:ps -efps auxf
  • 查看端口:netstat -antlp | grep xx
  • 查看资源占用情况:topShit + > 切换排序列)
  • 查看内存:free -m/g
  • 查看目录大小:du -sh /opt/registry
  • 修改配置文件后立即生效:sysctl -p
  • 查看系统环境变量:env
  • dirname 用于取指定路径所在的目录,如:dirname /home/ikidou,结果为:/home
  • cd dirname $0:一般用户 Shell 脚本中,切换到执行脚本所在的目录
  • tee:在执行 Linux 命令时,我们可以把输出重定向到文件中,比如 ls > a.txt,这时我们就不能看到输出了,如果我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用 tee 命令
  • tree:树形查看当前目录结构
  • 系统负载查看:uptimewtop 命令
    • “load average”,它的意思是 “系统的平均负荷”,里面有三个数字表示 1分钟、5分钟、15分钟内系统的平均负荷。
  • 列出谁在使用 3306 端口:lsof -i:3306

文件操作命令

路径(绝对路径、相对路径)

  • 创建文件夹:mkdir [路径] + 文件夹

    • mkdir [路径] + 文件夹1 [路径] + 文件夹2(可以同时创建多个文件夹,空格隔开)
    • mkdir -p [路径]/[路径] (创建多层级目录)
  • 创建文件:touch [路径] + 文件名

    • touch [路径] + 文件名1 [路径] + 文件名2(可以同时创建多个文件,空格隔开)
  • 如何区分是文件夹还是文件:

  • 删除(remove)文件:rm [路径] + 文件名 (可以删除多个文件,每个文件用空格隔开)

    • 删除文件夹:rm -r 文件夹1 文件夹2(递归 recursive 删除文件夹1和文件夹2下的所有内容,每删除一个会提示)
    • rm -rf 文件夹(强制 force 删除文件夹下的所有内容,不提示删除)删除后无法还原
    • 删除文件夹或者: rmdir 文件夹(文件夹必须为空)
    • 删除所有内容:rm -rf *
  • 复制(copy)文件:cp 源文件 目标文件夹(正常情况下使用绝对路径) -复制文件夹:cp -r 源文件 目标文件夹

  • 移动(move)文件:mv 源文件 目标文件夹(正常情况下使用绝对路径)

    • 移动文件夹:mv 源文件夹 目标文件夹
    • 重命名:mv aa.txt aaaa.txt

文件读写命令

  • echo "Hello World" >> a.txt 将字符串 Hello World 追加到文件 a.txt 中。
    • echo "Hello World" > a.txt 将文件 a.txt 中的内容替换为字符串 Hello World。
  • 查看文件内容:cat a.txt
    • more services 分页查看 services 文件中的内容,按空格或 f 切换下一页,回车下一行,q 退出。(文件内容较多时使用)
    • head services 查看 services 文件前 10 行的内容(默认前 10 行) head -20 services (前20行的内容)
    • tail services 查看 services 文件结尾 10 行的内容 tail -20f services(滚动显示结尾 20 行的内容)
    • vi/vim services vi 可以修改文件
  • 文件链接:ln 文件 链接 修改源文件或者链接文件,两者同时更新
    • ln -s /test/a.txt /test/as.txt 软链接 as.txt 就是针对 a.txt 的软链接(类似如 windows 的快捷方式)a.txt 删除后,as.txt无效
    • ln /test/a.txt /test/ah.txt 硬链接 a.txt 删除后 ah.txt 仍然有效