关于网站建设新闻企业网站优化
1. linux shell简介
2. bash shell基础命令
3. linux shell的一些基本知识
4. shell变量和传递参数
5. linux中的文件权限
6. linux中的root用户和普通用户
7. python脚本控制cpu利用率
8. 定时执行任务命令crontab
1. linux shell简介
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。Bash 也是大多数Linux 系统默认的 Shell。
Linux shell是Linux操作系统中为用户提供的一种解释器,它是用户与操作系统交互的主要接口。下面从特点、功能、发展脉络、开发语言、初学者需要掌握的技能等方面进行介绍:
1.特点:
- 将用户输入的命令转换为操作系统理解的指令进行处理。
- 提供了很多内置命令,可以让用户快速地进行磁盘管理和文件操作。
- 可以调用和执行程序、脚本和其他类型的文件。
- 具有脚本能力,可以通过编写shell脚本来实现自动化或批处理操作。
- 支持用户自定义环境变量、函数和别名。
2. 功能:
- 执行系统命令、管理文件与文件夹。
- 进行系统调用与管理进程。
- 实现管道命令来处理数据流。
- 使用环境变量设置系统的行为。
- 编写shell脚本实现更高级的自动化脚本以及任务调度。
3. 发展脉络:
Linux shell 的发展历史如下:
Bourne shell (sh):是 Unix 操作系统中最早的 shell,由 Stephen Bourne 于 1977 年开发。它提供了一些基本的命令和控制结构,如 if、for、while 等。Bourne shell 是所有 shell 的基础。
C shell (csh):是由 Bill Joy 于 1978 年开发的 shell,它支持更高级的命令和控制结构,如命令行编辑和作业控制。C shell 的语法与 C 语言类似。
Korn shell (ksh):是由 AT&T Bell 实验室的 David Korn 于 1983 年开发的 shell。它继承了 Bourne shell 的所有特性,并增加了一些新的功能,如命令行编辑和作业控制。
Bourne-Again shell (bash):是由 Brian Fox 开发的一个免费的 Bourne shell 的替代品。它在 Bourne shell 的基础上增加了许多新的功能,如命令行编辑、命令别名、命令历史、自动补全等。
除了上述常见的 shell,还有一些其他的 shell,如 tcsh、zsh 等。随着 Linux 操作系统的发展,各种 shell 不断地改进和演变,为用户提供更加强大和灵活的命令行工具。
4. 开发语言:
Shell脚本是使用shell语言编写的,常用的是Bash shell和Zsh Shell,也可以使用其他Shell支持的语言,例如Python、Perl、Ruby等。
5. 初学者需要掌握的技能:
- 熟练掌握shell的基本操作命令,如cd、ls、cp、mv、rm等。
- 理解Linux文件系统、文件权限以及文件类型等的概念。
- 能够使用管道命令和重定向命令来处理数据流。
- 学会编写基本的shell脚本,例如自动化任务脚本和环境变量设置脚本等。
- 掌握shell的进程管理能力,包括进程查看、进程切换和进程关闭等。
- 熟悉shell的Shell变量、环境变量和变量替换等功能,灵活运用能力。
总之,熟练掌握Linux shell是Linux系统操作的基础,通过学习和实践,可以使我们更加高效的使用Linux操作系统。
2. bash shell基础命令
列出文件和目录
列出文件和目录
ls -F # 区分文件和目录
ls -a # 显示隐藏文件
ls -F -R # 列出包含子目录的文件
ls -FR # 同上
ls -l # 显示各文件详细信息
touch file1 file2 ... # 创建多个文件
ls -l my_script # 过滤器
ls -l my_scr?pt # 问号代表任意单个字符
ls -l my_scr*pt # 星号代表零个或多个字符
ls f[a-i]ll # 字母范围[a-i]
ls -l f[!a]ll # 惊叹号将不需要的内容排除在外
当你在Linux系统中输入命令
ls -l
后,你会看到当前目录下文件和目录的列表。每一行都代表一个文件或目录,每行包含以下信息:
文件权限:行的前十个字符显示文件的权限。第一个字符表示文件类型,剩下的九个字符表示文件所有者、组和其他人的权限。
链接数:第二个字段显示文件或目录的链接数。
所有者:第三个字段显示文件或目录的所有者。
组:第四个字段显示拥有文件或目录的组。
文件大小:第五个字段显示文件或目录的大小(以字节为单位)。
上次修改的日期和时间:第六个字段显示文件或目录上次修改的日期和时间。
文件或目录名称:最后一个字段显示文件或目录的名称。
ls -l 命令结果如下:
-rw-r--r-- 1 username staff 256 Jan 22 15:47 example.txt
drwxr-xr-x 2 username staff 64 Jan 22 16:01 example_directory
在Linux系统中,如果你输入ls -l命令,你会得到一个长格式的列表,显示当前目录下的文件和目录的信息。输出结果的第一个字符表示文件的类型。可能的文件类型有以下几种:
-:表示这是一个普通文件。
d:表示这是一个目录。
l:表示这是一个符号链接。
b:表示这是一个块设备文件。
c:表示这是一个字符设备文件。
n:表示这是一个网络文件。
p:表示这是一个管道文件。
s:表示这是一个套接字文件。
你也可以使用ls -F命令来显示文件的类型,它会在不同类型的文件后面加上不同的特殊字符。比如,/表示目录,*表示可执行文件,@表示符号链接等。你可以使用man ls或info ls来查看更多关于ls命令的信息。
处理文件
处理文件
cp source destination # 复制文件
cp -i test_one test_two # 复制前询问
cp -i test_two Documents/ # 将文件复制到目录中
cp -R Documents/ NewDocuments/ # 复制目录
ln -s test_file slink_test_file # 创建软链接(符号链接)文件
ls -i *test_file # 查看文件或目录的inode编号
ln test_one hlink_test_one # 创建硬链接
ls -li *test_one # 显示inode编号以及长列表
mv fall fzll # 重命名文件
mv /home/christine/fzll /home/christine/NewDocuments/ # 移动文件
mv NewDocuments OldDocuments # 移动整个目录及其内容
rm -i fall # 删除文件
ls -ld New_Dir # 查看目录
mkdir -p New_Dir/SubDir/UnderDir # 批量创建目录和子目录
rmdir Blank_Dir/ # 删除空目录
rm -ir TestDir # 删除目录及文件
rm -rf TestDir # 删除目录树
查看文件
file my_file # 查看文件类型
cat -n test1 # -n给所有行加上行数
cat -b test1 # -b给有文本的行加上行号
cat -T test1 # 不让制表符出现
more file # 空格或Enter 逐行向前
less file # 是less命令能够识别上下键以及上下翻页键,q退出,pageup 和pagedown可用于翻页
tail file # 命令会显示文件最后几行的内容(文件的“尾部”)。默认情况下,它会显示文件的末尾10行
tail -n 2 file # 可以向tail命令中加入-n参数来修改所显示的行数,如最后2行
head file # head命令,顾名思义,会显示文件开头那些行的内容