$ ourSite="super user"
$ echo $outSite
super user
$ echo "$outSite"
super user
Run Code Online (Sandbox Code Playgroud)
如果我们不使用双引号来引用变量,bash 会自动将相邻的空格压缩为一个。
我徘徊为什么bash要这样做?该变量只是一串字符,默认情况下将变量替换为原来的变量不是更好吗?
我有一个包含重要文件的 USB。然而,它在每个子文件夹中都渗透了一些不需要的 .exe 文件(可能是病毒)。由于我在 Linux 机器上,exe 文件不会影响我。但是我想删除它们(为了人身安全)。那么我如何使用 Linux 命令或 shell/AWK 或 Python 脚本来做到这一点。
用户是否可能属于 Linux 中的组,但组名未列在/etc目录中的组文件中。如果是这样,有哪些例子?
如何搜索文件以查找具有 SRC= 的行,例如此处?我的意思是我如何使用 awk 在这个文件中找到源 IP 地址,例如
Mar 10 03:17:12 ubuntu kernel: [11045.721649] Type=ScanXMASIN=eth0 OUT= MAC=00:0c:29:a1:51:1c:00:0c:29:23:9d:e4:08:00 SRC=192.168.1.28 DST=192.168.1.27 LEN=40 TOS=0x00 PREC=0x00 TTL=47 ID=6603 PROTO=TCP SPT=47301 DPT=53 WINDOW=1024 RES=0x00 URG PSH FIN URGP=0
Mar 10 03:17:12 ubuntu kernel: [11045.721702] Type=ScanXMASIN=eth0 OUT= MAC=00:0c:29:a1:51:1c:00:0c:29:23:9d:e4:08:00 SRC=192.168.1.30 DST=192.168.1.27 LEN=40 TOS=0x00 PREC=0x00 TTL=42 ID=6802 PROTO=TCP SPT=47301 DPT=5900 WINDOW=1024 RES=0x00 URG PSH FIN URGP=0
Mar 10 03:17:32 ubuntu kernel: [11065.703937] Type=ScanACKIN=eth0 OUT= MAC=00:0c:29:a1:51:1c:00:0c:29:23:9d:e4:08:00 SRC=192.168.1.31 DST=192.168.1.27 LEN=40 TOS=0x00 PREC=0x00 TTL=40 ID=62992 PROTO=TCP SPT=47301 DPT=1521 WINDOW=1024 RES=0x00 URG PSH …Run Code Online (Sandbox Code Playgroud) 我试图在昨天的 unix 服务器中执行 date 命令。尝试的命令是:
date --date="1 day ago"
date --date="1 days ago"
date --date="yesterday"
date --date="-1 day"
Run Code Online (Sandbox Code Playgroud)
这些命令在服务器中工作,但相同的命令在其他少数服务器中不起作用,其中 date 正确打印当前日期。谁能建议其他服务器可能有什么问题?我收到如下错误:illegal option -- date=1 day ago
服务器详情:SunOS wupsa02a0014 5.10 Generic_147440-15 sun4u sparc SUNW,SPARC-Enterprise
我有一个 JAVA_HOME 变量,做 >echo $JAVA_HOME给"old/path/to/my/jdk.1.7". 我去终端并执行一个export JAVA_HOME=new/path/to/my/jdk.1.8.0在终端会话期间工作正常的操作,但是一旦我启动一个新的选项卡/终端实例并执行 >echo $JAVA_HOME它给我:old/path/to/my/jdk.1.7。我可能做错了什么。
我有一个目录,其中包含许多不同格式的图像文件。我想查看该目录中所有不同文件结尾的列表,以便我可以看到存在哪种图像格式。所以假设只有png,gif和jpg文件,我想要的输出看起来像:
png
gif
jpg
Run Code Online (Sandbox Code Playgroud)
我知道如何使用lsand获取所有文件结尾的列表 cut,但我不知道如何使其仅包含唯一条目。有没有办法只使用 shell 工具来做到这一点,或者我是否必须编写一个小的 python 脚本或类似的脚本?
我有一个s3cmd ls --list-md5命令的输出。
2013-05-22 12:20 1965154 41eae9b40d23de2f02bf07635870f6d0 s3://company-backup/company/amazon/ip-11-11-111-11/backup_server245/app.20121117040001.gz
2013-05-22 12:20 11456836 541b1bf78682f48867cc99dbb53c4c3a s3://company-backup/company/amazon/ip-11-11-111-11/backup_server245/app.20121118040001.gz
..
Run Code Online (Sandbox Code Playgroud)
我正在尝试验证md5sum来自存储桶中的对象是否与md5sum本地机器中的对象匹配。因此,我需要将hash结果作为fourth列,将文件名作为fifth列。
像那样:
41eae9b40d23de2f02bf07635870f6d0 s3://company-backup/company/amazon/ip-11-11-111-11/backup_server245/app.20121117040001.gz
Run Code Online (Sandbox Code Playgroud)
但我只需要文件名,因此我使用basename命令(我只是不知道如何在这里使用它,但我会弄清楚),最后看起来像这样:
s3=`s3cmd ls --list-md5 s3://company-backup/company/amazon/ip-11-11-111-11/backup_server245/`;
echo "$s3";
echo "$s3" | tr -s ' ' | cut -d ' ' -f 4;
echo "$s3" | tr -s ' ' | cut -d ' ' -f 5;
Run Code Online (Sandbox Code Playgroud)
现在我需要将结果存储echo's在相同的变量中,如下所示:
41eae9b40d23de2f02bf07635870f6d0 app.20121117040001.gz
Run Code Online (Sandbox Code Playgroud)
所以我可以将结果s3cmd ls --list-md5sum与我md5sum *.gz在本地运行的结果进行比较。 …
我将我的/etc目录移动到 Dropbox 以希望同步两个计算机环境,这是一个糟糕的举动。移动/etc目录后,任何 sudo 命令都会响应“这个 UID 1000 是谁?”。
基本上我杀死了我的用户并杀死了所有启动。现在我无法启动我的系统。
请帮忙。在启动过程中是否有任何可通过 GRUB 命令行的可启动工具或方法可以访问我的文件。
我只需要跑
mv /home/user/Dropbox Files/etc /etc
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以在启动期间通过 GRUB 命令行执行此操作吗?标准终端命令似乎不起作用。