1.认识Linux系统
Linux不同于Windows下有C盘、D盘等等,它呈树状结构,从根目录“ /”开始。
目录:相当于文件夹,可以层层进入
文件:有三个时间(mtime;ctime;atime)
-- 修改时间:mtime,当文件当内容修改时,就会更新这个时间
-- 状态时间:ctime,当文件当“状态status”改变时,就会更新这个时间,举例:更改了权限与属性,就会更新这个时间
-- 存取时间:atime,当取用文件内容时,就会跟新存取时间。例如cat去读取文件,就会更新atime
2.Linux基本操作
2.1 认识Linux命令
命令一般有两部分组成:命令名称+命令参数
命令和参数之间用 空格 隔开(否则无效啊)
有些命令必须要跟参数,有些不需要
2.2 Linux命令 之 目录
显示当前所在目录的绝对路径 pwd
-- 绝对路径:从根目录起始的路径
-- 相对路径:从当前路径起始的路径
切换当前目录 cd
-- 返回用户home目录 cd or cd ~(不要忘记命令与参数“~”间的空格)
-- 返回上次访问的目录 cd -
-- 进入指定目录 cd [directory name] (绝对路径和相对路径都可以)
-- 进入上层路径 cd ..(当前路径 .)
创建目录 mkdir
-- 创建多级目录 mkdir -p [directory name]
删除目录 rmdir(只能删除空目录)
-- 递归删除目录 rmdir -p [directory name]
-- 删除非空目录 rm -r dir
列出目录下文件清单 ls
-- 显示所有的子目录和文件,包括隐藏文件 ls -a
-- 以长格式显示文件的详细信息 ls -l
-- 按修改时间排序 ls -t
-- 递归的显示各个子目录中的文件 ls -R
2.3 Linux命令 之 文件
查看、创建、合并文件 cat
-- 查看文件内容 cat [filename]
-- 创建文件 cat > [filename],后面输入内容,control+c 终止输入
-- 追加文件 cat >> [filename],后面输入内容,control+c 终止输入
-- 合并文件file1、file2为文件file3 cat file1 file2 > file3
创建文件+修改文件时间 touch
-- 创建文件 touch [filename]
-- 修改 atime touch -a [filename]
-- 修改 mtime touch -m [filename]
-- 更新文件的3个时间为当前时间:touch [filename](file已经存在)
-- 修改file1时间与file2相同 touch -r file2 file1
查看文件 less or more
-- 查看大文件 less
-- 一行行打印 more
查看一个文件的前n行或者后n行 head or tail
-- 查看前 n 行 head -n filename
-- 查看后 n 行 tail -n filename
统计文件的行数、字符数、字节数 wc
-- 统计行数 wc -l (常用)
-- 统计字节数 wc -c
-- 统计字数 wc -w
-- 统计行数、字节数、字数 wc -lcw
复制文件或者目录 cp
-- cp [directory name] [source] [destination]
-- 递归复制文件夹下的文件和目录 cp -r
移动文件夹、或者文件重命名 mv
-- 实质:拷贝后删除
删除文件或者目录 rm
-- 递归删除目录和文件 rm -r
-- 强制删除 rm -f
-- 强制删除递归目录和文件 rm -rf (删除能力强大,谨慎!)
链接文件 ln
-- 建立软链接ln -s(相当于构建快捷方式)
它的功能是为某一个文件在另外一个位置建立一个同步的链接
2.4 其他操作命令
打包、压缩、解压缩文件和目录 tar
-- gz压缩:tar -zcvf [filename.tar.gz] [filename]
-- bz2压缩: tar -jcvf [filename.tar.bz2] [filename]
-- gz格式 解压缩:tar -zxvf [filename.tar.gz]
-- bz2格式 解压缩: tar -jxvf[filename.tar.bz2]
查找、检索 grep
-- 查找含有[option]的行 grep [option] [filename]
文本处理 awk or sed or cut
-- sed 替换内容 sed 'ns/word1/word2/g [filename](s-替换;g-本行匹配到的内容全部替换。意义-文件第n行的word1全部替换为word2;并不修改源文件)
-- sed 删除行 sed 'nd' [filename] (删除第n行)
文本排序 sort
-- 工作原理:将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较,最后将他们按输出
-- 升序输出:sort [filename]
-- 降序输出:sort -r [filename]
-- 以数值来排序:sort -n [filename]
-- 指定列数排序:sort -n -k 2 [filename](-k加数字指定列数)
-- 去除重复行再输出 sort -u [filename]
注意:sort 习惯将数字按字符来排序,会出现10小于2的情况
去重复 uniq
去除排序过程中的重复行,经常和sort组合在一起用(单独使用时-只能删除连续的重复行)
-- 文件排序并去重 cat [filename] | sort | uniq
-- 文件排序并去重+统计重复次数 sort [filename] | uniq -c(-c进行计数,在行首位置显示重复的次数)
-- 文件排序并去重 sort [filename] | uniq -u (仅显示不重复的行)
-- 文件排序并去重 sort [filename] | uniq -c -i(-i 忽略大小写字符的不同)
补充:管道操作符‘|’
-- 应用:它可以将前面一个命令的标准输出(stdout)传递给后面一个命令,作为后面命令的标准输入(stdin)。(⚠️它仅能传递标准输出,而不能传递错误输出 stderr 给后面的命令。若要传递错误输出stderr,可以使用重定向指令实现 command1 2>&1 |command2)
2.5 系统自带的帮助信息
man
-h
--help
搜索引擎求助
3.了解Linux 权限
Linux的权限结构由三大类权限组成:文件拥有者、拥有者所在的组、其他组权限。
每一类都有三种权限组成:只读(r=4)、可写(w=2)、执行(x=1)
修改权限 eg: chomd 755 [filename]
递归变更权限 eg:chmod -R 755 [filename]
4.软件安装
大部分安装步骤(软件 ab 为例):
$ tar -zxvf ab.tar.gz 或者 tar -jxvf ab.tar.bz2 #解压文件
$ cd ab #进入文件夹
$ ./configure [-prefix=] #配置安装环境
$ make #安装
$ make install
小部分安装
使用cmake或make
注意事项
-- 安装前最好了解 README or INSTALL 两个文件
-- 求助社区论坛或者作者
5.环境变量
定义:指定操作系统运行环境的一些参数
在linux里,我们一般会指定PATH环境变量,以使我们的程序能够更好的运行
5.1 设置环境变量:
home目录里,存在两个文件 .bashrc 和 .bash_profile
通过更改这两个文件内容可以添加环境变量(在登陆系统时自动加载应用)
更改文件后,使用 source ~/.bashrc 命令使得环境变量刷新
5.2 环境变量的读取顺序
访问:~/.bash_profile ->~/.bashrc -> /etc/bashrc
调用:/etc/bashrc -> ~/.bashrc -> ~ /.bash_profile
5.3 对命令设置别名
eg: 通过catch命令实现 [filename] 的排序和去重
(1).bashrc 文档中添加 alias catch='cat [filename] | sort | uniq' ;
(2)更改文件后,使用 source ~/.bashrc 命令使得环境变量刷新