Linux的一些基本操作回顾

本文介绍了Linux中的Shell概念及其作为命令语言解释器的作用,并详细阐述了常用的目录与文件操作命令,包括路径管理、文件属性及用户组的设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、shell

shell是命令语言解释器,俗称“壳”,是连接Linux内核与用户之间的接口程序,是文字操作系统与外部最主要的接口,也是操作系统最外面的一层。shell文件不需要编译。

用户可以通过查看/etc/shells 文件中的内容来查看自己主机中当前
有哪些种类的Shell。
echo $SHELL :查看当前shell

二 、目录和文件操作命令
1|pwd:查看当前目录路径;
2|which:查找并显示给定命令的决定路径;
3|touch:创建一个新文件,能够通过-a -m分别更变文件的访问时间和改动时间;
4|more,less:以多文件方式,按页显示文件内容和cat相似,more只能向后翻页,less更有弹性,也支持向前翻页;
5|head,tail:显示文件前(后)n行的内容;
6|ln:为文件创建链接,链接类型分为硬链接(默认)和符号链接(-s),符号链接对源文件存在依赖关系(类似windows系统的快捷方式);创建硬链接后,文件已经存在的I节点(Inode)会被多个文件使用,用ls -l命令可以查看文件链接数,当文件链接数为0时,文件才会被删除。
7|绝对路径与相对路径:绝对路径从根目录开始显示的完整路径,相对路径以当前目录为起点的路径。(cd / 切换到根目录;cd ~ 切换到家目录)

三、文件属性和用户组

1|查看当前用户:whoami 查看当前操作用户;who am i 查看已登录用户
2|chmod:更改用户对文件的访问权限,如 chmod u+x filename 赋予文件所属用户对filename文件可执行权限
chmod 用户参数:
    -u 文件所属用;
    -g 文件所属用户的群组;
    -o 其他用户;
    -a 以上三种;
操作符:
    '+' 赋予权限
    '-' 取消权限
    '=' 赋予给定权限并取消其他所有权限
权限参数:
    -r 可读权限(read);4 = 2^2  二进制:100
    -w 可写权限(write);2 = 2^1  二进制:010
    -x 可执行权限(execute);1 = 2^0 二进制:001
    -s 特殊权限
    权限参数可以二进制方式代替
    chmod 600 filename (赋予文件所属用户可读可写权限)
    每一位数代表二进制权限的和(6=2^2+2^1+0*2^0即可读可写权限),第一位代表文件用户所属权限,第二位代表文件所属用户的群组,第三位代表其他用户。
3|chown:
    用来更改某个目录或文件的用户名和用户组的
    chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径)
    例1:chown root:root /tmp/tmp1
        就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).
    例2:chown -R root:root /tmp/tmp1
        就是把tmp下的tmp1下的所有文件的属组都改成root和root。
4|chgrp
    用来更改文件或目录的所属用户组。
    chgrp [选项] [组] [文件]
    选项参数:
    -c 当发生改变时输出调试信息
    -f 不显示错误信息
    -R 处理指定目录以及其子目录下的所有文件
    -v 运行时显示详细的处理信息
    –dereference 作用于符号链接的指向,而不是符号链接本身
    –no-dereference 作用于符号链接本身
    选择参数:
    –reference=<文件或者目录>
    –help 显示帮助信息
    –version 显示版本信息

  方法级别的权限验证算法:
     操作系统判断用户是否具有对应权限时的算法,
        drwxrwxr-x (目录文件)
        -rw-rw-r– (普通文件)
     以普通文件对与文件所属用户的权限为例
        rwx 二进制位显示 110 ‘1’代表具有该权限 用户权限为6(0*2^0+2^1+2^2)
     在权限验证时 操作系统对用户使用权限对6做位的与运算所得结果是否为该权限的值。
     如:
        可执行权限为 1 与 6 做位的与运算
        110 & 001 = 000 //不等于1 所以不具有可执行权限;
        可写权限为 2 与 6 做位的与运算
        110 & 010 = 010 //等于2 所以具有可写权限;
     umask:设置文件和目录创建时的缺省权限。缺省权限算法为 (777)&(~umask)
