跳转到内容
新建笔记

Linux 核心命令速查

序号命令解释
文件管理
1pwd打印当前工作目录pwd
2cd更改目录cd /home/user
3ls列出目录内容ls -l
4cat连接并打印文件cat file.txt
5cp复制文件或目录cp source.txt destination.txt
6mv移动或重命名文件或目录mv oldname.txt newname.txt
7mkdir创建目录mkdir new_directory
8rmdir删除空目录rmdir empty_directory
9rm删除文件或目录rm file.txt
10touch更改文件时间戳,如果文件不存在,会创建一个新文件touch file.txt
11find查找文件find . -name file.txt
12locate查找文件,与 find 相比,locate 查找速度更快,因为它使用了预先建立的数据库locate file.txt
13grep在文本中查找模式grep ‘pattern’ file.txt
14head输出文件的开头部分head file.txt
15tail输出文件的末尾部分tail file.txt
16diff比较文件差异diff file1.txt file2.txt
17tar文件打包和解包工具tar -cvf archive.tar directory/
18chmod更改文件权限chmod 755 script.sh
19chown更改文件所有者chown user:group file.txt
20ln创建链接ln -s target.txt symlink.txt
21less一个用于文件浏览的命令。与 cat 类似,但是它允许你进行分页。less file.txt
22split将文件分割为多个小文件。split -b 100M bigfile 把一个大文件分割为多个大小为 100M 的小文件
23tree以树形图列出目录结构。tree /home
wc计算文件⾏数(-l),单词数(-w),字符数(-c)
cut -b指定欲显⽰的文件内容范围,并将它们输出到标准输出设备比如:输出每⾏第 5 个到第 9 个字符cut -b 5-9 file.txt,千万不要和 cat 命令混淆,这是两个完全不同的命令
cat输出文件内容到标准输出设备(屏幕)上
file得到文件类型
read var提⽰⽤户输入,并将输入赋值给变量
sort对 file.txt 文件中的⾏进⾏排序
uniq报告或删除文件中重复的行: sort file.txt | uniq
expr进⾏数学运算,比如运⾏ expr 2 ”+” 3 得到结果为 5
tee将数据输出到标准输出设备(屏幕) 和文件比如:ls | tee outfile
basename返回不包含路径的文件名比如: basename /bin/tux 将返回 tux
dirname返回文件所在路径比如:dirname /bin/tux 将返回 /bin
sedsed 是⼀个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出 到标准输出(屏幕)。该命令采⽤正则表达式(⻅参考)进⾏搜索。不要和 shell 中的通配符相 混淆。比如:将 linuxfocus 替换为 LinuxFocus :cat text.file | sed ‘s/linuxfocus/LinuxFocus/’ > newtext.files/表示替换
awkawk ⽤来从文本文件中提取字段。缺省地,字段分割符是空格,可以使⽤ -F 指定其他分割 符。cat file.txt | awk -F, '{print $1 "," $3 }这⾥我们使⽤ , 作为字段分割 符,同时打印第⼀个和第三个字段。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, 该命令输出结果为:Adam Bor, IndiaKerry Miller, USA
进程管理
jobs列出当前会话中的任务jobs
kill终止进程kill PID
top显示系统摘要信息,包括正在运行的进程top
ps显示当前进程ps aux
killall根据进程名终止进程killall processname
系统信息和网络
1df显示磁盘使用情况df -h
2du显示目录和文件的磁盘使用情况du -sh directory/
3uname打印系统信息uname -a
4ping发送 ICMP 请求来测试网络连接ping www.google.com
5wget从网络下载文件wget http://website.com/file.txt
6hostname显示或设置系统主机名hostname
7ip显示或配置网络接口ip addr show
8netstat显示网络统计信息netstat -an
9ssh安全地登录到远程服务器ssh user@server.com
10whoami打印当前有效的用户名称whoami
11uptime显示系统已运行的时间uptime
12lsblk列出所有块设备的信息lsblk
13blkid列出所有块设备的 UUIDblkid
14lsusb列出 USB 设备lsusb
15free显示系统的内存使用情况free -h
用户管理
1sudo执行命令作为其他用户,通常为超级用户sudo apt-get update
2useradd添加用户useradd newuser
3passwd更改用户密码passwd username
4chage更改用户密码过期信息chage -l username
5chfn更改用户指纹信息chfn username
6chsh更改用户的默认 shellchsh -s /bin/bash username
7usermod修改用户账户usermod -a -G groupname username
8groupadd添加组groupadd newgroup
9groupdel删除组groupdel groupname
10groupmod修改组groupmod -n newgroupname oldgroupname
其他
1echo输出一行文本echo “Hello, World!”
2date显示或设置系统日期和时间date
3exit退出 shell 或终止 shell 脚本exit
4shutdown关闭系统shutdown -h now
5reboot重启系统reboot
6alias创建命令别名alias ll=‘ls -l’
7unalias删除已定义的别名unalias ll
8history显示命令历史history
9man显示命令的手册页man ls
10zip创建 zip 压缩文件zip archive.zip file.txt
11unzip解压 zip 压缩文件unzip archive.zip
12sleep暂停一段时间sleep 5
13clear清除屏幕clear
14env显示环境变量env
15export设置环境变量export VAR=value
16rsync同步文件和目录rsync -a source/ destination/
序号方法命令或工具描述
1查看系统日志cat, less, tail /var/log/syslog查看系统日志文件,实时输出最新日志。
2使用dmesgdmesg查看或控制内核环形缓冲区的日志信息。
3使用journalctljournalctl查看systemd的日志,替代旧的/var/log/messages。
4查看特定服务日志journalctl -u servicename查看特定服务的日志。
5查看特定时间日志journalctl --since "YYYY-MM-DD"查看特定时间点之后的日志。
6查看APT日志/var/log/apt/查看APT软件包管理器的日志。
7查看YUM日志/var/log/yum.log查看基于RPM的系统的包管理器日志(CentOS, Fedora等)。
8查看Dpkg日志/var/log/dpkg.log查看Debian系系统的包管理器日志。
9查看内核日志/var/log/kern.log查看内核级别的日志信息。
10查看认证日志/var/log/auth.log查看认证相关的日志,如用户登录尝试。
11查看SSH日志/var/log/auth.log 或 /var/log/secure查看SSH服务的登录尝试和连接日志。
12查看Web服务器日志/var/log/nginx/access.log, /var/log/httpd/查看Web服务器的访问日志。
13查看防火墙日志/var/log/firewalld/ 或 /var/log/ufw.log查看防火墙的日志,如iptables或firewalld。
14查看Cron日志/var/log/cron.log查看定时任务的执行日志。
15查看邮件日志/var/log/maillog查看邮件服务的日志。
16查看Xorg日志/var/log/Xorg.0.log查看图形界面服务器的日志。
17查看自定义应用日志根据应用而定查看特定应用程序生成的日志,路径和格式根据应用而异。
18使用logrotate管理日志/etc/logrotate.conf 和 /etc/logrotate.d/查看和管理日志轮转配置和日志文件。

