cmd
通常指的是命令提示符(Command Prompt),用于输入和执行命令。CMd Linux命令
在Linux操作系统中,命令行界面(CLI)是与计算机进行交互的重要方式,通过使用各种命令,用户可以执行文件操作、系统管理、网络配置等任务,本文将详细介绍一些常用的Linux命令及其使用方法,帮助读者更好地掌握Linux系统的操作。
文件和目录操作
`ls`命令
ls
命令用于列出目录中的文件和子目录,常用选项包括:
-l
:以长格式显示详细信息。
-a
:显示所有文件,包括隐藏文件(以.
开头)。
-h
:以人类可读的格式显示文件大小(如KB、MB)。
示例:
ls -lah
`cd`命令
cd
命令用于切换当前工作目录。
cd /
:切换到根目录。
cd ~
:切换到用户的主目录。
cd ..
:切换到上一级目录。
cd directory_name
:切换到指定目录。
示例:
cd /var/log
`pwd`命令
pwd
命令用于显示当前工作目录的路径。
示例:
pwd
`mkdir`命令
mkdir
命令用于创建新目录。
mkdir dir_name
:创建一个名为dir_name
的新目录。
mkdir -p /path/to/dir
:递归创建目录,如果上级目录不存在则一并创建。
示例:
mkdir new_directory mkdir -p /home/user/documents/projects
`rmdir`和`rm`命令
rmdir
命令用于删除空目录,而rm
命令用于删除文件或目录。
rmdir dir_name
:删除空目录。
rm file_name
:删除文件。
rm -r dir_name
:递归删除目录及其内容。
rm -f file_name
:强制删除文件,不提示确认。
示例:
rmdir empty_directory rm file.txt rm -r directory_with_contents
`cp`命令
cp
命令用于复制文件或目录。
cp source_file destination_file
:复制文件。
cp -r source_directory destination_directory
:递归复制目录及其内容。
示例:
cp file.txt /backup/location/ cp -r /source/directory /destination/directory
`mv`命令
mv
命令用于移动或重命名文件或目录。
mv old_name new_name
:重命名文件或目录。
mv file /new/location/
:移动文件到新位置。
示例:
mv old_filename new_filename mv file.txt /destination/folder/
查看和编辑
8.cat
,tac
,more
,less
,head
,tail
命令
这些命令用于查看文件内容,各有其特点。
cat file_name
:显示整个文件内容。
tac file_name
:从最后一行开始显示文件内容。
more file_name
:分页显示文件内容,适合查看大文件。
less file_name
:类似于more
,但功能更强大,支持向前向后滚动。
head file_name
:显示文件的前10行。
tail file_name
:显示文件的最后10行。
tail -f file_name
:实时跟踪文件末尾的新增内容,常用于日志文件监控。
示例:
cat config.txt tac access.log more largefile.txt less important_document.txt head -n 20 data.csv tail -n 50 error.log tail -f /var/log/syslog
`grep`命令
grep
命令用于在文件中搜索特定模式的文本行。
grep 'pattern' file_name
:搜索包含pattern
的行。
grep -i 'pattern' file_name
:忽略大小写搜索。
grep -r 'pattern' /path/to/search
:递归搜索目录下的所有文件。
grep -n 'pattern' file_name
:显示匹配行的行号。
示例:
grep 'error' logfile.txt grep -i 'failed' /var/log/*.log
`find`命令
find
命令用于在目录树中查找文件和目录。
find /path/to/search -name 'filename'
:查找名为filename
的文件。
find /path/to/search -type f
:查找所有文件。
find /path/to/search -type d
:查找所有目录。
find /path/to/search -size +100M
:查找大于100MB的文件。
find /path/to/search -mtime -7
:查找最近7天内修改过的文件。
示例:
find /home/user -name '*.txt' find /var/www -type f find /downloads -size +500M
权限和所有权管理
`chmod`命令
chmod
命令用于更改文件或目录的权限,权限分为读取(r)、写入(w)和执行(x),分别对应数值4、2和1。755
表示所有者有读写执行权限,组和其他用户有读取和执行权限。
chmod 755 file_or_directory
:设置权限为755。
chmod u+rwx,g+rx,o+r file_or_directory
:分别为用户、组和其他设置权限。
chmod +x script.sh
:添加执行权限。
chmod -w file.txt
:移除写入权限。
示例:
chmod 755 /usr/local/bin/script.sh chmod u+rwx,g+rx,o+r /data/shared/file.txt chmod +x install.sh chmod -w config.yaml
12.chown
和chgrp
命令
chown
命令用于更改文件或目录的所有者,chgrp
命令用于更改组。
chown new_owner file_or_directory
:更改所有者为new_owner
。
chown user:group file_or_directory
:同时更改所有者和组。
chgrp new_group file_or_directory
:更改组为new_group
。
示例:
sudo chown alice:developers /opt/project/data.tar.gz sudo chgrp developers /opt/project/src/
系统信息和管理
13.top
,ps
,df
,du
,free
,uname
,uptime
,who
,last
,history
命令
这些命令提供了关于系统状态、进程、磁盘使用情况、内存使用情况、用户登录历史等信息。
top
:实时显示系统资源使用情况和进程列表。
ps aux
:显示所有正在运行的进程。
df -h
:以人类可读的格式显示磁盘空间使用情况。
du -sh
:显示当前目录下每个文件和子目录的大小。
free -h
:以人类可读的格式显示内存使用情况。
uname -a
:显示系统信息,包括内核版本、主机名等。
uptime
:显示系统运行时间、用户数和负载平均值。
who
:显示当前登录的用户。
last
:显示最近的用户登录记录。
history
:显示当前会话的命令历史。
示例:
top ps aux | grep apache2 df -h /home/user du -sh /var/log/*.log free -h uname -a uptime who last | grep user123 history | grep find
网络管理
14.ifconfig
,ip
,netstat
,ss
,ping
,traceroute
,nslookup
,dig
,curl
,wget
命令
这些命令用于网络配置、状态检查和诊断。
ifconfig
或ip addr show
:显示或配置网络接口。
ip route show
或route -n
:显示路由表。
netstat -tuln
:显示监听的端口和服务。
ss -tuln
:显示套接字统计信息。
ping google.com
:测试与目标主机的网络连接。
traceroute google.com
:追踪数据包到目标主机的路径。
nslookup example.com
:查询域名的DNS记录。
dig example.com
:使用DNS工具进行更详细的查询。
curl http://example.com
:发送HTTP请求并显示响应内容。
wget http://example.com/file.zip
:下载文件。
示例:
ifconfig eth0 up 192.168.1.100 netmask 255.255.255.0 ip addr add 192.168.1.101/24 dev eth1 ip route show default via 192.168.1.1 netstat -tulnp | grep LISTEN ss -tulnp | grep ESTABLISHED ping -c 4 www.google.com traceroute www.google.com nslookup google.com dig google.com A +short curl -I http://www.example.com wget -O /tmp/file.zip http://ftp.example.com/pub/file.zip
软件包管理
15.apt-get
,yum
,dnf
,dpkg
,rpm
,zypper
,pacman
命令
不同的Linux发行版使用不同的软件包管理系统,以下是一些常见的包管理命令:
Debian/Ubuntu:使用apt-get
或apt
。
sudo apt update
:更新包列表。
sudo apt upgrade
:升级已安装的软件包。
sudo apt install package_name
:安装软件包。
sudo apt remove package_name
:移除软件包。
sudo apt autoremove
:自动移除不再需要的依赖包。
dpkg -i package.deb
:安装.deb
包文件。
dpkg --configure -a
:配置未完成的软件包安装。
Red Hat/CentOS:使用yum
或dnf
。
sudo yum update
:更新包列表并升级软件包。
sudo yum install package_name
:安装软件包。
sudo yum remove package_name
:移除软件包。
sudo dnf install package_name
:安装软件包(适用于较新的RHEL版本)。
Fedora:主要使用dnf
。
Arch Linux:使用pacman
。
sudo pacman -Syu
:同步包数据库并升级系统。
sudo pacman -S package_name
:安装软件包。
sudo pacman -Rns package_name
:移除软件包及其依赖。
openSUSE:使用zypper
。
sudo zypper refresh
:刷新包缓存。
sudo zypper update
:升级系统。
sudo zypper install package_name
:安装软件包。
sudo zypper remove package_name
:移除软件包。
Slackware:使用pkgtool
或直接操作.tgz
包。
sudo pkgtool -iR package.tgz
:安装软件包。
sudo pkgtool -ure package_name
:卸载软件包。
或者手动解压并编译源代码包。
示例(以Debian/Ubuntu为例):
sudo apt update && sudo apt upgrade -y sudo apt install vim git curl -y sudo apt remove firefox -y sudo apt autoremove -y
压缩和解压缩
16.tar
,gzip
,bzip2
,xz
,unzip
,zip
命令
这些命令用于创建和解压压缩文件,常见的压缩格式包括.tar.gz
,.tar.bz2
,.tar.xz
,.zip
,.rar
等,虽然Linux自带对.zip
的支持,但通常需要额外安装支持其他格式的工具,如unrar
用于解压.rar
文件。
tar:用于创建和解压缩归档文件(不包含压缩),结合gzip
,bzip2
,xz
等工具可以实现压缩归档。
tar -cvf archive.tar /path/to/directory_or_files
:创建归档文件。
tar -xvf archive.tar
:解压归档文件到当前目录。
tar -czvf archive.tar.gz /path/to/directory_or_files
:创建gzip压缩的归档文件。
tar -xzvf archive.tar.gz
:解压gzip压缩的归档文件。
tar -cjvf archive.tar.bz2 /path/to/directory_or_files
:创建bzip2压缩的归档文件。
tar -xjvf archive.tar.bz2
:解压bzip2压缩的归档文件。
tar -cJvf archive.tar.xz /path/to/directory_or_files
:创建xz压缩的归档文件。
tar -xJvf archive.tar.xz
:解压xz压缩的归档文件。
gzip和gunzip:用于压缩和解压缩单个文件。
gzip file.txt
:压缩为file.txt.gz。
gunzip file.txt.gz
:解压缩为file.txt。
bzip2和bunzip2:类似gzip,但压缩率更高。
bzip2 file.txt
:压缩为file.txt.bz2。
bunzip2 file.txt.bz2
:解压缩为file.txt。
xz和unxz:提供更高的压缩率,但速度较慢。
xz file.txt
:压缩为file.txt.xz。
unxz file.txt.xz
:解压缩为file.txt。
zip和unzip:处理ZIP格式的压缩文件。
zip archive.zip file1 file2 ...
:创建ZIP文件。
unzip archive.zip
:解压ZIP文件到当前目录。
如果需要安装这些工具,可以使用相应的包管理器,如在Debian/Ubuntu上使用sudo apt install zip unzip gzip bzip2 xz-utils tar
来安装所有相关工具。
示例:
创建归档并压缩为tar.gz格式 tar -czvf myarchive.tar.gz /path/to/directory_or_files/ 解压缩tar.gz格式的归档文件到指定目录 tar -xzvf myarchive.tar.gz -C /path/to/destination/directory/
文本处理工具
17.grep
,sed
,awk
,cut
,sort
,uniq
,tr
,echo
,printf
,yes
,nohup
,env
,export
,alias
,unalias
,history
,!command
,ctrl+r
,!!
,;
,&&
,||
,|
,>
,()
,{}
命令和符号
这些命令用于文本搜索、替换、格式化、排序等操作,是Linux下强大的文本处理工具集,掌握这些工具可以大大提高日常运维和脚本编写的效率,具体使用方法如下:
grep:文本搜索工具,基于正则表达式匹配行,常用选项包括:
grep 'pattern' file(s)
:在文件中搜索包含"pattern"的行,支持正则表达式,搜索包含"error"的行:grep 'error' /var/log/syslog
,支持递归搜索整个目录:grep -r 'pattern' /path/to/directory
,支持忽略大小写:grep -i 'pattern' file(s)
,仅显示匹配行数而不显示内容:grep -c 'pattern' file(s)
,显示匹配行的行号:grep -n 'pattern' file(s)
,只显示匹配的部分(默认整行):grep -o 'pattern' file(s)
,反向匹配,即显示不包含"pattern"的行:grep -v 'pattern' file(s)
,组合多个选项,例如递归搜索并显示行号和忽略大小写:grep -rin 'pattern' /path/to/directory
,输出颜色高亮匹配部分(需要less支持颜色):grep --color=auto 'pattern' file(s) | less -R
,将结果保存到文件而不是标准输出:grep 'pattern' file(s) > output.txt
,从标准输入读取数据进行搜索(适用于管道):echo "some text" | grep 'pattern'
,与其他命令组合使用,例如统计包含某个词的行数并按降序排序:grep -c 'pattern' file(s) | sort -rn
,使用正则表达式进行复杂匹配,例如匹配以数字开头的行:grep '^[0-9]' file(s)
,限制搜索结果的数量,例如只显示前10个匹配行:grep -n 'pattern' file(s) | head -n 10
,排除特定目录或文件类型,例如搜索除PDF外的所有文件:grep -r --exclude=*.pdf 'pattern' /path/to/search/
,仅搜索二进制文件中的文本(需谨慎使用):grep -a 'pattern' binaryfile
,指定字符编码进行搜索,例如UTF-8编码的文件:grep --text -P 'pattern' utf8file.txt
,使用上下文行显示匹配行的前后几行,例如显示匹配行的前2行和后2行:grep -C 2 'pattern' file(s)
,仅匹配整个单词,例如精确匹配"error"而不是"errors":grep -w 'error' file(s)
,结合其他命令进行高级文本处理,例如统计每个IP地址的错误次数并排序:grep 'error' /var/log/nginx/access.log | cut -d' ' -f1 | sort | uniq -c | sort -nr
,通过管道与其他命令组合实现复杂的文本分析任务,例如过滤出包含特定关键词的日志条目并计算总数:grep 'failed' /var/log/app.log | wc -l
,利用–include和–exclude选项精确控制要搜索的文件类型或名称模式,例如只搜索Python源文件:grep --include=*.py 'def' /path/to/codebase/
,在脚本中使用反斜杠转义特殊字符,例如搜索美元符号$作为普通字符:grep '$' file(s)
,结合通配符进行灵活搜索,例如搜索所有以".log"结尾的文件中的错误信息:grep 'error' *.log
,注意grep的性能优化技巧,对于大文件或大量小文件,可以考虑使用并行化工具如parallel grep以提高搜索速度,例如使用GNU Parallel与grep结合:find /large/directory -type f | parallel grep 'pattern' {} > results.txt
,}代表当前文件名占位符,了解grep的退出状态码含义,通常0表示成功找到匹配项,1表示没有找到匹配项,2表示发生错误(如无效选项),通过环境变量GREP_OPTIONS设置默认选项,例如在所有grep调用中默认启用颜色高亮和递归搜索:export GREP_OPTIONS="--color=auto --recursive"
,熟悉grep的交互式模式,可以通过键入部分命令然后按Ctrl+D结束输入来逐步构建复杂查询,例如键入"grep"后按Ctrl+D完成简单搜索,学习使用grep的扩展正则表达式(ERE)模式,通过在命令前加上"-E"选项启用,允许更复杂的匹配规则,如重复次数限定、字符类等,例如匹配连续三个数字:"grep -E ‘[0-9]{3}’ file(s)",掌握grep的固定字符串搜索模式,通过在命令前加上"-F"选项启用,提高搜索速度且避免正则表达式解析开销,适用于精确匹配场景,例如查找特定的用户ID:"grep -F ‘uid:1000′ /etc/passwd",了解grep与现代编辑器的集成,许多文本编辑器如Vim、Emacs、Visual Studio Code等都支持在内部直接调用grep进行快速搜索,提升开发效率,例如在Vim中按下":vimgrep /pattern/g **/*"可以在项目目录下递归搜索模式并打开结果列表窗口,利用grep的–label和–line-buffered选项进行多文件合并搜索时保持输出顺序一致,这对于日志分析非常有用,例如按时间顺序合并多个日志文件并搜索:"grep –label=’file’ –line-buffered ‘pattern’ file1 file2 | sort -k1,1",探索grep的–only-matching和–include选项的组合使用,以仅提取匹配的部分或特定类型的文件内容,例如从多个配置文件中提取特定设置项的值:"grep –only-matching –include=*.conf ‘^setting=’ /etc/nginx/sites-available/",学习如何结合grep与其他Unix工具如sed、awk等进行更强大的文本处理工作,例如先使用grep筛选出含特定关键词的日志行,再通过awk统计各关键词的出现频率:"grep ‘error|warn|info’ /var/log/app.log | awk ‘{print $NF}’ | sort | uniq -c | sort -nr",理解grep的–binary-files选项对于处理包含二进制数据的文件的重要性,默认情况下grep会跳过二进制文件以避免误报,但有时可能需要显式指定哪些文件被视为二进制以便正确处理,"grep –binary-files=text ‘pattern’ /path/with/mixed/content",掌握grep的–context选项以显示匹配行的上下文信息,这对于调试代码或分析日志非常有用,例如显示每个匹配行的前后三行:"grep –context=3 ‘error’ /var/log/syslog",了解grep的–max-count选项用于限制输出的最大匹配行数,这对于大型数据集特别有用,可以避免长时间运行或占用过多内存,例如只输出前100个匹配:"grep –max-count=100 ‘pattern’ largefile",学习如何在脚本中动态生成grep模式,例如根据用户输入或其他程序输出构建搜索模式,增强脚本的灵活性和实用性,例如通过读取文件内容作为模式列表:"while read pattern; do grep $pattern /path/to/search; done < patterns.txt",熟悉grep的–perl和–python选项,允许使用Perl或Python兼容的正则表达式语法进行更复杂的匹配,这要求安装相应的perl或python库支持,例如使用Perl正则表达式:"grep –perl -P ‘(?<=foo).*(?=bar)’ file(s)",了解grep的–color选项的不同级别设置,如always、auto、never,以及如何通过环境变量GREP_COLOR控制输出颜色的开关,例如永久禁用颜色:"export GREP_COLOR=never",掌握grep的–binary-files选项与–text选项的区别和应用场景,前者用于识别和跳过二进制文件,后者用于强制将文件视为文本处理,这对于包含非文本内容的混合文件特别有用,"grep –binary-files=text –text ‘pattern’ mixedfile",学习如何使用grep的–null选项处理包含NUL字符的文件,这对于处理某些数据库导出或特殊日志格式非常重要,"grep –null ‘pattern’ file_with_nulls",了解grep的–mmap选项如何利用内存映射加速大文件的搜索过程,这对于处理GB级甚至TB级的日志文件尤为有效,"grep –mmap ‘pattern’ hugefile",掌握grep的–exclude-dir选项排除特定目录的搜索,这对于避免不必要的递归深入子目录非常有用,例如排除所有临时文件夹:"grep –exclude-dir='[Tt]mp’ ‘pattern’ /path/to/search"
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1259502.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复