Linux 速成教程 - 1、基础命令

Linux 速成教程 - 基础命令

一、文件管理命令

1. 目录操作

ls 命令
  • 功能:列出目录内容,支持使用通配符*进行文件名模式匹配,可列出符合特定模式的文件或目录。

  • 常见参数:

    • -l:以长格式显示文件和目录的详细信息,包括文件权限、所有者、大小、修改时间等。

    • -a:显示所有文件和目录,包括隐藏文件(以点开头的文件)。

    • -h:与-l一起使用,以人类可读的方式显示文件大小,例如1K、2M等。

示例:

 ls -l  # 以长格式显示当前目录内容 
 ls -a  # 显示当前目录下所有文件和目录 
 ls -lh # 以长格式和人类可读方式显示当前目录内容
 ls *.txt  # 列出当前目录下所有txt文件
 ls -l backup*  # 以长格式列出当前目录下所有以backup开头的文件和目录
cd 命令
  • 功能:切换目录。
  • 常见用法:
    • cd 目录路径:切换到指定目录。例如cd /home,切换到/home目录。
    • cd…:返回上一级目录。
    • cd ~:回到当前用户的主目录。

示例:

cd /var/log  # 切换到 /var/log 目录
cd..        # 返回上一级目录
cd ~         # 回到用户主目录
mkdir 命令
  • 功能:创建目录。
  • 常见参数:
    • -p:递归创建目录,即如果父目录不存在,会自动创建。

示例:

mkdir new_dir        # 在当前目录下创建名为 new_dir 的目录
mkdir -p parent/child # 创建 parent 目录及其子目录 child

2.文件操作

cp 命令
  • 功能:复制文件或目录,支持通配符*来批量复制符合特定文件名模式的文件或目录。
  • 常见参数:
    • -r:递归复制目录及其子目录和文件,用于复制目录。

    • -i:在覆盖目标文件前提示用户确认。

示例:

cp file1.txt file2.txt  # 复制 file1.txt 为 file2.txt
cp -r dir1 dir2         # 复制 dir1 目录及其内容到 dir2
cp *.log backup/  # 将当前目录下所有log文件复制到backup目录
cp -r project_* new_project/  # 将当前目录下所有以project_开头的目录及其内容复制到new_project目录
mv 命令
  • 功能:移动文件或目录,也可用于重命名,支持通配符*来批量移动或重命名符合特定文件名模式的文件或目录。

示例:

mv file1.txt /new_dir/  # 将 file1.txt 移动到 /new_dir 目录
mv old_name new_name    # 将文件或目录 old_name 重命名为 new_name
mv *.tmp temp_files/  # 将当前目录下所有tmp文件移动到temp_files目录
mv report_* /archive/  # 将当前目录下所有以report_开头的文件和目录移动到/archive目录
rm 命令
  • 功能:删除文件或目录,支持通配符*来批量删除符合特定文件名模式的文件或目录,但使用时需谨慎,尤其是配合-f参数强制删除时,以免误删重要数据。
  • 常见参数:
    • -r:递归删除目录及其子目录和文件,用于删除目录。
    • -f:强制删除,不提示确认,谨慎使用,以免误删重要数据。
    • -i:在删除前提示用户确认。

示例:

rm file.txt  # 删除文件file.txt,删除前会提示确认
rm -r dir  # 递归删除目录dir及其内容,删除前会提示确认
rm -f force_delete_file.txt  # 强制删除文件force_delete_file.txt,不提示确认
rm -ri important_dir  # 递归删除目录important_dir及其内容,每次删除前都提示确认
rm -i *.swp  # 提示确认是否删除当前目录下所有swp临时文件
rm -rf temp_*  # 强制递归删除当前目录下所有以temp_开头的文件和目录,谨慎使用
which 命令
  • 功能:查找并显示给定命令的可执行文件路径,用于确定某个命令在系统中的位置。

示例:

which ls  # 查找ls命令的可执行文件路径
which java  # 查找java命令的可执行文件路径
find 命令
  • 功能:在指定目录及其子目录中查找文件或目录,支持根据文件名、文件大小、修改时间等多种条件进行查找,在-name参数按照文件名查找时,支持通配符*来进行灵活的文件名匹配。
  • 常见参数:
    • -name:按照文件名查找。
    • -size:按照文件大小查找。
    • -mtime:按照文件修改时间查找。

示例:

find /home -name "*.txt"  # 在/home目录及其子目录中查找所有txt文件
find /tmp -name "temp_file*"  # 在/tmp目录及其子目录中查找以temp_file开头的文件
find / -size +10M  # 在根目录及其子目录中查找大于10MB的文件
find / -size -500k  # 在根目录及其子目录中查找小于500KB的文件
find /var/log -mtime -3  # 在/var/log目录及其子目录中查找最近3天内修改过的文件
find /var/log -mtime +7  # 在/var/log目录及其子目录中查找7天前修改过的文件
find /data -name "*_backup_*.zip"  # 在/data目录及其子目录中查找文件名包含_backup_且后缀为.zip的文件

二、权限管理命令

