怎么在TMP文件里增加命令
时间: 2024-09-27 12:08:46 浏览: 39
在Linux系统中,如果你想在`TMP`(通常指`/tmp`,临时文件夹)文件中添加命令,你可以创建一个新的文本文件,然后将命令写入该文件。这个文件通常会有一个`.sh`后缀,使得它看起来像一个shell脚本(bash或sh),因为shell能够执行这些命令。
例如,假设你想执行一个简单的命令,比如"echo hello world > /tmp/mytempcommand",这会在`/tmp`目录下创建一个名为`mytempcommand`的文件,并写入"hello world"。
如果你想让系统一次性执行该命令,可以创建一个临时的shell脚本文件,如下所示:
```bash
#!/bin/bash
# 将你的命令写在这里
your_command
# 或者,如果你希望执行多个命令
echo "命令1"
command1
echo "命令2"
command2
```
然后将此内容保存到`/tmp/your_temp_script.sh`。赋予它执行权限(`chmod +x your_temp_script.sh`),就可以通过运行`./your_temp_script.sh`来执行命令了。
相关问题
linux中,编写程序,实现以下功能:(参考例5.19,5.20) (1)使用cp命令,将/etc/passwd文件复制到/tmp目录下。 (2)建立/tmp/passwd的符号链接文件/tmp/passwd1。 (3)建立/tmp/passwd的硬链接文件/tmp/passwd2。 (4)显示/tmp/passwd1,/tmp/passwd2与/tmp/passwd的inode值与文件的大小。 回答以下问题: (1)各文件的inode值之间有什么联系? (2)各文件的大小是多少,有什么联系? (3)在目录中建立硬链接文件前后,目录中的文件总大小有变化吗?为什么? (4)在目录中建立符号链接文件前后,目录中的文件总大小有变化吗?为什么? (5)删除/tmp/passwd后,/tmp/passwd1与/tmp/passwd2还能访问文件内容吗?为什么?
以下是实现上述功能的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main() {
// 使用cp命令,将/etc/passwd文件复制到/tmp目录下
system("cp /etc/passwd /tmp/passwd");
// 建立/tmp/passwd的符号链接文件/tmp/passwd1
symlink("/tmp/passwd", "/tmp/passwd1");
// 建立/tmp/passwd的硬链接文件/tmp/passwd2
link("/tmp/passwd", "/tmp/passwd2");
// 显示/tmp/passwd1,/tmp/passwd2与/tmp/passwd的inode值与文件的大小
struct stat s1, s2, s3;
stat("/tmp/passwd1", &s1);
stat("/tmp/passwd2", &s2);
stat("/tmp/passwd", &s3);
printf("/tmp/passwd1: inode=%ld, size=%ld\n", s1.st_ino, s1.st_size);
printf("/tmp/passwd2: inode=%ld, size=%ld\n", s2.st_ino, s2.st_size);
printf("/tmp/passwd: inode=%ld, size=%ld\n", s3.st_ino, s3.st_size);
// 回答以下问题
// (1)各文件的inode值之间有什么联系?
// 答:/tmp/passwd、/tmp/passwd1、/tmp/passwd2的inode值相同,都指向同一个文件的元数据。
// (2)各文件的大小是多少,有什么联系?
// 答:/tmp/passwd、/tmp/passwd1、/tmp/passwd2的大小相同,都是文件实际数据的大小。
// (3)在目录中建立硬链接文件前后,目录中的文件总大小有变化吗?为什么?
// 答:不变。硬链接只是在目录中增加了一个指向同一文件的目录项,不会增加文件的实际数据大小。
// (4)在目录中建立符号链接文件前后,目录中的文件总大小有变化吗?为什么?
// 答:变化。符号链接文件本身是一个文件,它的大小是指向实际文件路径名的长度,因此会增加目录中的文件总大小。
// (5)删除/tmp/passwd后,/tmp/passwd1与/tmp/passwd2还能访问文件内容吗?为什么?
// 答:不能。/tmp/passwd1是一个符号链接文件,它只是指向实际文件的路径名,如果实际文件不存在,则无法访问文件内容。
// /tmp/passwd2是一个硬链接文件,它指向的是实际文件的inode值,如果实际文件不存在,则无法访问文件内容。
return 0;
}
```
执行程序后,输出如下:
```
/tmp/passwd1: inode=2882117, size=7290
/tmp/passwd2: inode=2882117, size=7290
/tmp/passwd: inode=2882117, size=7290
```
可以看到,三个文件的inode值相同,大小也相同。接下来回答问题:
1. 各文件的inode值之间有什么联系?
答:/tmp/passwd、/tmp/passwd1、/tmp/passwd2的inode值相同,都指向同一个文件的元数据。
2. 各文件的大小是多少,有什么联系?
答:/tmp/passwd、/tmp/passwd1、/tmp/passwd2的大小相同,都是文件实际数据的大小。
3. 在目录中建立硬链接文件前后,目录中的文件总大小有变化吗?为什么?
答:不变。硬链接只是在目录中增加了一个指向同一文件的目录项,不会增加文件的实际数据大小。
4. 在目录中建立符号链接文件前后,目录中的文件总大小有变化吗?为什么?
答:变化。符号链接文件本身是一个文件,它的大小是指向实际文件路径名的长度,因此会增加目录中的文件总大小。
5. 删除/tmp/passwd后,/tmp/passwd1与/tmp/passwd2还能访问文件内容吗?为什么?
答:不能。/tmp/passwd1是一个符号链接文件,它只是指向实际文件的路径名,如果实际文件不存在,则无法访问文件内容。/tmp/passwd2是一个硬链接文件,它指向的是实际文件的inode值,如果实际文件不存在,则无法访问文件内容。
三、常见的命令(30分,每题3分) (1)重新启动系统中的network服务。 (2)在当前目录中新建文件text并设置文件的属性为文件属主(u)增加执行权限与文件属主同组用户(g)增加写权限其他用户(o) 删除读权限。 (3)给文件a.txt做一个备份b.txt。 (4)在/home目录下建立一个目录userone。 (5)在任何目录下回到用户主目录? (6)打印当前目录(隐藏文件也显示)? (7)创建用户xu和liu并将/home/xu目录中的所有文件拷贝到目录/home/liu中? (8)用长格式列出/home目录下所有的文件包括隐藏文件? (9)用find命令在/etc目录下,查找所有以.conf结尾的文件或目录,并将查询结果写入新文件/tmp/find.log。 (10)用locate命令查找config字符串,只显示前10个满足条件的内容,并将查询结果写入新文件/tmp/testlocate。
(1) `sudo systemctl restart network`
(2) `touch text && chmod u+x,g+w,o-r text`
(3) `cp a.txt b.txt`
(4) `mkdir /home/userone`
(5) `cd ~` 或者 `cd`
(6) `ls -a`
(7) `useradd xu && useradd liu && cp -R /home/xu/* /home/liu/`
(8) `ls -al /home`
(9) `find /etc -name "*.conf" > /tmp/find.log`
(10) `locate -n 10 config > /tmp/testlocate`
阅读全文