Linux常用命令

2.6k words

目录与文件

目录

  1. 创建目录:mkdir xxx
  2. 删除目录:rm -rf xxx
  3. 切换目录:cd xxx,返回:cd -
  4. 复制目录:cp ./test ./test3 -r -p-r表示递归,-p表示保留文件属性

文件

  1. 创建文件:touch xxx.txt
  2. 复制文件:cp xxx.txt newxxx.txt
  3. 查看文件:cat xxx.txt,最后5行:cat xxx.txt | tail -n 5

其他

  1. 显示列表:ls -lh
  2. 连接文件夹:ln -s 源文件夹 目标文件夹

压缩解压

  1. zip加密:zip -r xxx.zip ./* -P "123",解密:unzip -P "123" xxx.zip
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 更新现有的文件。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式> 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。
  1. tar压缩:tar -zcvf xxx.tar.gz ./*,tar解压:tar -zxvf xxx.tar.gz -C /opt
1
2
3
4
5
c:  创建文档
t: 列出存档内容
x: 提取存档
f: filename 要操作的文档名
v: 详细信息

过滤、管道与重定向

  1. 文件内容查找
1
2
3
4
#过滤出文件 /etc/passwd 中包含 `root` 的记录
grep 'root' /etc/passwd
#过滤出目录 /var/log/ 目录中包含linux的记录(递归查找)
grep -r 'linux' /var/log/
  1. 输出过滤
1
2
#打印/etc/passwd 文件中包含 `root` 的记录
cat /etc/passwd \| grep 'root'
  1. 输出重定向
1
2
#输出重定向到一个文件中
echo 'Hello World' > test.txt

运维命令

  1. 测试网络
1
2
#发送 4 个 ping 包, 检查与其是否联通
ping -c 4 cloud.tencent.com
  1. 端口查询
1
2
3
4
5
6
#列出所有处于监听状态的tcp端口
netstat -lt
#查看所有的端口信息, 包括 PID 和进程名称
netstat -tulpn
#查看系统位数
getconf LONG_BIT
  1. 进程操作
1
2
3
4
5
6
7
8
9
#查询运行的进程
ps -elf
#过滤查询进程
#a不与terminal有关的所有进程; u有效用户进程; x完整的信息
ps aux | grep 'ssh'
#动态显示运行的进程(动态表格)
top
#杀进程
killall -9 xxxx
  1. NFS挂载
1
2
3
4
#挂载目录d:\demo到/mnt/cp下(cp目录需要先创建)
mount -t nfs -o nolock 10.13.150.244:/d/demo /mnt/cp
#卸载目录
mount -v /mnt/cp

日期时间

获取系统时间:date,输入格式:Tue Sep 14 11:05:51 CST 2021

其中CST表示上海时区,如果是UTC,则表示伦敦时区。如果想设置系统时区位东八区(北京时间),则运行以下命令:

1
2
3
4
5
#当前UTC时间减8小时
cstTimeStr=$(date '+%Y-%m-%d %H:%M:%S' -d@$(($(date +%s)-60*60*8)))
date -s "$cstTimeStr"
#拷贝时区文件
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date命令用法:%Y表示年,%m表示月,%d表示日,%H表示小时,%M表示分钟,%S表示秒,%s表示从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数。

1
2
3
4
5
6
7
8
#显示时间
date "+cur time: %Y-%m-%d %H:%M:%S"
#显示计算之后的时间
date "+cur time: %Y-%m-%d %H:%M:%S" -d "-3 hour"
#时间戳
date +%s
#设置时间
date -s "2050-09-01 01:05:30"

查找

查找命令:find [path] [option] [action]

通过文件时间进行查找:

1
2
3
4
#查找目录下今天修改的文件
find ./ -mtime 0
#查找目录下昨天修改的文件
find ./ -mtion 1

通过文件名与大小进行查找:

1
2
3
4
#查找文件名
find ./ -name 'config.ini'
#查找大于10k的文件
find ./ -size +10k

系统

  1. 查询支持的文件系统:cat /proc/filesystems
  2. 查询网卡的mac地址:cat /sys/class/net/eth0/address
Comments