Linux 知识总结

用户管理

一个用户至少属于一个组 /home/

添加用户:

useradd [] 用户名
切换目录:cd     创建目录:mkdir   创建文件:touch    修改密码:passwd XX

删除用户:

只删除用户名称:   userdel XX
既删除用户名称也删除用户组:userdel -r XX

查询用户信息:

id XX
切换用户: su -XX
返回原用户: exit
查看当前用户: who am I

用户组:

增加用户组:  groupadd
删除用户组:  groupdel
在用户组yy中增加用户xx:  useradd -g yy xx
将用户xx移动到用户组yy中: usermod -g yy xx

用户组和相关文件:

用户配置文件:  /etc/passwd
组配置文件:    /etc/group
密码相关文件:   /etc/shadow

指令

运行级别,一共七个:

0: 关机
1: 单用户(可用找回密码)
2: 多用户(无网络)
3: 多用户(有网络)(一般用这个)
4: 保留
5: 图形界面
6: 重启
vim /etc/inittable
init [0--6]
qi

帮助指令

man ls:列出man指令的内容
ls
ls -l:  列出长格式
ls -a
help [指令]
ifconfig:查看网络配置

文件目录指令

pwd: 查看当前工作的绝对路径
     (绝对路径: 从根目录开始找
       相对路径:  从当前工作目录开始定位到需要的目录中去
       例子:当前路径 /root,希望返回到家目录/home:
            绝对路径: cd /home
            相对路径: cd ../home)
ls; ls [选项] [目录或文件]
       选项: -al  显示所有文件和目录,包括隐藏文件
             -l   以列表形式显示
cd :切换目录
     cd ~    回到家目录
     cd ..   返回上一目录
mkdir: 创建目录
     mkdir [选项] [创建的目录名称]
        选项:-p  创建多级目录
     例子:创建一个/home/dog目录: mkdir /home/dog
          创建一个多级目录/home/animal/dog: mkdir -p /home/animal/dog
          
rmdir:删除目录
     rmdir [选项]  [要删除的空目录]
     (删除有内容的目录: rm -f /home/dog)
     
touch 创建一个空文件
     touch 文件名   eg:touch hello.txt
                      ls -l
                      touch ok1.txt ok2.txt  (一次性创建多个文件)
             
cp  拷贝指令:
     cp  [选项] source dest (源文件  目标文件)
          选型:-r  递归复制整个文件夹
      eg: cp aaa.txt bbb/    (将当前目录下的aaa文件拷贝到当前目录的bbb文件中)
         \cp -r test/ zwj/    强制覆盖不提示
  
rm   移除文件或目录    
     -r  递归删除
     -f  强制删除不提示
  
 mv 移动文件或重命名
     mv [源文件] [新文件名]   重命名
     mv pin.txt /root/   文件移动到root下
     
cat  查看文件内容 只读  
    cat [选项] [文件名] | more     
         分页浏览(空白键  一页
                 enter  一行)
         选项:-n
    (more  
     less 查看大文件时常用)
     
>  输出重定向,将原文件内容覆盖
>> 追加到尾部
   eg: ls -l > a.txt    将ls -l内容写入a.txt
       more a.txt
       ls -l >> b.txt   追加
       cat 文件1 > 文件2
       echo  'hello' >> c.txt 
       当前日历追加到mycal中去:cal >> /home/mycal
     

查看输出内容指令

echo 输出内容到控制台
   echo [选项]  [输出内容]
   eg: echo $PATH 输出环境变量
       echo 'hello'  输出文本
       
head  显示文件开头
   head -n x [文件名]   显示文件前x行
   
tail 显示文件尾部
   tail -n x [文件名]
   tail -f  (实时显示文件的所有更新信息)
  
ln 软链接(相当于快捷方式)
   ln -s /root linkrook    (创建一个链接文件指向root)
    rm -rf linkrook   (删除链接)
    