1. chmod 命令

  • 功能:改变文件或目录的权限。
  • 权限表示方法:
    • 字母表示法:r(读)、w(写)、x(执行)。
    • 数字表示法:r对应 4,w对应 2,x对应 1 。
  • 常见参数:
    • u:用户(所有者)。
    • g:组。
    • o:其他用户。
    • a:所有用户。
  • 数字权限表示法详细解析:每个权限位的数字是由对应权限的数值相加得到。
    • 例如,当设置权限为755时:
      所有者权限:数字7是由4(读)+2(写)+1(执行)得到,这意味着文件所有者对该文件或目录拥有读、写和执行的全部权限。所有者可以读取文件内容、修改文件、运行文件(如果是可执行文件),对于目录则可以列出目录内容、在目录中创建和删除文件,以及进入该目录。
      所属组权限:数字5是由4(读)+1(执行)得到,即所属组的用户对文件或目录拥有读和执行权限。他们可以读取文件内容,运行文件(如果是可执行文件),对于目录可以列出目录内容和进入该目录,但不能在目录中创建或删除文件。
      其他用户权限:同样数字5,也是4(读)+1(执行),表示其他用户和所属组用户拥有相同的读和执行权限。

示例:

chmod u+x file.txt    # 给文件所有者添加执行权限
chmod 755 dir         # 将目录权限设置为所有者有读、写、执行权限,组和其他用户有读、执行权限
chmod g+w file.txt    # 给文件所属组添加写权限
chmod o-r file.txt    # 移除其他用户对文件的读权限
chmod a=rwx file.txt  # 设置所有用户对文件有读、写、执行权限
chmod 644 script.sh   # 设置文件所有者有读、写权限,组和其他用户有读权限,常用于普通文件
chmod 700 private_dir # 设置目录所有者有读、写、执行权限,组和其他用户无任何权限,常用于私有目录

2. chown 命令

  • 功能:改变文件或目录的所有者和所属组。
  • 常见用法:
    • chown 用户名:组名 文件或目录:同时改变所有者和所属组。
    • chown 用户名 文件或目录:只改变所有者。

示例:

chown user1:group1 file.txt  # 将 file.txt 的所有者改为 user1,所属组改为 group1
chown user2 dir              # 将 dir 的所有者改为 user2

三、文本处理命令

1. grep 命令

  • 功能:在文本中搜索指定的字符串,支持通配符* ,但需注意通配符*不是直接用于匹配搜索内容,而是在指定搜索文件路径时,可结合路径使用通配符匹配多个文件。
  • 常见参数:
    • -i:忽略大小写。
    • -r:递归搜索目录下的所有文件。
    • -n:显示匹配行的行号。

示例:

grep "hello" file.txt         # 在 file.txt 中搜索包含 "hello" 的行
grep -i "world" file.txt      # 忽略大小写在 file.txt 中搜索 "world"
grep -r "error" /var/log/     # 递归搜索 /var/log/ 目录下所有文件中包含 "error" 的行
grep -n "important" document.txt  # 在document.txt中搜索包含important的行,并显示行号
grep "config" /etc/*.conf  # 在/etc目录下所有conf文件中搜索包含config的行
grep -r "password" /home/user_*  # 递归在/home目录下所有以user_开头的用户目录中搜索包含password的行"error" 的行

2. sed 命令

  • 功能:流编辑器,可对文本进行替换、删除、插入等操作。
  • 常见用法:
    • sed’s/原字符串/新字符串/g’ 文件:全局替换文件中的字符串。

示例:

sed's/old/new/g' file.txt  # 将 file.txt 中的所有 "old" 替换为 "new"

3. awk 命令

  • 功能:文本处理工具,擅长按字段处理文本。
  • 常见用法:
    • awk ‘{print $1}’ file.txt:打印文件中每一行的第一个字段。

示例:

echo "apple 10 2.5" | awk '{print $2}'  # 输出 10

4. wc 命令

  • 功能:统计文件的行数、单词数和字节数。
  • 常见参数:
    • -l:统计行数。
    • -w:统计单词数。
    • -c:统计字节数。

示例:

wc -l file.txt  # 统计file.txt的行数
wc -w file.txt  # 统计file.txt的单词数
wc -c file.txt  # 统计file.txt的字节数

5. echo 命令

  • 功能:在终端输出指定的文本或变量值。

示例:

echo "Hello, Linux!"  # 输出字符串
name="John"
echo $name  # 输出变量值
echo -n "No new line"  # -n参数表示不换行输出

6. tail 命令

  • 功能:查看文件的末尾几行内容,默认显示最后 10 行。
  • 常见参数:
    • -n:指定显示的行数。

示例:

tail file.txt  # 查看file.txt的最后10行
tail -n 20 file.txt  # 查看file.txt的最后20行
tail -f /var/log/syslog  # 实时查看/var/log/syslog文件的新增内容,常用于监控日志

四、特殊符号

1. 管道符(|)

  • 功能:将前一个命令的输出作为后一个命令的输入,实现多个命令的组合使用,提高处理效率。

示例:

ls -l | grep "txt"  # 列出当前目录详细信息,并筛选出包含txt的行
grep "error" /var/log/messages | wc -l  # 在/var/log/messages文件中搜索error,并统计出现的行数
ps aux | grep "java"  # 查看当前系统中运行的java相关进程

2. 重定向符

  • 功能:分为输出重定向(> 和 >>)和输入重定向(<)。输出重定向用于将命令的输出结果保存到文件中,> 会覆盖原有文件内容,>>则是追加到文件末尾;输入重定向用于将文件内容作为命令的输入。

示例:

ls -l > file_list.txt  # 将ls -l的结果覆盖写入file_list.txt
echo "This is a test" >> test.txt  # 将字符串追加到test.txt文件末尾
wc -l < file.txt  # 将file.txt的内容作为wc -l的输入,统计行数
sort < numbers.txt  # 对numbers.txt中的内容进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值