以下是which、where、locate 和 find 工具的主要区别和使用示例,列成表格:

工具用途示例注意事项
which查找并显示可执行命令的位置。which ls主要用于查找系统 $PATH 中的可执行文件。
where类似于 which,用于查找可执行命令的位置,显示所有匹配的文件。where ls不是所有系统都默认安装 where。
locate使用预先构建的文件数据库快速查找文件。locate filename利用系统数据库,速度较快,但可能不实时。
find递归地在文件系统中查找符合条件的文件。find /path/to/search -name "*.txt"提供更灵活和强大的搜索功能,递归查找文件。

请注意,表格中的示例可能需要根据实际情况进行修改,特别是在使用 find 命令时,根据你的搜索条件进行调整。

命令描述示例
shutdown用于安全地关闭或重启系统sudo shutdown -h now(立即关机)
sudo shutdown -h +10(10分钟后关机)
poweroff立即关闭系统sudo poweroff
halt立即关闭系统,-p参数表示关闭系统时不进行标准的关闭操作sudo halt -p
init切换到运行级别0以关机,0代表关机sudo init 0
systemctl使用systemd系统管理器关机sudo systemctl poweroff
reboot重启系统,如果需要重启而不是关机sudo reboot
终端窗口
-cp 表⽰cp命令报错了不会停⽌,继续执⾏下⾯的操作。
@cp 终端中不会打印出命令的执⾏。
declare
-i 整型变量。
-a 数组。
-f 列出所有定义过的函数。
-x 将声明的变量作为脚本的环境变量导出。
shift 左移参数,shift 3表⽰$4变成$1 不带参数的话默认为 shift 1。

命令中出现的双横杆--是什么?

双横杆 -- 是为了告诉命令,后面的内容不是命令参数,标识命令参数结束(marks the end of options),比 如我要生成一个名为 -f 的文件:

终端窗口
# 使⽤该命令会保存
$ touch -f
usage:
touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
# 加双横杆
$ touch -- -f
# 查看⽣成的文件
$ ll
-rw-r--r-- 1 xxw staff 0B 9 29 17:43 -f

在 Linux 中,你可以使用pushd和popd命令来临时记住当前目录并切换到其他目录。这两个命令可以在 shell 中保存目录堆栈,让你轻松地在不同目录之间切换。

  1. pushd 命令:

    • pushd命令将当前目录压入堆栈,并切换到指定的目录。
    终端窗口
    pushd /path/to/other/directory
    • 这样,你就会切换到指定目录,并将当前目录压入堆栈。
  2. popd 命令:

    • popd命令将目录堆栈的顶部目录弹出,并切换回该目录。
    终端窗口
    popd
    • 这样,你就会返回到之前保存的目录。

示例:

终端窗口
$ pwd
/home/user/original_directory
$ pushd /path/to/other/directory
/home/user/other/directory /home/user/original_directory
# You are now in /path/to/other/directory
$ popd
/home/user/original_directory
# You are back in the original directory

这种方法在需要在不同目录之间频繁切换时非常方便。