history 查看已经执行过的文件指令
  eg: 显示所有历史指令  history
      显示最近执过的10条  history 10
      执行历史指令为5的命令   ! 5
      

时间日期类指令

data: 显示当前日期  
    data  
    data %Y %M %d 
    data '+%Y %M %d %h %m %s'
    data -s '2020-08-22 11:22:22'      设置时间
   
cal 查看日历指令
    cal  显示当前日历
    cal 2020  
    

查找类

(sudo) find filename

压缩解压缩:

1、.tar

解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)

2、.gz

解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

3、.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

4、.bz2

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

5、.tar.bz2

解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

6、.bz

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz

7、.tar.bz

解压:tar jxvf FileName.tar.bz

8、.Z

解压:uncompress FileName.Z
压缩:compress FileName

9、.tar.Z

解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

10、.zip

解压:unzip FileName.zip
压缩:zip FileName.zip DirName

11、.rar

解压:rar x FileName.rar
压缩:rar a FileName.rar DirName

12、.lha

解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName

13、.rpm

解包:rpm2cpio FileName.rpm | cpio -div

14、.deb

解包:ar p FileName.deb data.tar.gz | tar zxf -

15、.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea

解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意! gzip 命令 减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。 语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下: -c 将输出写到标准输出上,并保留原有文件。-d 将压缩文件解压。-l 对每个压缩文件,显示下列字段: 压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。-t 测试,检查压缩文件是否完整。-v 对每一个压缩和解压的文件,显示文件名和压缩比。-num 用指定的数字 num 调整压缩的速度,-1 或 --fast 表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例:

gzip *% 把当前目录下的每个文件压缩成 .gz 文件。gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。

1.关于文件/目录处理的指令:

1.1 ls

这是最基本的文件指令。ls 的意义为“list”,也就是将某一个目录下的内容显示出来。如果你在 ls 指令后没有跟任何文件,它将会显示出目前目录中所有文件。也可以在 ls 后面加上所要察看的目录名称或文件的名称,如 $ls/home/, $lsfoo

ls 有一些参数,可以给予使用者更多有关的资讯,如下:

-a:在 linux 中若一个目录或文件名字的第一个字元为“。”,则使用 ls 将不会显示出这个文件的名字,我们称此类文件为隐藏文件。如 tcsh 的初设档。tcshrc;如果我们要察看这类文件,则必须加上参数“-a”。

-l:这个参数代表使用 ls 的长格式,可以显示更多的资讯,如文件存取权,文件拥有者(owner),文件大小,文件最后更新日期,甚而 symboliclink 的文件是 link 哪一个文件等等。如下:

$ls-l

drwx--x--x2jjtseng512Aug805:0818

drwx--x--x2jjtseng512Aug822:0019

-rw-------1jjtseng566Aug805:28makefile

1.2 cp

cp 这个指令的意义是复制(“COPY”),也就是将一个或多个文件复制成另一个文件或者是将其复制到另一个目录去。

cp 的用法如下:

cp f1 f2:将文件名为 f1 的文件复制一份为文件名为 f2 的文件。

cp f1 f2 f3 „ dir:将文件 f1f2f3„都以相同的文件名复制一份放到目录 dir 里面。

cp -r dir1 dir2:将 dir1 的全部内容全部复制到 dir2 里面。

cp 也有一些参数,如下:

-i:此参数是当已有文件名为 f2 的文件时,若迳自使用 cp 将会将原来 f2 的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者的回答是 y(yes)才执行复制的动作。

-r:可将一整颗子树都复制到另一个目录中。

1.3 mv

mv 的意义为 move,主要是将一文件改名或换至另一个目录。如同 cp,它也有三种格式:

mv f1 f2:将文件名为 f1 的文件变更成文件名为 f2 的文件。

mv dir1 dir2:将文件名为 dir1 的目录变更成文件名为 dir2 的目录。

