Linux-2020-spring-3-18

来自SUDA-HLT
Zhli讨论 | 贡献2020年3月18日 (三) 04:22的版本 →‎文件编辑器
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

回顾上节课的内容

命令的语法

    cmd [opt]... [arg]...
    linux下大小写区分(-r reverse;-R recursive)
    选项推荐写到参数的前面

简单命令

    ls -l
    rwx r-x ---
    user(owner) group others

文件操作

cp的几种用法

   man cp 
   -t (target的意思)
   cp a.txt b.txt (a.txt,b.txt 命令行参数command-line arguments)
   cp a.txt b.txt Downloads/
   能不能用C语言写一个简化版的cp命令,思考命令行参数的处理
        int main(int arga,char *argc[])
   whereis cp
       /usr/share/man/man1/cp.1.gz  (1表示这个命令的类别:user command就对应1)
       /usr/share/man/man1/printf.1.gz (printf命令)
       /usr/share/man/man3/printf.3.gz(printf库函数,C语言)
       /bin/cp 这个命令的可执行文件,文件大小为126K(好复杂,说明功能很多)
   hexdump -C /bin/cp | less 看二进制文件的内容(十六进制);管道以后会讲(| less)
          hexadecimal
          decimal
          octal
          binary
    

mv

 mv x.c Downloads/
 

mkdir

    mkdir -p newdir/newdir/newdir  会创建三个嵌套的目录

rmdir 删除空目录

rm 删除文件或目录

 -f --force
 -i (interactive)     
 -r, -R, --recursive
 
 AM 上午Ante Meridiem
 PM 下午post meridiem


tab键自动补全文件名或命令名

文本文件查看命令

文本文件 vs. 二进制文件

 文件中包含的字符都(绝大多数)是可见字符,则为文本文件
 

cat 拼接(concatenate)

  不跟参数的时候,默认将标准输入stdin的内容输出到标准输出stdout

tail

   tail -n 3 a.txt  显示后三行
   tail -f a.txt:监控文件,很常用

wc(word count)

 -n -c -w

head -n 3 a.txt

less 分屏显示

 less is more,比more命令更强大
 上下箭头 按行移动;
 空格 forward翻屏
 ctrl + f/b forward/backward翻屏
 /regex 字符串或者正则表达式 进行搜索

man:在线文档

 online在线;离线offline
 可以查看9个类别的文档
      1 用户命令
      2 系统调用(内核函数)
      3 库函数
      7 杂项 miscellaneous(macro宏;micro微)
      8 系统管理员命令,root可以调用
 man命令显示显示结果时,就用less分屏
     上课中出现了不能自圆其说的地方:我们把man.1.gz的文本文件另存为txt文件,然后用less直接打开,发现显示和man man的结果并不一样。
     也就是说,man命令显示结果时,在分屏之前,应该还有一个什么命令,对格式进行解析。
 输入man man 的时候就会将man的说明文档调入,用less显示
 输入 man printf (如果未指定数值,会看printf作为命令的帮助文档)
 man 3 printf C语言的库函数printf 
 man -f printf 非常简洁的说明
 man -k search 查找包含search的文件

printf作为用户命令

 $ printf "hi\n"
 $ printf "hi%d%/10f\n" 10 1.32


文件编辑器

vim (Vi IMproved)

 下节课
 必须要掌握一个好的文本界面下的文本编辑器