1. 工作目录操作 pwd, ls, cd
1.1 pwd: print working direction (当前在哪里)
linux中一些默认符号:
· 当前目录
·· 上一级目录
~ 家目录
/ 根目录或目录分隔符
1.2 cd: change direction (要到哪里去)
1.3 查看目录内容ls: list (这里有什么)
ls 列表显示目录内容
常用参数 | 含义 |
---|---|
ls -l | 长格式显示文件或目录信息,包含文件的属性和权限数据等(long) |
ls -a | 显示所有包括隐藏的文件或目录(all) |
ls -h | 将文件容量以人类较易读的方式(GB,kB等)列出来 (是和l一起用的:ls -lh) |
ls -d | 显示目录本身属性信息 (是和l一起用的:ls -ld) |
ls -S | 以文件大小排序 Size(大写) (是和l一起用的:ls -lS) |
ls -t | 以修改的时间排序 (是和l一起用的:ls -lt) |
通配符?单字符 含其一或段[a,b,c-d] *任意
常见用法 | 含义 |
---|---|
ll | 和ls -la一样(偷懒写法) |
ll -th |
常用 |
ls ./*txt |
列出当前目录下以txt结尾的文件 |
2. 创建
2.1 创建目录mkdir
mkdir -p/--parents
创建嵌套的目录(见下面例子)
mkdir -m, --mode=模式,设定权限(777(owner-group-other),421(r- w-x))
mkdir -p pics/test1 #在当前目录下创建pics文件夹,在pics文件夹再创建一个test1文件夹
2.2 新建或修改文件相关时间touch
touch 新建文件或修改时间
touch -a修改访问时间
touch -m更改修改时间
touch --d=”时间” 设定访问与修改时间
touch file{1..5} 创建file1, file2, file3, file4, file5五个文件
-
vim
是创建文件并往里面写东西,比touch更常用
3. 操作文件
3.1 移动或重命名mv
用法:
3.2 删除目录或文件rm
删除就找不回来了,使用时需谨慎
rm -f 强制删除目录或文件
rm -r 递归删除目录或文件
rm -i 在删除会先询问用户
3.3 复制文件或目录cp (copy and paste)
cp 复制文件或目录
cp readme.txt ./test/a.txt #复制并重命名
cp ~/.bashrc ~/Data/bashrc_bk #⚠️对~/.bashrc做备份,以免误删
cp -r 递归复制文件或目录
3.4 查找文件或目录
find 在目录中查找文件或目录
参考:https://wangchujiang.com/linux-command/c/find.html
常用参数 | 含义 |
---|---|
find -name | 目标条件 按名称查找 |
find -iname | 查找文件或目录的名称,但是忽略大小写 |
find -type | 目标条件 按类型查找 f文件 d目录 b块设备 c字符设备 |
find -user xxx | 按所属者查找 |
find -size +10K | 按大小查找 +大于 -小于 |
find -exec | 对找到的文件或目录执行shell 命令(由exec指定) |
find -print | 将找到的文件输出到设备或文件 |
4. 文本查看,操作,统计命令⚠️
4.1 文件查看cat/tac, head/tail, less/more
- cat 查看文件内容
常见参数:
cat -A
列出所有内容,包括特殊字符,如制表符,换行符等等
cat -n
打印出所有行号,cat -b
仅打印非空白行行号
cat >file 重定向,也就是可以在file中输入内容。输入后可以使用Ctrl + C退出。
zcat
:可以查看压缩的文本文件;tac:逆向查看
- head查看前10行(默认);tail查看末尾10行
head/tail常结合管道符用于控制输出行数
cat myfile | head -5
- more:逐页查看,按空格翻页,按回车换行,q退出
- less:上下左右键查看文本内容;Enter键向下移动一行;空格键翻页;
/keyword
查找关键词;n
和N
进行上下关键词切换;q键退出;
常用参数:
less -N
:显示行号
less -S
:单行显示
zless
:查看压缩文件
4.2 文件内容统计wc
- wc
wc -l 统计行数
wc -w 统计字符串数
wc -c 统计字节数
cat readme.txt | wc -l
4.3 文本切割和合并cut, paste
- cut 文本切割(是按列来切割,准确的说是按照字段来切割)
常见参数:
cut -d
指定分隔符,默认\t;也可制定分隔符,比如使用h分隔,但只能使用单个字符。
cut -f
输出哪几列(字段fields)
less -SN Data/example.gtf |cut -f 1,3-5,7 |head
# ⚠️将Data/example.gtf文件按单行显示并切割,显示切割后1,3-5,7列的前10行
- paste 文本合并(不是上下合并 ,而是左右合并,相当于R语言中的cbind)
常见参数:
-d:指定分隔符(默认是tab)
-s:按行合并
常见用法:
1. paste file1 file2
2. seq 20 | paste - - (将seq20每2行合并在一起)
4.4 排序sort
常见参数:
sort -n
:按照数值从小到大进行排序
sort -V
:字符串中含有数值时,按照数值从小到大排序
sort -r:逆向排序
sort -k
:指定区域(对哪一列进行排序)
sort -t:指定分隔符
⚠️在对数字的列进行排序的时候,一定要先写-n再用-k选择列,否则结果会出错。
4.5 去除重复行uniq (sort的小尾巴)
uniq -c:统计每个字符串连续出现的行数
uniq比较懒,只能去除相邻的重复行! 因此记得要跟sort连用!
4.6 字符替换tr
用法:tr 被替换的内容 替换成的内容
cat readme.txt | tr '' '$' #将空格替换成$
常见参数:
-d:删除指定字符
-s:缩减连续重复字符
4.7 查找文件内容
grep 在内容中查找含某字符串的行
grep 某字符串(可正则式) /etc/passwd
文本操作重要命令小结
5. 链接文件ln
分软链接(常用)和硬链接(默认)
为什么要使用软链接:1. 相当于快捷方式,方便操作。2. 节省空间
常见参数:不加参数即为硬链接,加上–s 参数即为软链接,软链接的作用类似快捷方式。
常见用法:ln –s Target Directory
(链接谁,到哪去;将Target链接到Directory下。在链接的时候也可以像cp一样进行性重命名)
⚠️做软链接的时候一定要用绝对路径
⚠️删除软链接的时候不要用rm -r,否则会把链接过去的文件/文件夹中的内容也删掉
延伸:“软链接”和“硬链接”的区别
6. 压缩解压文件
tar:Tape Archive
常用参数:
-c 创建一个新的tar归档文件(创建压缩文件)
-d 或 --decompress 或 --uncompress :解压文件;
-r 或 --recursive :递归压缩,指定文件夹下的所有文件被压缩成单独的 .gz 文件;
-v 或 --verbose :显示指令执行过程。
-x 从已有的tar归档文件中提取文件(解压缩)
-f 输出结果到文件或设备
-v 在处理文件时显示文件(显示处理进度)
-j 将输出重定向给gzip2命令
-z 将输出重定向给gzip命令
常见用法:
解压:tar [参数] [待解压包]
tar -zxvf Data.tar.gz #-zxvf可以当成固定用法,顺序不能换
压缩:tar [参数] <压缩后文件名> [待压缩文件/目录]
tar -zcvf Data.tar.gz Data #-zcvf可以当成固定用法,顺序不能换
打包和压缩的区别:
打包是指将一大堆文件或目录变成一个总的文件
压缩是将一个大的文件通过一些压缩算法变成一个小文件。
Linux 中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip、bzip2或zip命令)。
7. 文件查找命令
7.1 which命令⚠️
环境变量PATH中保存了查找命令时需要遍历的目录,使用echo \$PATH
可以查看当前系统的环境变量包含的目录。
which命令用于查找并显示给定命令的绝对路径,which指令会在环境变量$PATH设置的目录里查找符合条件的文件 。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
语法:which [可执行性的系统命令]
说明:which是根据使用者所配置的PATH变量内的目录去搜寻可运行档的!所以不同的PATH配置内容所找到的命令不一样。
7.2 whereis命令
与which功能相似的还有一条命令whereis,也可以查找到命令的绝对路径。不同的是:which会列出这个命令的别名记录,而whereis会显示出这个命令的帮助文档所在位置。
语法:whereis(选项)(参数)
选项 | 说明 |
---|---|
-b | 只查找二进制文件; |
-B<目录> | 只在设置的目录下查找二进制文件; |
-f | 不显示文件名前的路径名称; |
-m | 只查找帮助文档; |
-M<目录> | 只在设置的目录下查找说明文件; |
-s | 只查找原始代码文件; |
-S<目录> | 只在设置的目录下查找 原始代码文件; |
-u | 查找不包含指定类型的文件。 |
whereis命令只能用于程序名的搜索,如果省略选项,则返回所有信息。
7.3 locate命令
格式:locate [搜索关键字]
说明:
1.是linux特有的命令,寻找文件或目录,最好用于快速定位系统命令,配置文件等。
2.虽然搜索速度很快,但有时会找不到
3.locate是在文件数据库中查找的,所以速度会很快
4.但是如果数据库中没有包含这个文件的话,就会找不到
7.4 find⚠️
find命令用于:在一个目录(及子目录)中搜索文件,可以指定匹配条件,如按文件名、文件类型、用户等条件查找文件。
格式:find [路径] [选项] filename
path路径,表示从这个路径下开始查找
选项 | 说明 |
---|---|
-name filename | 查找名为filename的文件 |
-size +/-大小 | 按照文件大小来查找,+大于,-小于 |
-user username | 按文件所属查找 |
-ctime/ -atime/ -mtime | 以天为单位查找 |
-cmin/ -amin/ -mmin | 以分钟为单位查找 |
-type | 按文件的类型 |
-inum | 根据i节点进行查找 |
-group | 组名 按所属组来查找 |
-a /-o | and/or |
-exec 或 -ok command {} : | 将查到的文件执行command操作,{}和:之间有空格,固定格式。 |
如果find命令省略路径不写,表示从当前路径开始查找。find还可以结合通配符使用。
8. 其他常用命令
8.1 查看各命令的帮助手册
man 命令名 查看命令帮助手册
8.2 下载文件
wget
参考:https://wangchujiang.com/linux-command/c/wget.html
curl
参考:https://wangchujiang.com/linux-command/c/curl.html
8.3 设备监控
top\df\free\du
sudo获得root权限:
ubuntu默认是不能以root账号登陆系统,遇到需要root权限时,需要在命令前加上sudo,即可获得root权限。