mv f1 f2 f3 „ dir:将文件 f1f2f3„都移至目录 dir 里面。mv 的参数有两个,-f 和-i,其中-i 的意义与 cp 中的相同,均是 interactive 询问之意。

-f 为强迫(force),就是不管有没有同名的文件,都进行操作,所有其他的参数遇到-f 均会失效。

1.4 rm

rm 的意义是 remove,也就是用来删除一个文件的指令。在 Linux 中一个被删除的文件除非是系统恰好有做备份,否则是无法像 DOS 里面一样还能够救回来的。所以在做 rm 动作的时候使用者应该要特别小心。

rm 的格式如下:

rm f1 f2 f3 …

而 rm 的参数比较常用的有几个:-f,-i,与-r

-f:将会使得系统在删除时,不提出任何警告讯息。

-i:在除去文件之前均会询问是否真要除去。

-r:递回式的删除。

小心不要随便使用 rm -r f,否则有一天你会“欲哭无泪”

1.5 mkdir

mkdir 是一个让使用者建立一个目录的指令。你可以在一个目录底下使用 midir 建立一个子目录,使用的方法如下:

mkdir dirname1 [dirname2…]

如此你就可以建立一个或多个目录。

1.6 chdir(cd)

这是让使用者用来转移工作目录用的。

chdir 的用法如下:

chdir dirname

如此你就可以将目前的目录转移到 dirname 这一个目录去。

或使用“chdir 。。”来转移到上一层目录。

1.7 rmdir

相对于 mkdir,rmdir 是用来将一个“空的”目录杀掉的。如果一个目录下面没有任何文件,你就可以用 rmdir 指令将其除去。rmdir 的使用法如下:

rmdir dirname1[dirname2…。]

如果一个目录底下有其他的文件,rmdir 将无法将这个目录杀掉,除非使用 rm 指令的-r选项。

1.8 pwd

pwd 会将目前目录的路径(path)显示出来

1.9 cat/more/less

以上三个指令均为察看文件内容的指令。cat 的意义是猫„?不不不,是 concatenate,在字典上的意思是“连结,将„串成锁状”(语出资工电子词典 cdict),其实就是把文件的内容显示出来的意思。cat 有许多奇怪的参数,较常为人所使用的是-n 参数,也就是把显示出来的内容加上行号。cat 的用法如下:

cat [-n]:自标准输入读进内容,你可以用 pipe 将别的程式的输出转向给 cat。

cat [-n] filename:将 filename 的内容读进来,显示在标准输出上。

问题在于 cat 它是不会停下来的,因此并不好用(试想如果一个萤幕二十四行,而一个文件四百行,cat 一出来将会劈哩啪啦不断的卷上去,使用者很难据此得到他们所需的资讯。) 所以才有人又写了more出来。

more,跟据蔡文能老师的说法是“再多一点就好”,more 可以将所观察的文件跟据终端机的形态一页页的显示出来,再根据使用者的要求换页或卷行。如果使用者要在某一个文件中搜寻一个特定的字串,则按/然后跟着打所要搜寻的单字即可进行搜寻。more 也可以找得到。

more 的使用法如下:

more filename

如果你在使用中觉得已经看到了所要看的部份,可以按'q'离开 more 的使用。在使用中按'v'亦可以使用编辑器来编辑所观看的文件。

less 的用法与 more 极类似,原先它就是为了弥补 more 只能往前方卷页的缺点而设计。

less 的用法如下:

less filename

其与 more 不同的是它可以按 y 来往上卷一行,并且可以用“?”来往回搜寻你所要找的单字。

1.10 chmod

chmod 为变更文件模式用(change mode)。这个指令是用来更改文件的存取模式(accessmode)。在 linux 一个文件上有可读(r)可写(w)可执行(x)三种模式,分别针对该文件的拥有者(onwer)、同群者(groupmember)(你可以 ls -lg 来观看某一文件的所属的 group),以及

其他人(other)。一个文件如果改成可执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者有进入该目录之权利。chmod 就是用来变更一些文件的模式,其使用方式如下:

