文件 && 目录

目录大小 && 浏览和切换目录

  • pwd 当前路径

  • which 搜索可执行文件路径

  • ls 列出当前目录

    • -a all
    • -l list
    • -h 便于人类阅读
    • -t 按最近一次修改时间排序
    • -i 显示 inode
  • cd 切换目录

  • du 显示目录包含的 文件 大小 du 会深入遍历目录的每个子目录

    • -a 显示目录和文件的大小
    • -h
    • -s 只显示总计大小(summary)

文件浏览和创建

  • cat && less 显示文件内容 less-分页显示内容

    • space 读取下一个屏幕的内容

    • ↓ 下一行

    • d 前进半页

    • b 后退一页 = Pageup

    • y 后退一行 = ↑

    • u 后退半个屏幕

    • q 退出

    • = 显示在文件中的位置

    • / 进入搜索模式 在斜杠后面输入要搜索的文字

      • n 下一个符合条件的搜索结果
      • N 上一个符合条件的搜索结果
  • head 显示前几行

    • n 前 n 行
  • tail 显示尾几行

    • -n
    • -f 实时追踪文件更新
      • -s 每隔 s 秒检查一次
  • touch 常见一个空白文件(注意:linux 中文件名尽量不要包含空格)

  • mkdir 创建文件夹 make directory

    • -p 递归地创建文件夹 e.g. mkdir -p one/two/three

文件复制和移动

  • cp 拷贝文件 cp new_file new_file_copy
    • -r 拷贝目录 cp -r dir dir_copy
    • 通配符 cp *.txt folder 把当前目录下所有 txt 文件拷贝到 folder 目录中
  • mv 移动文件或目录 or 重命名文件
  • rm 删除文件
    • -i 向用户确认是否删除
    • -f 强制删除
    • -r 递归删除 删除目录
  • rmdir 删除 空 目录

链接

  • ln 创建链接(区别)
    • 硬链接
    • 软链接 -s

用户管理

如果不设置用户的群组,默认会创建一个和它的用户名一样的群组

  • useradd username 添加用户
  • passwd username 设置密码
  • userdel username 删除用户
    • -r or –remove 删除家目录

群组管理

  • groupadd 添加群组

  • usermod 修改用户的群组

    • -l 对用户重命名(家目录名字需要手动更改)
    • -g groupname username 修改用户群组
    • -G groupname1,groupname2… username 修改用户群组(多个)
      • -a 以追加形式添加
  • groups [username] 查看用户所在群组(默认显示当前用户)

  • groupdel 删除一个已存在的群组

  • chown (change owner) 更改文件所有者(群组)

    • chown username filename
    • chown username:groupname filename
    • -R 递归修改目录的所有子目录和文件的所有者(群组)
  • chgrp (change group)
    chgrp groupname filename

  • chmod 修改访问权限
    r:read - 4
    w:write - 2
    x:execute - 1

    第一组 rwx 表示文件的所有者对于此文件的访问权限
    第二组 rwx 表示文件的所属群组的其他用户对于此文件的访问权限
    第三组 rwx 表示文件的除前两组的其他用户对于此文件的访问权限

    • 数字分配
      chmod number filename
    • 字母分配
      • 追加
        • chmod u+r file 给 user 添加读的权限
        • chmod g+w file 给 group 添加写的权限
      • 移除
      • = 修改

Nano 文本剪辑器

nano filename 打开文件

  • -m 激活鼠标
  • -i 激活自动缩进功能
  • -A 激活智能 Home 功能

配置文件多以 rc 结尾(run commands)

profile 和 bashrc 的区别
profile 是非图形界面的终端的配置文件
bashrc 是图形化终端的配置文件
profile 会调用 bashrc

source bashrc 使 bashrc 的改动立即生效

软件安装

软件仓库的概念
如何更改软件仓库的源

man && apropos

man 查看命令的具体内容
apropos 根据关键字查找命令
whatis man 的精简版

查找文件

locate

locate 搜索包含关键字的文件或目录 - locate 在问价你的数据库中查找,对于新创建的文件,可能无法检索到 - updatedb 更新数据库,这样就能够检索到文件了

find

find 只会查找完全符合条件的文件,可以通过*来扩展查找范围
find 命令可以限定查找目录

  • -name 根据名字查找 find /var/log -name “syslog”
  • -size 根据大小查找 find /var -size -50k 查找小于 50k 的文件
  • -atime 根据修改时间查找 find /var/log -name “syslog” -atime -7 近 7 天访问的文件
  • -type d 只查找目录类型 f 只查找文件类型

find 可以对查找到的结果进行操作

find -name "*.txt" -printf "%p - %u\n"
find -name "*.txt" -delete

关于调用命令

find -name "*.txt" -exec chmod 600 {} \ ;

chmod 600 {} \ ; 不必用双引号括起来
{}会用查找到的每个文件来替换
;是必须的结尾

数据操作

grep

G lobally search a R egular E xpression and P rint

grep 字符串 文件

  • -i 忽略大小写

  • -I 排除二进制文件

  • -v 只显示文本不在的行 invert

  • -r 在所有子目录和子文件中查找 recursive

  • E 使用正则表达式
    grep -E ^path /etc/profile
    大部分系统中默认激活正则表达式

sort 为文本排序

  • -o filename 将排序的结果存储到新的文件
  • -r 倒序排序
  • -R 随机排序
  • -n 对数字排序

wc 文件的统计
可以用来统计行数\字符数\字节数

  • -l lines
  • -w words
  • -c 统计字节数
  • -m 统计字符数

unique 删除文件中的重复内容

  • unique filename
  • unique filename newfilename
  • -c 统计重复的行数
  • -d 只显示重复行的值

cut 剪切文件的一部分内容

  • -d 分割符
  • -f 指定第几部分
cut -d , -f 1,3 notes.csv

流&&管道&&重定向

重定向 把本来要显示在终端的命令结果,输送到别的地方
管道 一个命令的输出作为另一个命令的输入

输出重定向

  • > 重定向到新的文件
cut -d , -f 1,3 notes.csv > redirect.txt

黑洞文件 /dev/null 总是空的文件

cut -d , -f 1,3 notes.csv > /dev/null

这样就没有输出了

  • >> 重定向到文件的末尾

重定向错误输出

文件描述符名字解释
0stdin标准输入
1stdout标准输出
2stderr标准错误输出

2>&1 合并输出

cat not_exist_file.csv > result.txt 2> errors.log
# 加入文件存在,则写入result.txt,如果错误,则写入errors.log

cat not_exist_file.csv > result.txt 2>&1
# 将标准输出和标准错误输出都重定向到result.txt中

cat not_exist_file.csv >> result.txt 2>&1
# 将标准输出和标准错误输出都追加重定向到result.txt中

输入重定向

< 将输入重定向为文件内容
<< 将输入重定向为键盘输入 | 以逐行输入的模式

sort -n << END
# 输入字符,遇到END停止(END为自定义的结束符,可更换)

sort -n << END > numbers_sorted.txt 2>&1

管道

一个命令的输出作为另一个命令的输入

du | sort -nr | head
# 列出当前目录下体积前10的文件\目录

后记

花自无情水自流。一种相思,两处闲愁。