简而言之:

简而言之:

我想编写一个“批处理文件”(shell 脚本)的 Ubuntu 模拟程序。但我不知道如何使用命令来使脚本可以运行。我也不知道在哪里使用它。chmod +x filename

答案1

简而言之:

chmod +x仅表示您将使它可执行。右键单击您的脚本并选择特性->权限->允许作为程序执行文件,得到的结果与终端中的命令完全相同。

如果您要更改权限的文件位于系统目录中,您可能需要这样做root:(使用命令时要小心sudo

sudo chmod +x /usr/share/testfolder/aFile 

另外,您到底想在这里存档什么还不清楚。请编辑您的问题并提供有关实际问题的更多详细信息!

您还可以参考这个问题以获取更多信息:chmod u+x' 与 'chmod +x


长话短说:

man chmod在终端窗口输入( Ctrl++ ) AltT你会得到以下输出:


姓名:chmod—更改文件模式位

概要

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

描述

This  manual page documents the GNU version of chmod.  chmod changes the
file mode bits of each given file according to mode, which can be either
a  symbolic representation of changes to make, or an octal number repre‐
senting the bit pattern for the new mode bits.

The format of a symbolic mode  is  [ugoa...][[+-=][perms...]...],  where
perms  is  either  zero or more letters from the set rwxXst, or a single
letter from the set ugo.  Multiple symbolic modes can  be  given,  sepa‐
rated by commas.

A  combination  of  the letters ugoa controls which users' access to the
file will be changed: the user who owns  it  (u),  other  users  in  the
file's  group (g), other users not in the file's group (o), or all users
(a).  If none of these are given, the effect is as if a were given,  but
bits that are set in the umask are not affected.

The  operator  +  causes  the selected file mode bits to be added to the
existing file mode bits of each file; - causes them to be removed; and =
causes them to be added and causes unmentioned bits to be removed except
that a directory's unmentioned set  user  and  group  ID  bits  are  not
affected.

The  letters  rwxXst  select file mode bits for the affected users: read
(r), write (w), execute (or search for directories) (x),  execute/search
only  if  the  file is a directory or already has execute permission for
some user (X), set user or group ID on execution (s),  restricted  dele‐
tion  flag  or sticky bit (t).  Instead of one or more of these letters,
you can specify exactly one of the letters ugo: the permissions  granted
to  the  user  who  owns  the file (u), the permissions granted to other
users who are members of the  file's  group  (g),  and  the  permissions
granted  to  users  that  are in neither of the two preceding categories
(o).

A numeric mode is from one to four octal digits (0-7), derived by adding
up  the  bits with values 4, 2, and 1.  Omitted digits are assumed to be
leading zeros.  The first digit selects the set  user  ID  (4)  and  set
group ID (2) and restricted deletion or sticky (1) attributes.  The sec‐
ond digit selects permissions for the user who owns the file: read  (4),
write  (2),  and  execute  (1);  the third selects permissions for other
users in the file's group, with the same  values;  and  the  fourth  for
other users not in the file's group, with the same values.

chmod  never changes the permissions of symbolic links; the chmod system
call cannot change their permissions.  This is not a problem  since  the
permissions  of  symbolic  links are never used.  However, for each sym‐
bolic link listed on the command line, chmod changes the permissions  of
the  pointed-to file.  In contrast, chmod ignores symbolic links encoun‐
tered during recursive directory traversals.

SETUID 和 SETGID 位

chmod clears the set-group-ID bit of a regular file if the file's  group
ID  does  not  match  the user's effective group ID or one of the user's
supplementary group IDs, unless the  user  has  appropriate  privileges.
Additional  restrictions may cause the set-user-ID and set-group-ID bits
of MODE or RFILE to be ignored.  This behavior depends on the policy and
functionality of the underlying chmod system call.  When in doubt, check
the underlying system behavior.

选项

Change the mode of each FILE to MODE.

   -c, --changes
          like verbose but report only when a change is made

   --no-preserve-root
          do not treat `/' specially (the default)

   --preserve-root
          fail to operate recursively on `/'

   -f, --silent, --quiet
          suppress most error messages

   -v, --verbose
          output a diagnostic for every file processed

   --reference=RFILE
          use RFILE's mode instead of MODE values

   -R, --recursive
          change files and directories recursively

   --help display this help and exit

   --version
          output version information and exit

   Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.

答案2

A批处理文件和一个shell 脚本在 Linux 下,两个术语含义相同。脚本的使用频率更高, 尽管。

最简单的shell脚本文件仅包含命令就像在命令行(即 Bash 命令解释器)中输入它们一样。理论上,你甚至可以用你喜欢的任何语言(并且有一个解释器)替换解释器。为了更明确,建议你在第一行开始使用

#!/bin/sh(如果您不想最大限度地提高旧系统的可移植性)

或者

#!/bin/bash(如果您想要一些额外的功能,您可能不会关心今天)

在此行之后输入命令,每行一个。还有很多额外的结构超出了本问题的范围,请参阅man bashhttp://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf(适合初学者)或http://www.tldp.org/LDP/abs/abs-guide.pdf(针对更高级的问题)。

实际运行你的脚本有两个要求:首先,解释器进程需要读取文件,并附议检查是否标记为可执行文件。为了方便起见,能够写入脚本也很有用(这样您就可以根据需要进行更改或修复)。

进一步假设你希望团队成员和其他人也能够运行(并查看)你的脚本,但你不希望他们操纵它,那么

  • 为所有人执行权限(a+x+xa默认),
  • 所有人的阅读权限(a+r+r,同样a是默认的),
  • 仅为您写入权限(u=w

通常是文件权限的合理值。您可以键入连接在一起的单个操作,并用逗号分隔。

+虽然这种“动作语言”非常迷人(请注意和运算符的区别=,它们会导致不同的结果,具体取决于您更改它们之前的权限设置),但它们的输入却很繁琐。

由于所有操作都会创建内部应用的位掩码,因此您man chmod也可以直接输入位掩码(有关详细信息,请参阅)。

对于 shellscript chmod 755我的脚本在至少 95% 的情况下都是最有意义的。

答案3

首先,脚本必须声明要使用哪个解释器。在文件的第一行中执行此操作。如果是 shell 脚本,则应为#!/bin/sh#!/bin/bash

下面是一个写入您的用户名的脚本:echo-whoami.sh

#!/bin/sh
echo $(whoami)

为了使其可执行,请使用:

chmod +x echo-whoami.sh

然后你可以使用以下命令运行它:

./echo-whoami.sh

相关内容