chmod [-fR] modefilename…

其参数的意义如下:

-f Force。chmod 不会理会失败的动作。

-R Recurive。会将所有子树下的所有子目录及文件改为你所要改成的模式。

mode 可以为一个三位或四位的八进位数字,来表示对某些对象的存取权。详情可参阅chmod(1)的 manual page 中有关 Absolute Modes 的说明。或是用一个字串来表示,请参考chmod(1)的说明。

2 关于进程处理的指令:

2.1 ps

ps 是用来显示目前你的进程或系统进程的状况。以下列出比较常用的参数,其选项说明如下:

-a 列出包括其他 users 的进程状况。

-u 显示 user-oriented 的进程状况。

-x 显示包括没有 terminal 控制的进程状况。

-w 使用较宽的显示模式来显示进程状况。

我们可以经由 ps 取得目前进程的状况,如pid,running state 等。

2.2 kill

kill 指令的用途是送一个 signal 给某一个进程。因为大部份送的都是用来杀掉进程的SIGKILL 或 SIGHUP,因此称为 kill。kill 的用法为:

kill [-SIGNAL] pid…

kill -l

SIGNAL 为一个 singal 的数字,从 0 到 31,其中 9 是 SIGKILL,也就是一般用来杀掉一些无法正常 terminate 的讯号。其余讯号的用途可参考 sigvec(2)中对 signal 的说明。你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形请参阅 mankill。

3 关于字串处理的指令:

3.1 echo

echo 是用来显示一字串在终端机上。echo -n 则是当显示完之后不会有跳行的动作。

3.2 grep/fgrep

grep 为一过滤器,它可自一个或多个文件中过滤出具有某个字串的行,或是自标准输入过滤出具有某个字串的行。

fgrep 可将欲过滤的一群字串放在某一个文件中,然后使用 fgrep 将包含有属于这一群字串的行过滤出来。

grep 与 fgrep 的用法如下:

grep [-nv] match_pattern file1 file2…

fgrep [-nv] -f pattern_file file1 file2…

-n 把所找到的行在行前加上行号列出

-v 把不包含 match_pattern 的行列出

-f 以 pattern_file 存放所要搜寻的字串

4 网路上查询状况的指令:

4.1 man

man 是手册(manual)的意思。Linux 提供线上辅助(on-line help)的功能,man 就是用来让使用者在使用时查询指令、系统呼叫、标准程式库函式、各种表格等的使用所用的。man的用法如下:

man [-m path] [[section]title]…

man [-m path] -k keyword…

-m path man 所需要的 manual database 的路径。我们也可以用设定环境变数 MANPATH的方式来取代-M 选项。

title 这是所要查询的目的物。

section 为一个数字表示 manual 的分类,通常 1 代表可执行指令,2 代表系统呼叫(systemcall),3 代表标准函数,等等。

像下面 man 查询的片段:

SEE ALSO

apropos(1),cat(1V),col(1V),eqn(1),lpr(1),more(1),

nroff(1),refer(1),tbl(1),troff(1),vgrind(1),vtroff(1),

whatis(1),eqnchar(7),man(7),catman(8)

我们如要参考 eqnchar(7)的资料,则我们就输入 man7 eqnchar,便能取得我们所要的辅助讯息。

-k keyword 用来将含有这项 keyword 的 title 列出来。

man 在 Linux 上是一项非常重要的指令,我们在本讲义中所述之用法均仅只是一个大家比较常用的用法以及简单的说明,真正详细的用法与说明还是要请你使用 man 来得到。

4.2 who

who 指令是用来查询目前有那些人在线上。

4.3 w

w 指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。

4.4 ku

ku 可以用来搜寻整个网路上的 user,不像 w 跟 who 只是针对 localhost 的查询。而且 ku提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档案 information-file 以条列的方式存放你的朋友的资料,再建立一个文件 hosts-file 来指定搜寻的机器名称。ku 的指令格式可由 ku -h 得到。

