MENU

Linux常见命令笔记(一)

cp -r 递归复制 复制目录用

rm

-f:忽略提示删除

-r:s删除目录

mv file1 file2 :重命名文件file1到file2

cat/tac : 正序/倒序打印

head -n 3 /etc/passwd: 显示头3行,tail同理显示尾3行

tail -f :不停地读取某个文件的内容并显示

file :显示文件属性

declare TMP :创建变量TMP

TMP=test:将变量赋值为test

echo $TMP:读取TMP的值test

命 令说 明
set显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

按变量的生存周期来划分,Linux 变量可分为两类:

永久的:需要修改配置文件,变量永久生效;

临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。

搜索文件

whereis 简单快速

locate 快而全

which 小而精

find 精而细

find:命令格式为 find [path] [option] [action]

与时间相关的命令参数:

参数说明
-atime最后访问时间
-ctime最后修改文件内容的时间
-mtime最后修改文件属性的时间

下面以 -mtime 参数举例:

  • -mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
  • -mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
  • -mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
  • -newer file:file 为一个已存在的文件,列出比 file 还要新的文件名

列出 home 目录中,当天(24 小时之内)有改动的文件:

$ find ~ -mtime 0

压缩打包程序

zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop

-r 参数表示递归打包包含子目录的全部内容,

-q 参数表示为安静模式,即不向屏幕输出信息,

-o,表示输出文件,需在其后紧跟打包输出文件名。

后面使用 du 命令查看打包后文件的大小

unzip 命令解压缩 zip 文件

使用安静模式,将文件解压到指定目录:

$ unzip -q shiyanlou.zip -d ziptest

tar 打包工具

tar -cf test.tar /home/shiyanlou/Desktop

-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后,比如不能写成 tar -fc shiyanlou.tar,可以写成 tar -f shiyanlou.tar -c ~。你还可以加上 -v 参数以可视的的方式输出打包的文件

  • zip:

    • 打包 :zip something.zip something (目录请加 -r 参数)
    • 解包:unzip something.zip
    • 指定路径:-d 参数
  • tar:

    • 打包:tar -cf something.tar something
    • 解包:tar -xf something.tar
    • 指定路径:-C 参数

常见常用的压缩包文件格式

文件后缀名说明
*.zipzip 程序打包压缩的文件
*.rarrar 程序压缩的文件
*.7z7zip 程序压缩的文件
*.tartar 程序打包,未压缩的文件
*.gzgzip 程序(GNU zip)压缩的文件
*.xzxz 程序压缩的文件
*.bz2bzip2 程序压缩的文件
*.tar.gztar 打包,gzip 程序压缩的文件
*.tar.xztar 打包,xz 程序压缩的文件
*tar.bz2tar 打包,bzip2 程序压缩的文件
*.tar.7ztar 打包,7z 程序压缩的文件

查看磁盘和目录的容量:df -h

命令查看目录的容量:

du -h #同–human-readable 以K,M,G为单位,提高信息的可读性。
du -a #同–all 显示目录中所有文件的大小。
du -s #同–summarize 仅显示总计,只列出最后加总的值

dd命令用于复制文件并对原文件的内容进行转换和格式化处理

bs=<字节数>:将 ibs(输入)与 obs(输出)设成指定的字节数;
cbs=<字节数>:转换时,每次只转换指定的字节数;
conv=<关键字>:指定文件转换的方式;
count=<区块数>:仅读取指定的区块数;
ibs=<字节数>:每次读取的字节数;
obs=<字节数>:每次输出的字节数;
of=<文件>:输出到文件;
seek=<区块数>:一开始输出时,跳过指定的区块数;
skip=<区块数>:一开始读取时,跳过指定的区块数;
–help:帮助;
–version:显示版本信息

dd if=/dev/zero of=sun.txt bs=1M count=1

查看硬盘分区表信息
$ sudo fdisk -l

任务计划crontab

minute   hour   day   month   week   command# For details see man 4 crontabs# Example of job definition:.---------------------------------- minute (0 - 59) 表示分钟|  .------------------------------- hour (0 - 23)   表示小时|  |  .---------------------------- day of month (1 - 31)   表示日期|  |  |  .------------------------- month (1 - 12) OR jan,feb,mar,apr ... 表示月份|  |  |  |  .---------------------- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  表示星期(0 或 7 表示星期天)|  |  |  |  |  .------------------- username  以哪个用户来执行 |  |  |  |  |  |            .------ command  要执行的命令,可以是系统命令,也可以是自己编写的脚本文件|  |  |  |  |  |            |*  *  *  *  * user-name  command to be executed
sudo cron -f &   #启动定时任务服务crontab -e 添加  #添加定时任务0 3 * * * sudo rm /home/username/tmp/* #每天3点删除旧的定时任务0 3 * * * sudo cp /var/log/mysql/error.log /home/username/tmp/$(date +\%Y-\%m-\%d)  #每天3点备份error.log到tmp文件夹下并且格式是年-月-日的格式crontab -l #显示定时任务

管道

将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)

ls -al /etc | less      #列出/etc文件夹下的所有文件详细信息后用less命令逐个查看

cut 命令,打印每一行的某一字段

前五个(包含第五个)

$ cut /etc/passwd -c -5

前五个之后的(包含第五个)

$ cut /etc/passwd -c 5-

第五个

$ cut /etc/passwd -c 5

2到5之间的(包含第五个)

$ cut /etc/passwd -c 2-5

grep

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep命令常见用法
在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:

grep match_pattern file_name
grep “match_pattern” file_name
在多个文件中查找:

grep “match_pattern” file_1 file_2 file_3 …
输出除之外的所有行 -v 选项:

grep -v “match_pattern” file_name
标记匹配颜色 –color=auto 选项:

grep “match_pattern” file_name –color=auto
使用正则表达式 -E 选项:

grep -E “[1-9]+”

egrep “[1-9]+”
只输出文件中匹配到的部分 -o 选项:

echo this is a test line. | grep -o -E “[a-z]+.“
line.

echo this is a test line. | egrep -o “[a-z]+.“
line.
统计文件或者文本中包含匹配字符串的行数 -c 选项:

grep -c “text” file_name
输出包含匹配字符串的行数 -n 选项:

grep “text” -n file_name

cat file_name | grep “text” -n

#多个文件
grep “text” -n file_1 file_2
打印样式匹配所位于的字符或字节偏移:

echo gun is not unix | grep -b -o “not”
7:not

#一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项 -b -o 一般总是配合使用。
搜索多个文件并查找匹配文本在哪些文件中:

grep -l “text” file1 file2 file3…

wc

wc 命令用于统计并输出一个文件中行、单词和字节的数目

行数

$ wc -l /etc/passwd

单词数

$ wc -w /etc/passwd

字节数

$ wc -c /etc/passwd

字符数

$ wc -m /etc/passwd

最长行字节数

$ wc -L /etc/passwd

Title - Artist
0:00