linuxtogo
『壹』 新買的聯想台式電腦linux系統怎麼進BIOS
開機時屏幕上有顯示的,一般是按下電源開關就開始不停的按F2或ESC或DEL,跟操作系統無關,只跟主板有關。
電源鍵按下後立即按PAUSE暫停,然後拍照發個照片上來,手把手教你。
『貳』 Linux中的kill -s命令的意思是可以發送指定的信號哈,但信號通常是:TREM和HUP等等
有-s,下面兩種寫法都對:
kill -s 信號名 進程號
kill -信號名 進程號
Usage:
kill pid ... Send SIGTERM to every process listed.
kill signal pid ... Send a signal to every process listed.
kill -s signal pid ... Send a signal to every process listed.
kill -l List all signal names.
kill -L List all signal names in a nice table.
kill -l signal Convert between signal numbers and names.
通過kill -l 可以看到所有信號名
『叄』 linux 內核4.9.11如何使用熱拔插
在Linux系統中,當系統配置發生變化時,如:添加kset到系統;移動kobject,一個通知會從內核空間發送到用戶空間,這就是熱插拔事件。熱插拔事件會導致用戶空間中相應的處理程序(如udev,mdev)被調用,這些處理程序會通過載入驅動程序,創建設備節點等來響應熱插拔事件。
操作集合
Structkset_uevent_ops{
int(*filter)(structkset*kset,structkobject*kobj);
constchar*(*name)(structkset*kset,structkobject*kobj);
int(*uevent)(structkset*kset,structkobject*kobj,
structkobj_uevent_env*env);
}
當該kset所管理的kobject和kset狀態發生變化時(如被加入,移動),這三個函數將被調用。
Filter:決定是否將事件傳遞到用戶空間。如果filter返回0,將不傳遞事件。
Name:負責將相應的字元串傳遞給用戶空間的熱插拔處理程序。
Uevent:將用戶空間需要的參數添加到環境變數中。
int(*uevent)(structkset*kset,
structkobject*kobj,/*產生事件的目標對象*/
char**envp,/*一個保存其他環境變數定義(通常為NAME=value的格式)的數組*/
intnum_envp,/*環境變數數組中包含的變數數(數組大小)*/
char*buffer,intbuffer_size/*環境變數被放入的緩沖區的指針和位元組數*/
);/*返回值正常時是,若返回非零值將終止熱插拔事件的產生*/
實例源碼:temp.rar
點擊(此處)折疊或打開
/**
*熱插拔事件
*Lzy2012-7-27
*/
#include<linux/device.h>
#include<linux/mole.h>
#include<linux/kernel.h>
#include<linux/init.h>
#include<linux/string.h>
#include<linux/sysfs.h>
#include<linux/stat.h>
#include<linux/kobject.h>
static struct attribute test_attr=
{
.name="kobj_config",
.mode=S_IRWXUGO,
};
static struct attribute*def_attrs[]=
{
&test_attr,
NULL,
};
ssize_t kobj_test_show(struct kobject*kobject,struct attribute*attr,char*buf)
{
printk("Have show --> ");
printk("attrname: %s. ",attr->name);
sprintf(buf,"%s ",attr->name);
return strlen(attr->name)+2;
}
ssize_t kobj_test_store(struct kobject*kobject,struct attribute*attr,constchar*buf,size_t size)
{
printk("Have store --> ");
printk("write: %s. ",buf);
return size;
}
static struct sysfs_ops obj_test_sysops=
{
.show=kobj_test_show,
.store=kobj_test_store,
};
void obj_test_release(struct kobject*kobject)
{
printk("[kobj_test: release!] ");
}
static struct kobj_type ktype=
{
.release=obj_test_release,
.sysfs_ops=&obj_test_sysops,
.default_attrs=def_attrs,
};
staticintkset_filter(struct kset*kset,struct kobject*kobj)
{
//intret=0;
//struct kobj_type*ktype=get_ktype(kobj);/*得到屬性類型*/
//ret=(ktype==&ktype_part);
printk("Filter: kobj %s. ",kobj->name);
return 1;
}
staticconstchar*kset_name(struct kset*kset,struct kobject*kobj)
{
static char buf[20];
/*struct device*dev=to_dev(kobj);
if(dev->bus)
return dev->bus->name;
elseif(dev->class)
return dev->class->name;
else
*/{
printk("Name kobj %s. ",kobj->name);
sprintf(buf,"%s","kset_name");
}
return buf;
}
staticintkset_uevent(struct kset*kset,struct kobject*kobj,struct kobj_uevent_env*env)
{
inti=0;
printk("uevent: kobj %s. ",kobj->name);
while(i<env->envp_idx)
{
printk("%s. ",env->envp[i]);
i++;
}
return 0;
}
static struct kset_uevent_ops uevent_ops=
{
.filter=kset_filter,
.name=kset_name,
.uevent=kset_uevent,
};
struct kset*kset_p;
struct kset kset_c;
staticint__init kset_test_init(void)
{
intret=0;
printk("kset test init! ");
/*創建並注冊 kset_p*/
kset_p=kset_create_and_add("kset_p",&uevent_ops,NULL);
kobject_set_name(&kset_c.kobj,"kset_c");
kset_c.kobj.kset=kset_p;/*添加 kset_c 到 kset_p*/
/*對於較新版本的內核,在注冊 kset 之前,需要
*填充 kset.kobj 的 ktype 成員,否則注冊不會成功*/
kset_c.kobj.ktype=&ktype;
ret=kset_register(&kset_c);
if(ret)
kset_unregister(kset_p);
return ret;
}
static void __exit kset_test_exit(void)
{
printk("kset test exit! ");
kset_unregister(&kset_c);
kset_unregister(kset_p);
}
mole_init(kset_test_init);
mole_exit(kset_test_exit);
MODULE_AUTHOR("Lzy");
MODULE_LICENSE("GPL");
『肆』 linux下怎麼安裝Go開發環境
一、Go安裝使用
1、下載Go源碼包
https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
上傳到/usr/local/src目錄下
2、編譯安裝Go到/usr/local
tar zxvf go1.6.3.linux-amd64.tar.gz -C /usr/local/
#註:必須使用root賬戶或者使用sudo來解壓縮Go源碼包
3、設置PATH環境變數,添加/usr/local/go/bin到環境變數
export PATH=$PATH:/usr/local/go/bin
4、安裝到自定義位置
Go二進制文件默認安裝到/usr/local/go,但是可以安裝Go工具到不同的位置,可以自行定義,只需要設置正確的環境變數。
例如,安裝Go到家目錄下,必須添加環境變數到$HOME/.profile
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
註:安裝Go到其他目錄時,GOROOT必須設置為環境變數
5、檢查是否正確安裝程序
通過設置一個工作區和建立一個簡單的程序,檢查是否正確安裝了一個簡單的程序。創建一個目錄包含您的工作空間,例如/data/work,並設置GOPATH環境變數指向的位置。
export GOPATH=/data/work
#如果不存在/data/work,需要新建
然後,在你的工作內創建src/github.com/user/hello,如果使用github,可以使用自己的用戶名代替user,在hello目錄下,新建hello.go
# cat hello.go
package main
import "fmt"
func main {
fmt.Printf("hello,world!\n")
}
#使用go編譯hello.go
go install github.com/user/hello
#上面的命令講名叫hello(or hello.exe)的程序放到你的工作區內,執行下面命令,會得到輸出結果。
$GOPATH/bin/hello
hello,world!
#當出現hello,world!表明Go已經安裝成功可以工作。
二、Go工作區介紹
1、機構組織代碼概述
Go語言程序通常將所有的代碼保存在一個工作區中。
工作區包含許多版本控制庫(由Git管理)。
每個存儲庫包含一個或多個包。
每個包由一個或多個在一個目錄中的源文件組成。
一個包的目錄的路徑決定其導入路徑。
註:同於其他的編程環境中,每一個項目都有一個獨立的工作區且工作區是緊密聯系在一起的版本控制庫。
2、工作區介紹
工作區是一個目錄層次結構,它的根目錄有三個目錄:
src 包含Go源文件
pkg 包含對象和包
bin 包含可執行命令
Go工具創建源碼包並安裝二進制文件到pkg和bin目錄下
src目錄通常包含多個版本控制庫(如Git或Mercurial),跟蹤一個或多個源包的開發。
下面展示一個好的工作區的例子:
bin/
hello # command executable
outyet # command executable
pkg/
linux_amd64/
github.com/golang/example/
stringutil.a # package object
src/
github.com/golang/example/
.git/ # Git repository metadata
hello/
hello.go # command source
outyet/
main.go # command source
main_test.go # test source
stringutil/
reverse.go # package source
reverse_test.go # test source
golang.org/x/image/
.git/ # Git repository metadata
bmp/
reader.go # package source
writer.go # package source
... (many more repositories and packages omitted) ...
上面的屬性圖展示了一個包含兩個存儲庫(example和image)的工作區,example 存儲庫包含兩個命令(hello,outyet),image庫包含bmp包和幾個其他的包。
一個典型的工作區包含包含許多軟體包和命令的多個源庫。大多數程序員將所有的源代碼和依賴關系保存在一個工作區中
3、GOPATH環境變數設置
GOPATH環境變數指定工作區的位置。它很可能是唯一的環境變數,代碼開發時需要設置。
開始,創建一個工作區目錄並設置相應的gopath。您的工作區可以位於任何你喜歡的地方,但我們將在這個文檔中使用/data/work。請注意,這不能是您的「Go安裝」路徑相同。
mkdir -p /data/work
export GOPATH=/data/work
為了方便。添加工作區的bin到PATH中
export PATH=$PATH:$GOPATH/bin
4、導入路徑
一個導入路徑是唯一標識一個包的字元串。一個包的導入路徑對應於它在工作區內或遠程存儲庫中的位置。
從標准庫的軟體包中給出了短的導入路徑等。對於您自己的包,您必須選擇不可能和未來添加到標准庫或其他外部庫的基礎路徑沖突的路徑。
注意,你不需要將你的代碼發布到一個遠程存儲庫之前,你可以建立它。這只是一個很好的習慣來組織你的代碼,如果你有一天會出版它。在實踐中,你可以選擇任何任意的路徑名稱,只要它是唯一的標准庫和更大的去生態系統。
我們將使用github.com/user作為我們的基本路徑。在您的工作區中創建一個目錄,以保持源代碼:
mkdir -p $GOPATH/src/github.com/user
5、第一個項目
編譯並運行一個簡單的程序,首先選擇一個包的路徑(我們將使用github.com/user/hello)和創建在您的工作區相應的軟體包目錄:
mkdir $GOPATH/src/github.com/user/hello
創建名叫hello.go的文件,上面創建過,此處略過。
cd $GOPATH/src/github.com/user/hello
go install
$GOPATH/bin/hello
或者:
hello
如果你使用的是一個源代碼管理系統,現在是一個很好的時間來初始化一個存儲庫,添加文件,並提交你的第一次更改。再次,這一步是可選的:您不需要使用源代碼管理來寫代碼。
cd $GOPATH/src/github.com/user/hello
git init
Initialized empty Git repository in /data/work/src/github.com/user/hello/.git/
git add hello.go
git commit -m "first commit"
[master (root-commit) bbfb477] first commit
6、first library
mkdir $GOPATH/src/github.com/user/stringutil
下一步,在目錄下創建一個名為reverse.go文件中有下列內容:
// Package stringutil contains utility functions for working with strings.
package stringutil
// Reverse returns its argument string reversed rune-wise left to right.
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
使用go build測試包的編譯
$ go build github.com/user/stringutil
如果當前位置源碼包目錄,只需要:
go build
上面操作並不會產生一個輸出文件,必須使用go install,把包和對象輸出到工作去的pkg目錄內
確認stringutil包創建完成後,修改原始hello.go,使用stringutil包:
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("\n !oG ,olleH"))
}
無論使用go安裝包還是二進制文件,所有相關的依賴都會自動安裝。所以當你安裝hello程序時:
$ go install github.com/user/hello
對應的stringutil包會自動安裝好。
執行新的hello程序,可以看到消息已經被反轉
# hello
Hello, Go!
完成上面操作之後,工作區應該為:
├── bin
│ └── hello # command executable
├── pkg
│ └── linux_amd64 # this will reflect your OS and architecture
│ └── github.com
│ └── user
│ └── stringutil.a # package object
└── src
└── github.com
└── user
├── hello
│ └── hello.go # command source
└── stringutil
└── reverse.go # package source
注意:go install會把庫文件stringutil.a放到pkg/linux_amd64下邊(目錄結構跟源代碼結構一樣)。這樣可以go命令可以直接找到對應的包對象,避免不必要的重復編譯。linux_amd64是為了根據操作系統和你的系統架構交叉編譯。
所有Go可執行程序都通過靜態方式鏈接在一起,所以在運行時是不需要相關的包對象(庫)。
7、包命令
所有的Go源代碼都以下面的語句開始:
package name
其中name就是包引用默認的名稱,一個包中的所有文件必須使用同一個包名,可執行命令必須是main。
一個二進制文件下所有的包名不需要唯一,但是引用路徑必須唯一
8、測試
Go自帶了一個輕量級的測試框架,由go test和testing包組成。
可以通過新建xx_test.go寫一個測試,其中包含若干個TestXXX函數。測試框架會自動執行這些函數;如果函數中包含tError或t.Fail, 對應的測試會被判為失敗。
添加一個針對stringutil的測試文件$GOPATH/src/github.com/user/stringutil/reverse_test.go,包含以下內容:
package stringutil
import "testing"
func TestReverse(t *testing.T) {
cases := []struct {
in, want string
}{
{"Hello, world", "dlrow ,olleH"},
{"Hello, 世界", "界世,olleH"},
{"", ""},
}
for _, c := range cases {
got := Reverse(c.in)
if got != c.want {
t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
}
}
}
#通過go test測試
# go test github.com/user/stringutil
ok github.com/user/stringutil 0.002s
#同樣的,在包文件夾下可以忽略路徑而直接執行go test
[root@zabbix stringutil]# go test
PASS
ok github.com/user/stringutil 0.002s
9、遠程包
包的引用路徑用來描述如何通過版本控制系統獲取包的源代碼。go工具通過引用路徑自動從遠程代碼倉庫獲取包文件。比如本文中用的例子也對應的保存在github.com/golang/example下。go可以通過包的代碼倉庫的url直接獲取、生成、安裝對應的包。
[root@zabbix ~]# go get github.com/golang/example/hello
[root@zabbix ~]# $GOPATH/bin/hello
Hello, Go examples!
如果工作區中不存在對應的包,go會將對應的包放到GOPATH環境變數指明的工作區下。(如果包已經存在,go跳過代碼拉去而直接執行go install)
建議詳細看一下http://www.linuxprobe.com/set-go-env.html這個,有圖文
『伍』 如何在Mac下顯示Finder中的所有文件
在Unix下工作,你可能需要處理一些「特殊「文件或文件夾,例如/usr,/bin,etcf,或一些"dot files"(如.bash_profile)。但是Linux/Unix系統處於安全、帳戶許可權等原因的考慮,普通帳戶在正常情況下是看不到這些文件或文件夾的。
對於一般的查看文件夾,可以在Finder中直接使用"Go | Go to folder"命令,快捷鍵 Shift+Command+G 可能會更加方便。筆者經常使用它。如果你還沒有使用過這個命令,不妨現在試試打開「/usr/local」。方法1的缺陷正如它的名字「Go to folder"──它只能打開文件夾,不能查看操作隱藏文件。
defaults write com.apple.Finder AppleShowAllFiles NO回車,重啟Finder.如果想還原成默認的隱藏,重復上面的步驟,把命令中的YES改為NO即可,即運行!
『陸』 linux 運行一個可執行文件,出現 line 1: syntax error: unexpected "(" 的錯誤
出現 line 1: syntax error: unexpected "(" 的錯誤說明可執行腳本出現異常,具體錯誤在腳本的第一行,是語法錯誤,「(」不是預期的。
題主需要檢查腳本中的實際內容,根據具體內容去排除問題,腳本才能正確執行。
(6)linuxtogo擴展閱讀
linux下shell腳本的基本語法結構介紹:
shell腳本開頭以#! /bin/bash表示說明這是一個shell腳本
腳本文件的名字是以.sh結尾的,用於區分這是一個shell腳本文件
shell執行方法有兩種,一種是給予許可權,使用sh shell.sh或./shell.sh的方式,一種是bash shell.sh的方式
查看腳本執行過程 -x
[root@localhost src]# sh -x 1.sh + echo 123
123
exit
查看腳本語法是否有錯誤 -n
[root@localhost src]# sh -n 1.sh 1.sh: line 5: syntax error: unexpected end of file
『柒』 誰能告訴我,英語寫信的格式(加分)
1、信頭(Heading)
指發信人的姓名(單位名稱)、地址和日期,一般寫在信紙的右上角。一般公函或商業信函的信紙上都印有單位或公司的名稱、地址、電話號碼等,因此就只需在信頭下面的右邊寫上寫信日期就可以了。
英文地址的寫法與中文完全不同,地址的名稱按從小到大的順序:第一行寫門牌號碼和街名;第二行寫縣、市、省、州、郵編、國名;然後再寫日期。標點符號一般在每一行的末尾都不用,但在每一行的之間,該用的還要用,例如在寫日期的時候。
日期的寫法,如1997年7月30日,英文為:July 30,1997(最為普遍); July 30th,1997;30th July,1997等。1997不可寫成97。
2、信內地址(Inside Address)
在一般的社交信中,信內收信人的地址通常省略,但是在公務信函中不能。將收信人的姓名、地址等寫在信頭日期下方的左角上,要求與對信頭的要求一樣,不必再寫日期。
3、稱呼(Salutation)
是寫信人對收信人的稱呼用語。位置在信內地址下方一、二行的地方,從該行的頂格寫起,在稱呼後面一般用逗號(英國式),也可以用冒號(美國式)。
(1)寫給親人、親戚和關系密切的朋友時,用Dear或My dear再加上表示親屬關系的稱呼或直稱其名(這里指名字,不是姓氏)。例如:My dear father,Dear Tom等。
(2)寫給公務上的信函用Dear Madam,Dear Sir或Gentleman(Gentlemen)。注意:Dear純屬公務上往來的客氣形式。Gentlemen總是以復數形式出現,前不加Dear,是Dear Sir的復數形式。
(3)寫給收信人的信,也可用頭銜、職位、職稱、學位等再加姓氏或姓氏和名字。例如:Dear Prof. Tim Scales, Dear Dr.John Smith。
4、正文(Body of the Letter)
位置在下面稱呼語隔一行,是信的核心部分。因此要求正文層次分明、簡單易懂。和中文信不同的是,正文中一般不用Hello!(你好!)
正文有縮進式和齊頭式兩種。每段書信第一行的第一個字母稍微向右縮進些,通常以五個字母為宜,每段第二行從左面頂格寫起,這就是縮進式。
但美國人寫信各段落往往不用縮進式,用齊頭式,即每一行都從左面頂格寫起。商務信件大都採用齊頭式的寫法。
5、結束語(Complimentary Close)
在正文下面的一、二行處,從信紙的中間偏右處開始,第一個詞開頭要大寫,句末用逗號。不同的對象,結束語的寫法也不同。
(1)寫給家人、親戚,用Your loving grandfather,Lovingly yours,Lovingly等;
(2)寫給熟人、朋友,用Yours cordially,Yours affectionately等;
(3)寫業務信函用Truely yours(Yours truely),Faithfully yours(Yours faithfully)等;
(4)對上級、長輩用Yours obediently(Obediently yours),Yours respectfully(Respectfully yours)等。
6、簽名(Signature)
低於結束語一至二行,從信紙中間偏右的地方開始,在結束語的正下方,在簽完名字的下面還要有用打字機打出的名字,以便識別。職務、職稱可打在名字的下面。當然,寫給親朋好友的信,就不必再打了。
7、附言(Postscript)
一封信寫完了,突然又想起遺漏的事情,這時用P.S.表示,再寫上遺漏的話即可,要長話短說。通常在信末簽名下面幾行的左方,應於正文齊頭。
注意:在正式的信函中,應避免使用附言。
8、附件(Enclosure)
信件如果有附件,可在信紙的左下角,註上Encl:或Enc:,例如:Encl:2 photos(內附兩張照片)。如果福建附件不止一項,應寫成Encl:或Encs。
我們有時可看到在稱呼與正文之間有Re:或Subject:(事由)字樣。一般在信紙的中間,也可與「稱呼」對齊。還應在底下加橫線,以引起讀信人的注意,使收信人便於在讀信之前就可了解信中的主要內容。事由一般在公務信函中使用,也可以省略。
『捌』 Linux不能夠撥號上網
1、LINUX下撥號可以用在操作系統上安裝撥號軟體rp-pppoe,之後設置再上網,這里使用使用教程http://kokoc365.blog.163.com/blog/static/10679692008104111732488/
2、另外,還可以通過設置路由器,來實現計算機自動上網(即可以不撥號)。
PS:在xp裡面安裝了虛擬機【Linux】,Linux自動撥號,物理機不撥號不是很明白……
『玖』 win7有什麼新功能
在Windows 7中,集成了一個名為Win RE(Windows Recovery Environment,Windows恢復環境)的開機修復功能。利用該功能,當系統出現問題而不能啟動的時候,我們可通過該功能讓系統進行自動修復。
1、系統修復
當系統不能正常啟動時,在開機時按下F8鍵(通常在系統啟動失敗後會自動跳到該界面)可進入Windows 7「高級啟動選項」菜單。和此前的系統不同,Windows 7的高級啟動菜單項目要多一些,其中第一項「修復計算機」就是所謂的Win RE。選中該項後按回車鍵,可進入系統修復向導。在此不需要用戶的過多參與,只需在修復時依次確認三次其它的事情交給系統,大概經過10分鍾左右(與系統安裝的軟體和硬體性能相關)的時間系統就會修復完畢。
2、功能遷移
當然,使用Windows 7的用戶還不是很多,不過沒關系我們可將該功能遷移到Vista中,讓其也具備該功能。
首先是復制相關文件。找一台已安裝了Windows 7的計算機,依次進入「C:Recovery30f6d532-e054-11dd-997b-e25e3f2c6222」文件夾(C為Windows 7的系統分區,至於30f6d532-e054-11dd-997b-e25e3f2c6222不同的計算機會有不同。另外,Recovery為隱藏文件夾需要設置顯示所有系統文件才能看到)。
在目錄下有兩個文件Winre.wim和boot.sdi,其大小分別為139MB和3.0MB(不同的版本大小略有不同),將這兩個文件通過移動設備拷貝到安裝有Vista的電腦的非系統分區(比如D分區),然後將其文件屬性設置為隱藏、系統、只讀屬性。
其次創建一個批處理文件,通過該批處理文件在系統啟動菜單中添加名為「Windows RE修復計算機」的啟動項。加入我們剛才拷貝的系統修復文件Winre.wim、boot.sdi在D盤根目錄下,可拷貝下面的代碼將其保存為fix.cmd。
(9)linuxtogo擴展閱讀:
Windows 7和Windows Vista一脈相承有不少相同的系統組件,但是這些組件在Windows 7中功能更加豐富,性能得到了提升。從中選擇幾個系統工具,進行一番體驗。
1、可自定義的磁碟碎片整理
磁碟碎片整理從Windows 98就有了,但是windows版本的更新換代並沒有對其做更大的改進,其磁碟整理的效率確實太低了。Windows 7中的磁碟碎片整理的性能有了很大的提升,並且用戶可根據需要進行自定義。
2、功能更加完善的系統還原
系統還原是Windows系統的標准組件,在Windows Vista中系統還原比較簡單,可供設置的選項比較少,不能滿足某些特殊需要。而在Windows 7中系統還原有了較大的改進,方便了用戶自定義的需求。
3、問題反饋錄像機
Windows用戶對於微軟的錯誤報告並不熱心,因為我們的報告的問題往往有去無回。在Windows Vista中微軟對用戶報告的問題給予了必要的重視,會對用戶反饋解決方案。在Windows 7中微軟添加了一個名為「問題反饋錄像機」的工具,該工具應該是微軟為方便用戶反饋問題而設計的。
4、其他有趣的工具
另外,在Windows 7中對以前的某些工具進行了改進還增加了一些新的工具。通過筆者的使用體驗,這些工具比較實用而且很有趣。
參考資料:網路-win7新功能
『拾』 從網上下載的doc文件怎麼在手機上打開
安裝手機版的office軟體啊 不過貌似只有智能機才有手機版的office