5 网路指令:

Linux 提供网路的连接,使得你可以在各个不同的机器上做一些特殊的事情,如你可以在系上的 iris 图形工作站上做图形的处理,在系上的 Sun 上读 News,甚至到学校的计中去找别系的同学 talk。这些工作可以利用 Linux 的网路指令,在你的位子上连到各个不同的机器上工作。如此一来,即使你在寝室,也能轻易的连至系上或集中来工作,不用像以前的人必须泡在冷冰冰的机房面。

这些网路的指令如下所述:

5.1 rlogin rsh

rlogin 的意义是 remotelogin,也就是经由网路到另外一部机器 login。

rlogin 的格式是:

rlogin host [-l username]

选项-l username 是当你在远方的机器上的 username 和 localhost 不同的时後,必须输入的选项,否则 rlogin 将会假设你在那边的 username 与 localhost 相同,然後在第一次 login 时必然会发生错误。

rsh 是在远方的机器上执行某些指令,而把结果传回 localhost。rsh 的格式如下:

rsh host [-l username]

如同 rlogin 的参数-l username,rsh 的-l username 也是指定 remote host 的 username。而command则是要在remotehost上执行的指令。如果没有指定command,则rsh会去执行rlogin,如同直接执行 rlogin。

不过 rsh 在执行的时候并不会像一般的 login 程序一样还会问你 password,而是如果你没有设定 trusttable,则 remotehost 将不会接受你的 request。

rsh 须要在每个可能会做为 remotehost 的机器上设定一个文件,称为。rhosts。这个文件

每一行分为两个部份,第一个是允许 login 的 hostname,第二个部份则是允许 login 的username。例如,在 ccsun7。csie。nctu。edu。tw 上头你的 username 为 ysjuang,而你的 home下面的。rhost 有以下的一行:

ccsun6。cc。nctu。edu。twu8217529

则在 ccsun6。cc。nctu。edu。tw 机器上的 useru8217529 就可以用以下的方法来执行 rsh程式:

$rsh ccsun7.csie.nctu.edu.tw –l ysjuang cat mbox

将 ysjuang 在 ccsun7.csie.nctu.edu.tw 上 的 mbox 文 件 内容显示在 localhost

ccsun6.cc.nctu.edu.tw 上。

而如果.rhost 有这样的一行,则 ccsun6.cc.nctu.edu.tw 上的 useru8217529 将可以不用输入

password 而直接经由 rsh 或 rloginlogin 到 ccsun7.csie.nctu.edu.tw 来。注意:

.rhost 是一个设定可以信任的人 login 的表格,因此如果设定不当将会让不法之徒有可

以乘机侵入系统的机会。如果你阅读 man5rhosts,将会发现你可以在第一栏用+来取代任何

hostname,第二栏用+来取代任何 username。

如一般 user 喜欢偷懒利用“+username”来代替列一长串 hostname,但是这样将会使得

即使有一台 PC 上跑 UNIX 的 user 有与你相同的 username,也可以得到你的 trust 而侵入你

的系统。这样容易造成系统安全上的危险。因此本系禁止使用这样子的方式写你的。rhost

档,如果发现将予以停机直到你找中心的工作人员将其改正为止。同理,如果你的第二个栏

位为+,如“hostname+”,则你是允许在某一部机器上的“所有”user 可以不用经由输入

password 来进入你的帐号,是壹种更危险的行为。所以请自行小心。

5.2 telnet

telnet 是一个提供 user 经由网路连到 remotehost。

telnet 的格式如下:

telnet [hostname| ip -address]

hostname 为一个像 ccsun1 或是 ccsun1.cc.nctu.edu.tw 的 name address,ip-address 则为一个由四个小於 255 的数字组成的 ip address,如 ccsun1 的 ip-address 为 140.113.17.173,

