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
orcd ~
(不要忘记命令与参数“~”间的空格)
-- 返回上次访问的目录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为文件file3cat file1 file2 > file3
- 创建文件+修改文件时间
touch
-- 创建文件touch [filename]
-- 修改 atimetouch -a [filename]
-- 修改 mtimetouch -m [filename]
-- 更新文件的3个时间为当前时间:touch [filename]
(file已经存在)
-- 修改file1
时间与file2
相同touch -r file2 file1
- 查看文件
less
ormore
-- 查看大文件less
-- 一行行打印more
- 查看一个文件的前n行或者后n行
head
ortail
-- 查看前 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
orsed
orcut
-- 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 <command>
<command> -h
<command> --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
命令使得环境变量刷新