Linux入门

基础知识

  1. linux系统:所见皆文件。
  2. linux 系统目录
  • bin:存放系统二进制可执行文件,例如命令 dir实际执行的可执行文件就在里面。
  • boot:存放开机启动程序。
  • dev:存放设备文件。
  • home:存放用户文件。
  • etc:用户信息和系统配置文件。
  • lib:库文件。
  • root:管理员宿主目录(root用户文件目录)。
  • usr:用户资源管理目录,例如用户安装的应用程序就存放在里面。
  1. linux系统文件类型
  • 普通文件: -
  • 目录文件:d
  • 字符设备文件:c
  • 块设备文件:b(磁盘)
  • 软链接:l
  • 管道文件:p
  • 套接字:s
  1. linux文件系统相关命令
  • ls:查看当前目录文件信息
  • pwd:打印当前目录
  • mkdir:创建目录
  • rmdir:删除目录(空目录)
  • touch:创建文件
  • rm:删除文件或文件夹
  • mv:重命名
  • cp:拷贝文件,拷贝文件夹时可以带上 -r-a 选项
  • cat:查看文件内容(全部显示)
  • tac:从尾部开始逆向显示文件内容
  • more:分屏显示文件内容
  • less:类似more
  • headhead -15 a.txt,可以指定查看文件的行数
  • tail:从尾部开始查看文件
  • tree:显示文件目录结构,默认不安装 sudo apt-get install tree
  • du:显示某个目录的大小
  • df:显示磁盘剩余空间
  • ln -s file file.s:创建软链接,相当于快捷方式,软链接根据路径file创建,软链接文件大小为输入文件名大小,如果输入的是绝对路径的文件名,就可以在任意地方使用该软链接。
  • ln file file.h:创建硬链接,硬链接关联的文件是共享的,如图 Inode是一样的,读写的时候是根据这个Inode的值操作的。而删除是将硬链接计数减一。
    image.png
  1. 文件系统和用户权限
  • whoami:显示当前用户
  • sudo adduser:新增用户
  • sudo deluser
  • sudo addgroup
  • sudo delgroup
  • sudo chgrp
  • sudo chown:chown user filenname,修改文件所有者
  • chmod:修改当前用户的文件权限,chmod [u user g group o other a all] [+-=] mode,或者是chmod 操作码 filename
  1. 查看与检索
  • find
    • -name:查找指定名字的文件 find ./ -name "a.txt"
    • -type:查找指定类型的文件 find ./ -type"l"
    • -maxdepth:指定搜索深度,必须是第一个参数 find ./ -maxdepth 1 -name "*file*.jpg"
    • -size:文件大小 find ./ -size +20M -size -50M
    • -exec:对查找的结果集执行某个命令find ./ -name "ppp" -exec ls -al {} \;{}为结果集固定写法,\;为转义和结束符
    • -xargs:对查找的结果做处理,当结果集比较大的时候,会分片处理, find ./ -name "ppp" | xargs ls -al,拆分结构的依据是空格,如果文件名中带有空格,可能会出错,可以使用-print0 find ./ -name 'ppp' -print0 | xargs -print0 ls -l第一个print0指定结果集分隔为null,第二个print0指定xargs分隔为null
  1. 软件安装

    • sudo apt-get update,更新软件列表
    • sudo apt-get install appname,安装
    • sudo apt-get remove softname,卸载软件
    • 使用安装包,ubantu


      image.png
  2. 压缩解压

    • gzip,只能压缩文件,如要将多个文件压缩打包,需要配置打包命令 tartar zcvf destfile srcfile1 srcfile2,其中选项 z:zip,c:create,v:vision,f:file

    • bzip2tar jcvf destfile srcfile1 srcfile2

    • 解压:tar zxvf destfile srcfile1 srcfile2tar jxvf destfile srcfile1 srcfile2

    • rarzip 需要另外安装

  3. vi

    • vi有三种工作模式,命令模式,末行模式,文本模式,它们之间的切换关系如图:

      image.png

    • vim基本操作-跳转和删字符
      i进入编辑模式,光标前插入字符
      a进入编辑模式,光标后插入字符
      o 进入编辑模式,光标所在行的下一行插入
      I进入编辑模式,光标所在行的行首插入
      A进入编辑模式,光标所在行的行末插入字符
      O 进入编辑模式,光标所在行的上一行插入字符
      s 删除光标所在字符并进入编辑模式
      S 删除光标所在行并进入编辑模式
      x 删除光标所在字符,工作模式不变
      dw 删除光标所在单词,要求光标在首字母上,如果不在首字母,只会删除当前位置到单词末,工作模式不变
      D 删除光标所在位置到行末,工作模式不变
      0(数字) 光标移到行首,工作模式不变
      $ 光标移到行尾,工作模式不变
      d0 删除光标所在位置到行首,工作模式不变
      d$ 删除光标所在位置到行末,工作模式不变

    • 命令模式下的光标移动
      h 左移
      j下移
      k 上移
      l 右移

    • 命令模式下行跳转
      line-G 缺点是没有回显

    • 末行模式下行跳转
      :line-回车

    • 跳转首行
      gg (命令模式)

    • 跳转末行
      G (命令模式)

    • 自动缩进
      在这之前要进行vimrc修改,不然自动缩进是8个空格
      ubuntu的vimrc位置在/etc/vim/vimrc
      在文件末尾添加三行:
      set tabstop=4 //设置制表符宽度为4
      set softtabstop=4 // 设置软制表符宽度为4
      set shiftwidth=4 // 设置缩进空格数为4

    • 格式化代码
      gg=G (命令模式),无回显

    • 括号跳转
      命令模式下,光标处于左括号时,使用%跳转到对应右括号,再按%跳回去。

    • 替换单个字符
      r命令模式下替换光标选中字符

    • 一段删除,即删除指定区域
      光标选中要删除的首字符,按v进入可视模式,再使用hjkl移动到要删除的末尾,按d删除

    • 删除整行(剪切):
      dd,删除光标所在行
      n+dd ,删除从光标开始的n行

    • yy 复制光标所在行
      p 向后粘贴剪切板内容,如果复制整行,这里是粘贴在光标所在位置的下一行
      P 向前粘贴剪切板内容,如果是整行,这里是粘贴在光标所在位置的上一行
      n-yy 复制光标所在位置的n行,包括光标所在行

    • 查找
      /+findname 命令模式下查找按回车键启动查找后,按n,会自动找下一个,N跳到上一个

    • 查找光标所在单词
      光标在目标单词上时,*或者#查找下一个,这里不要求光标必须在首字母上

    • 替换:末行模式下进行
      单行替换 ,光标置于待替换行, :s /待替换词/替换词
      全文替换,:%s /待替换词/替换词 ,这个默认替换每行的首个,一行有多个目标词时,后面的不会变
      :%s /待替换词/替换词/g 真正意义上的全局替换

      区域替换,:24,35s /待替换词/替换词/g 替换24-35行之间的目标词

    • 末行模式下历史命令
      Ctrl-p 上一条命令
      Ctrl-n 下一条命令

    • 撤销与反撤销,命令模式下
      u 撤销操作
      Ctrl-r 反撤销

    • 分屏,末行模式下
      :sp 水平分屏
      :vsp 竖直分屏
      分屏命令+filename,分屏并打开这个文件
      分屏后屏幕切换,Ctrl-w-w
      使用:q退出光标所在窗口
      使用:qall退出所有窗口

    • 从vim中跳转manpage,命令模式下
      将光标放在待查看单词上,按K,默认看第一卷
      n+K,查看第n卷

    • 查看宏定义:命令模式
      光标放在待查看词上,[+d即可查看

  4. gcc
    gcc 源自GNU

    • gcc -E hello.c -o hello.i 预处理.c文件,处理文件包含,宏定义,条件编译
    • gcc -S hello.i -o hello.s 编译,将预处理过的文件编译成汇编文件。过程包括:词法分析,语法分析,语意分析,代码生成等。
    • gcc -c hello.s - o hello.o汇编,生成目标文件,此时是二进制代码。目标文件没有链接动态库,还不是可执行文件。
    • 静态库生成(ar -rc libxxx.a xxx1.o xxx2.o xxx3.o),静态库以.a后缀结尾
    • 动态库的生成(gcc -fPIC -shared xxx1.c xxx2.c xxx3.c -o libxxx.so),动态库以.so后缀结尾
    • 链接:目标文件必须链接过后才可以执行
      • 静态链接:gcc -o hello hello.o libxxx.a
      • 动态链接:gcc -o hello hello.o libxxx.so
      • lld.hello.exe:在linux中可以通过shell脚本 lld 查看可执行模块的dependency
    • 其他编译选项:-I:指定头文件位置,-On:指定编译优化级别,-D:定义宏,-Wall:显示所有warning,-g:添加调试信息
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容