ccsun1.cc.nctu.edu.tw 的 ip-address 为 140.113.4.11。你可以利用 telnet ccsun1 或 telnet140.113.17.173 来连到 ccsun1。

port 为一些特殊的程式所提供给外界的沟通点,如资工系的 MUD 其 server 便提供一些port 让 user 由这些 port 进入 MUD 程式。详情请参阅 telnet(1)的说明。

5.3 ftp

ftp 的意义是 File Transfer Program,是一个很常应用在网路文件传输的程式。ftp 的格式如下:

ftp [hostname| ip-address]

其中 hostname |ip-address 的意义跟 telnet 中的相同。

在进入 ftp 之後,如果与 remotehost 连接上了,它将会询问你 username 与密码,如果输入对了就可以开始进行文件传输。

在 ftp 中有许多的命令,详细的使用方式请参考 ftp(1),这里仅列出较常用的 cd,lcd,mkdir,put,mput,get,mget,binary,ascii,prompt,help 与 quit 的使用方式。

ascii 将传输模式设为 ascii 模式。通常用於传送文字档。

binary 将传输模式设为 binary 模式,通常用於传送执行档,压缩档与影像档等。

cd remote-directory 将 remotehost 上的工作目录改变。

lcd [directory]更改 localhost 的工作目录。

ls [remote-directory]列出 remotehost 上的文件。

get remote-file[local-file]取得远方的文件。

mget remote-files 可使用通用字元一次取得多个文件。

put local-file[remote-file]将 localhost 的文件送到 remotehost。

mput local-files 可使用通用字元一次将多个文件放到 remotehost 上。

help [command]线上辅助指令。

mkdir directory-name 在 remotehost 造一个目录。

prompt 更改交谈模式,若为 on 则在 mput 与 mget 时每作一个文件之传输时均会询问。

quit/bye 离开 ftp。

利用 ftp,我们便可以在不同的机器上将所需要的资料做转移,某些特别的机器更存放大量的资料以供各地的使用者抓取,本校较著名的 ftpserver 有 NCTUCCCA 与系上的ftp.csie.nctu.edu.tw。这些 ftpserver 均有提供一个 user 称为 anonymous,一般的“外来客”可

以利用这个 username 取得该 server 的公共资料。不过 anonymous 在询问 password 时是要求使用 anonymous 的使用者输入其 emailaddress,以往有许多台湾的使用者在使用国外的ftpserver 时并没有按照人家的要求输入其 emailaddress,而仅是随便打一些字串,引起许多internetuser 和管理者的不满,对台湾的使用者的风评变得很差,因此遵循各 ftpserver 的使用规则也是一件相当重要的事。

6 关於通讯用的指令:

6.1 write

这个指令是提供使用者传送讯息给另一个使用者,使用方式:

write username [tty]

6.2 talk/ytalk/cytalk/ctalk

Linux 专用的交谈程式。会将屏幕分隔开为你的区域和交谈对象的区域,同时也可和不同机器的使用者交谈。使用方式:

talk username@host

6.3 mesg

选择是否接受他人的 messege,若为 messegeno 则他人的 messege 将无法传送给你,同时他也无法干扰你的工作。使用方法:

mesg [-n|-y]

6.4 mail/elm

在网路上的 email 程式,可经由此程式将信件 mail 给他人。使用方式:

mail [username]

mail -fmailboxfile

如有信件,则直接键入 mail 可以读取你的 mail。

elm 提供较 mail 更为方便的介面,而且可做线上的 alias。你可以进入 elm 使用上下左右键来选读取的信件,并可按 h 取得线上的 help 文件。使用方式:

elm[usernmae]

elm-fmailboxfile

7 编译器(Compiler)

Compiler 的用处在於将你所撰写的程式翻译成一个可执行文件。在资工系常用的程式语言是 C,pascal,FORTRAN 等。你可以先写好一个 C 或 Pascal 或 FORTRAN 的原始程式档,再用这些 compiler 将其翻成可执行档。你可以用这个方法来制造你自己的特殊指令。