例:umask = 002 即 000 000 010
~umask = 775 即 111 111 101
(777) & (~775) 即 111 111 101 rwxrwxr-x
umask 每3位中为1即缺省权限中去除该权限。

### Linux 常用基础命令及基本操作教程 #### 文件与目录管理 在 Linux 中,文件和目录的操作是最常见的任务之一。以下是常用的文件和目录管理命令: - **`ls`**: 列出当前目录下的文件和子目录列表[^1]。 ```bash ls -l # 显示详细信息 ls -a # 显示隐藏文件 ``` - **`cd`**: 更改工作目录。 ```bash cd /path/to/directory # 进入指定路径的目录 cd ~ # 返回用户的家目录 cd .. # 返回上级目录 ``` - **`pwd`**: 打印当前的工作目录路径。 ```bash pwd ``` - **`mkdir`**: 创建新目录。 ```bash mkdir new_directory # 创建名为new_directory的新目录 mkdir -p a/b/c # 递归创建多级目录 ``` - **`rm`**: 删除文件或目录。 ```bash rm file.txt # 删除单个文件 rm -r directory_name # 删除整个目录及其内容 ``` - **`cp` 和 `mv`**: 复制和移动/重命名文件或目录。 ```bash cp source_file dest_path # 将source_file复制到dest_path mv old_filename new_filename # 移动并重命名文件 ``` #### 文本处理工具 Linux 提供了许多强大的文本处理工具来帮助用户高效地管理和分析数据。 - **`cat`**: 查看、连接以及创建文件的内容[^4]。 ```bash cat filename # 输出filename中的全部内容 cat file1 file2 # 合并file1和file2的内容至标准输出 ``` - **`less` 或 `more`**: 分页查看大文件的内容。 ```bash less large_file # 使用分页方式浏览large_file more another_large_file # 类似功能但较旧的方式 ``` - **`grep`**: 在文件中查找特定模式的字符串。 ```bash grep 'pattern' filename # 搜索包含‘pattern’的行 grep -iR 'keyword' . # 忽略大小写递归搜索关键词 ``` #### 用户环境配置 Shell 是 Linux 的重要组成部分,它允许用户通过脚本来自动化各种任务[^2]。 - **设置别名**:可以简化复杂或者频繁使用的命令输入。 ```bash alias ll='ls -la' unalias ll # 取消定义ll这个别名 ``` - **历史记录回顾**:利用history命令复习之前执行过的指令。 ```bash history # 展示最近运行的历史命令清单 !n # 重新执行第n条历史命令 (需先启用此特性) ``` #### 权限控制 权限对于保护系统资源至关重要,下面介绍如何修改文件访问权。 - **`chmod`**: 改变文件或目录的读取(r),写入(w),执行(x)权限。 ```bash chmod u+x script.sh # 给予script.sh可执行权限给拥有者(user) chmod 755 foldername # 数字形式设定foldername的权限为 rwxr-xr-x ``` - **`chown` 和 `chgrp`**: 修改文件所属用户和组群。 ```bash chown user_name file # 把file的所有者改为user_name chgrp group_name dir # 设置dir的主要群体为group_name ``` ```python def example_script(): import os # Create and change directories using Python's os module as an analogy to shell commands. current_dir = os.getcwd() # Similar to the bash command: pwd print(f"Current Directory is {current_dir}") try: os.mkdir('test_folder') # Equivalent of mkdir test_folder with open(os.path.join(current_dir, 'test_folder', 'example.txt'), 'w') as f: f.write("This is some text data.") print("Test Folder Created Successfully!") except Exception as e: print(e) if __name__ == "__main__": example_script() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值