7.1 cc/gcc(CCompiler)

/usr/bin/cc

/usr/local/bin/gcc

语法:cc [-oexecfile]source

gcc [-oexecfile]source

execfile 是你所希望的执行档的名称,如果没有加上-o 选项编译出来的可执行档会以 a。

out 做为档名。source 为一个以。c 做为结尾的 C 程式档。请参阅 cc(1)的说明。

7.2 pc(PascalCompiler)

/usr/local/bin/pc

语法:pc[-oexecfile]source

execfile 是你所希望的执行档的名称,如果没有加上-o 选项编译出来的可执行档会以 a。

out 做为档名。source 为一个以。p 做为结尾的 Pascal 程式档。请参阅/net/home5/lang/man中 pc(1)的说明。

7.3 f77(FortranCompiler)

/net/home5/lang/f77

语法:f77[-oexecfile]source

execfile 是你所希望的执行档的名称,如果没有加上-o 选项编译出来的可执行档会以 a。

out 做为档名。source 为一个以。p 做为结尾的 FORTRAN 程式档。

8 有关列印的指令:

以下为印表所会用到的指令,在本系的印表机有 lp1,lp2(点矩阵印表机),lw,sp,ps,compaq(雷射印表机),供使用者使用。

8.1 lpr

lpr 为用来将一个文件印至列表机的指令。

用法:

lpr -P[printer]file1file2file3… lpr-P[printer]

例子:

lpr-Plp1hello. chello. lsthello. map

lpr-Plp1

前者以参数输入所要印出的文件内容,後者列印标准输入文件(standardinput)的内容,因已将 hello. c 转向到标准输入,故会印出 hello. c 的文件内容。

8.2 lpq

lpq 是用来观察 printerqueue 上的 Jobs。

用法:

lpq-P[printer]

8.3 lprm

lprm 是用来取消列印要求的指令。通常我们有时会印错,或是误送非文字档资料至printer,此时就必须利用 lprm 取消列印 request,以免造成资源的浪费。

用法:

lprm -Pprinter

lprm 用来清除 printerqueue 中的 Jobs,如果你使用 JobId 作为参数,则它将此 Job 自printerqueue 清除,如果你用 username 作为参数,则它将此 queue 中所有 Owner 为此 username的 Jobs 清除。

linux 下如何回到根目录?

cd www , 意思是 到www目录; cd .. , 意思是到上一级目录;

cd - ,意思是返回到上次的目录,类似windows返回 ; cd /,意思是回到根目录。

cd ,意思是回到当前用户根目录

在linux终端(terminal)中执行python文件


  • 交互式环境

在linux命令行模式中运行python,进入python交互式环境,写程序后直接输出结果。

  • 使用编辑器生成.py文件

将print “hello world”写入helloworld.py中,使用python helloworld.py输出hello world(必须找到目标文件的正确位置)。如果在输出前想查看该文件中的内容,可使用cat命令在终端中获得并显示。

cat helloword.py    //输出内容

通过学习发现在linux下可直接像运行.exe文件一样运行.py文件,方法是在.py文件的第一行加上下面的任意一行:

#!/usr/bin/python
#!/usr/bin/env python12

二者的区别在于: #!/usr/bin/python是告诉操作系统在调用脚本时调用/usr/bin目录下的python解释器,python解释器的路径被明确给出。 #!/usr/bin/env python是为了防止用户没有将python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到env设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。#!/usr/bin/env python会去环境设置寻找python目录通常推荐第二种写法。 需要再次强调的是,上述解析路径应该放在 Python 脚本的第一行。

然后在terminal中使用chmod命令(用于修改目录或文件的访问权限),下面修改目标文件helloworld.py的权限为允许所有用户访问并可执行。

chmod a+x helloword.py

然后不需要python命令即可执行目标文件。

./helloword.py    //否则用Python helloword.py

你可能感兴趣的:(linux,linux)