真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vslinux命令,vs編譯linux程序

linux下切換用戶命令?

#1:runuser命令runuser命令使用一個替代的用戶或者組ID運行一個Shell。這個命令僅在root用戶時有用。僅以會話PAM鉤子運行,并且沒有密碼提示。如果用一個非root用戶,并且該用戶沒有權(quán)限設(shè)置user ID,這個命令將會因為程序沒有setuid而失敗。因runuser不會運行認(rèn)證和賬戶PAM鉤子,它比su更底層。語法:代碼如下:runuser -l userNameHere -c 'command'runuser -l userNameHere -c '/path/to/command arg1 arg2'舉例來說,作為一個root用戶,你也許想檢查下oracle用戶下的shell資源限制,輸入:代碼如下:# runuser -l oracle -c 'ulimit -SHa'或者監(jiān)察下nginx或lighttpd web服務(wù)器限制:代碼如下:# runuser -l nginx -c 'ulimit -SHa'或代碼如下:# runuser -l lighttpd -c 'ulimit -SHa'有時,root用戶由于權(quán)限(安全)問題不能瀏覽NFS掛載的共享:代碼如下:# ls -l /nfs/wwwroot/cyberciti.biz/http或代碼如下:# cd /nfs/wwwroot/cyberciti.biz/http可能的輸出:代碼如下:-bash: cd: /nfs/wwwroot/cyberciti.biz/http/: Permission denied盡管如此,apache用戶被允許瀏覽或訪問掛載在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系統(tǒng):代碼如下:# runuser -l apache -c 'ls -l /nfs/wwwroot/cyberciti.biz/http/'或代碼如下:# runuser -l apache -c 'cd /nfs/wwwroot/cyberciti.biz/http/; vi index.php'使用runuser命令,無需使用密碼,并且,只能在root用戶下使用??捎眠x項:-l: 讓shell成為登錄shell,用 runuser -l PAM 文件替代默認(rèn)的-g:指定主要的組-G 追加組-c:命令,要傳到shell的單個命令--session-command=COMMAND:使用-c傳遞單個命令道shell中并且不創(chuàng)建新的會話-m: 不重置環(huán)境變量。#2:su命令su命令允許你成為一個超級用戶或者替代用戶(substitute user),欺騙用戶(spoof user),設(shè)置用戶(set user)或者切換用戶(switch user)。它允許一個Linxu用戶切換當(dāng)前用戶到那些你知道密碼的目標(biāo)用戶,切換包括與之關(guān)聯(lián)的運行中的控制臺(console)或者Shell,它的語法如下:代碼如下:su -su - username切換到root用戶su命令會詢問目標(biāo)用戶的密碼,在你的shell命令行中輸入 su - 來切換到root用戶(你必須知道root用戶的密碼):代碼如下:vivek@wks01:~$ su -或代碼如下:vivek@wks01:~$ su - root輸出示例:Password:代碼如下:root@wks01:/root# logoutvivek@wks01:~$如果輸入了正確的root密碼,會話的所有權(quán)(這里應(yīng)該指當(dāng)前控制臺的上下文——譯注)將改為root賬戶。輸入logout可以退出一個root登錄的shell,輸入 whoami或者id命令來驗證當(dāng)前會話的所有者:whoami或id用root賬戶運行命令語法是:代碼如下:su - root -c "command"或代碼如下:su - -c "command arg1"查看/root目錄下的內(nèi)容,這些原本是普通用戶無法訪問的,運行:代碼如下:su - root -c "ls -l /root"需要注意的是,Linix和一些Unix-like系統(tǒng)有一個wheel用戶組,并且只允許這個組內(nèi)的用戶使用su切換到root。使用su命令來讓其他用戶運行命令下面這個命令是切換到oracle的賬戶,并且顯示限制清單:代碼如下:$ su - oracle -c 'ulimit -aHS'同樣, 如果提供了正確的oracle密碼,會話所有權(quán)將會變成oracle賬戶。su命令的日志保存在系統(tǒng)日志中,一般是在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(RHEL/CentOS)。#3: sudo命令sudo以另外的用戶來執(zhí)行一個命令,但是它跟著一組關(guān)于那些用戶可以以那些其他用戶執(zhí)行那些命令的規(guī)則(有點繞口——譯注)。這個規(guī)則在/etc/sudoers這個文件中被定義。不像su,sudo驗證用戶是靠用戶自己的密碼而不是那個要切換的用戶密碼。當(dāng)提供一個審計跟蹤命令和他們的參數(shù)時(原文:...whileproviding an audit trail of the commands and their arguments——譯注)sudo允許一個系統(tǒng)管理員給某些用戶(或用戶組)委派以root或其他用戶來運行某些(或全部)命令的權(quán)限。這允許無需在用戶之間共享密碼就可以在指定宿主上將指定命令委派給指定用戶。語法如下:代碼如下:sudo commandGUI工具注意事項(su和sudo的前端GUI)gksu 命令是su的前臺,gksudo 是sudo的前端。他們的主要用途是用來運行需要root權(quán)限但不需要運行一個X terminal emulator和使用直接使用su的圖形化命令。語法如下:代碼如下:gksu [-u ] [options] gksudo [-u ] [options] 僅輸入gksu,將會顯示下面這個彈窗:然后,你將會被要求輸入root用戶的密碼:你也可以直接運行下面代碼:代碼如下:gksu -u root 'ls /root'或,以oracle用戶運行命令:代碼如下:gksu -u oracle 'ulimit -aHS'或作為root登錄:代碼如下:gksu -u root -l總結(jié):runuser VS su VS sudo

創(chuàng)新互聯(lián)建站專注于申扎網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供申扎營銷型網(wǎng)站建設(shè),申扎網(wǎng)站制作、申扎網(wǎng)頁設(shè)計、申扎網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造申扎網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供申扎網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

linux下有沒有和VS的#pragma comment(lib, WNLIB)相同的命令

沒有,你可以考慮動態(tài)加載庫文件.

至少我沒有在linux下這樣用過,在那下面用的動態(tài)加載.

也可以靜態(tài)加載.

但是#pregma comment(lib,WNLIB) 明顯是MFC加載庫的最簡單方法么.

我在Windows下用VS2013編寫的程序,如何能讓它在Linux上也能編譯運行?

總共又三種方案:mingw+codeblocks,是windows下的gcc編譯工具+跨的輕量ide,可以編譯c++的程序,還可以使用wxWidget(跨的界面工具)

使用cygwin,是windows下中間件級別的編譯工具。可以在cygwin下用命令行編譯程序。

使用vmware或者其他虛擬機(jī),安裝目標(biāo)linux系統(tǒng),并且編譯。這是虛擬硬件級別的編譯工具,其編譯的程序是完全可以在linux系統(tǒng)上運行的。

什么是使用在Mac VS Linux的終端之間的區(qū)別是什么

由于都是默認(rèn)bash,shell,那么bash自帶的功能基本都一樣,且macos從BSD那繼承了很多東西,BSD和linux又高度兼容,所以差異不太大

好多命令行工具,是在bash下調(diào)用的,而mac和ubuntu安裝的工具一定有差異,另外二者目錄結(jié)構(gòu)也有差異,

另外mac的shell更顯嚴(yán)謹(jǐn),linux的shell更隨意靈活一些

在visual studio 下編程和在Linux下編程(C)有什么區(qū)別?能不能直接在vs中寫能夠在linux下運行的代碼?

VS自己把代碼作了很多修改~入口函數(shù)好像是t_main,這個是可能是它修改了鏈接規(guī)則~

但是一般大家的做法是自己去在Linux下寫了~畢竟編譯、運行、測試環(huán)境都必須在Linux下進(jìn)行~你用VS最多也就編編代碼,編譯和調(diào)試沒辦法進(jìn)行的

因為windows下的可執(zhí)行文件和linux并不相同~你必須去linux下編譯C程序~Linux下也有很多IDE,比如codeblocks、eclipse之類~寫代碼、調(diào)試什么的很方便~

來說大部分的區(qū)別在于系統(tǒng)提供的接口不同,也就是需要調(diào)用的函數(shù)不同~其他的目前為止你都可以認(rèn)為是一樣的~

你說的在shell下調(diào)用,需要有main的參數(shù),這個叫命令行參數(shù),不僅僅是linux下有,windows下也有~具體處理方式應(yīng)該也差不多~查查資料很快就明白了

如何在 Visual Studio 上用 C/C++ 寫 Linux 程序

如今我們正在開發(fā)一個新的插件,一個能夠讓開發(fā)者在 Visual Studio (以下簡稱 VS ) 上建構(gòu)能夠在 Linux 上運行 C++ 程序的套件。開發(fā)者可以借由這個插件將 C++ 程序移轉(zhuǎn)到 Linux 服務(wù)器、PC 以及移動設(shè)備上,也同時可以借由這個插件將這些機(jī)器連結(jié)至你的 VS 上。 VS 將會自動地復(fù)制一份并在遠(yuǎn)端建構(gòu)你的來源檔,再運行帶有除錯器的應(yīng)用程序。我們的這項計劃也針對特殊的架構(gòu)提供系統(tǒng)支持,包含 ARM 等。下方文章將繼續(xù)介紹使用我們這套全新的 Linux 計劃。

目前我們僅支持在遠(yuǎn)端的目標(biāo) Linux 機(jī)器提供建構(gòu)服務(wù)。我們并沒有限制特定的 Linux 發(fā)布版本,但我們?nèi)耘f在一些工具的表現(xiàn)上有些相依性的差異。需要特別注意的是,我們需要 openssh-server、g++、gdb 以及 gdbserver。用你最習(xí)慣的套件管理工具來安裝他們,例如在 Debian 類型的 Linux 就可以使用:

[cpp] view plain copy

sudo apt-get install openssh-server g++ gdb gdbserver

安裝

下載 Visual C++ for Linux Development extension 或從 Visual Studio 上的插件管理員來獲得。目前我們在Visual Studio 上的 Android Tools 上已有相依支持。如果你已經(jīng)安裝了 VS 的話,你可以借由 Add Remove Programs 來新增這些功能,編輯 VS 然后在 Visual C++ 移動設(shè)備開發(fā)下選擇他們。

要開始一個新的項目可以透過以下路徑:Templates Visual C++ Cross Platform Linux。

目前我們有三個可以使用的模板:針對像 Raspberry Pi 等物聯(lián)網(wǎng)裝置設(shè)計的 Blink、最基本的應(yīng)用程序樣板 Console Application 以及讓開發(fā)者自己選擇需要加入的來源檔以及從預(yù)設(shè)設(shè)定起的 Empty。

你的第一個 VS Linux 項目

我們從建構(gòu)一個主控臺 app 開始。從模板新增完你的項目后,在 printf 敘述句的地方設(shè)下一個中斷點,然后敲擊 F5 或遠(yuǎn)端 GDB 除錯器按鈕。根據(jù)預(yù)設(shè)值,這個主控臺 app 設(shè)定與 debug/x64 的環(huán)境相容。如果你的遠(yuǎn)端連線標(biāo)的是 x86 或 arm 架構(gòu),那你需要先改變上述設(shè)定。在我演示的這個范例我使用的是 x64 Ubuntu VM。

由于這是第一次連結(jié)到標(biāo)的的 Linux 機(jī)器,所以會彈出一個連接資訊視窗,是由在建構(gòu)項目時所觸發(fā)的。

我們同時支持密碼以及認(rèn)證形式的驗證方式,包含使用復(fù)雜密碼的認(rèn)證。在第一次成功連接后,我們會將你的連結(jié)資訊儲存以便在日后需要連接時快速存取。你可以從 Tools Options Cross Platform Linux 的路徑來管理你已儲存的連結(jié)資訊,以及是的,密碼/復(fù)雜密碼是已加密形式儲存的。我們也同時計劃在未來的更新版本中,在連接時無需儲存連結(jié)資訊。

在連接的過程中,你的來源檔會被復(fù)制到遠(yuǎn)端的 Linux 機(jī)器上,并觸發(fā) gcc 并根據(jù)項目的屬性設(shè)定來建構(gòu)原始碼。在項目建構(gòu)完畢之后,你的程序?qū)谶h(yuǎn)端的機(jī)器上執(zhí)行,并停止在我們先前所設(shè)下的中斷點上。

Linux 項目屬性

我們可以借由以下的項目屬性來理解,東西是怎么被部署到遠(yuǎn)端 Linux 機(jī)器上的。

在 remote settings 下,你可以看到 remote 根目錄是預(yù)設(shè)在 ~/projects/ ,且該路徑下的遠(yuǎn)端項目目錄會與我們的項目名稱相符。從 Linux 機(jī)器上去看的話,我們可以在 ~/projects/ConsoleApplication1 下發(fā)現(xiàn)建構(gòu)后的成品 main.cpp。

根據(jù)項目的 General setting,可以了解到我們針對 Output 以及 Intermediate 路徑是怎么設(shè)定的。除此之外,你可以發(fā)現(xiàn)到這個項目是被設(shè)定成一個應(yīng)用程序的 — 代表我們的項目執(zhí)行檔 ConsoleApplication1.out 是在 bin/x64/Debug/ 路徑下。另外可以注意到的是,我們也同時支持靜態(tài)以及動態(tài)的設(shè)定格式。

Linux 物聯(lián)網(wǎng)項目

現(xiàn)在我們來研究物聯(lián)網(wǎng)裝置的部分 — 以 Raspberry Pi 為例。你可以使用任何類型的 Pi 來執(zhí)行 Raspbian。在我們的 Blink 范例里我們使用 wiringPi — 如果你沒有這個安裝選項你也可以選擇從 apt 或來源檔來安裝。在 Tools Options 搜尋 Linux 來新增一個連結(jié),然后點擊 “add” 來新增一個連結(jié)到你的 Raspberry Pi。

從項目屬性設(shè)定的地方查看 Build Events 下的 Remote Post-Build Events。

你可以借由這個設(shè)定在遠(yuǎn)端已建構(gòu)好項目的 Linux 標(biāo)的上執(zhí)行指令。這個模板已先預(yù)設(shè)了針對 LED 輸出的 GPIO pin,所以我們不需要再以 root 的身份執(zhí)行我們的執(zhí)行檔。

現(xiàn)在將一個 LED 連接到 Raspberry Pi 上的 pin 17 位置,如下圖:

打開 main.cpp 檔,并在第一個 digitalWrite 后 delay call 的地方設(shè)下中斷點,然后敲擊 F5。你可以看到你的 LED 燈亮起,且執(zhí)行程序會在你下中斷點的地方停住。將你的程序持續(xù)執(zhí)行到下一個 digitalWrite call 之后便可以看到 LED 燈熄滅。

可以透過瀏覽我們的物聯(lián)網(wǎng)研發(fā)專頁,來追蹤所有我們目前針對這樣的系統(tǒng)所釋出的功能。

桌面應(yīng)用程序

我們剛已在上述的文章中,介紹了無介面 (headless) 以及裝置型的 Linux 應(yīng)用程序,那桌面型的呢?在這里我們將介紹一點特別的:我們將在 Linux 桌面上執(zhí)行一個 OpenGL 應(yīng)用程序。首先要確定的是,你的 Linux 桌面已經(jīng)設(shè)定為包含 OpenGL 的環(huán)境,下述是我們會需要用到的 apt 套件:libgles1-mesa、libgles1-mesa-dev、freeglut3 以及 freeglut3-dev。

接下來請先創(chuàng)建一個空的 Linux 項目,然后前往 Julien Guertault’s OpenGL 教學(xué)下載旋轉(zhuǎn)方塊的來源檔,將其解壓縮并將 main.c 加到你的項目下。要能夠運行 Intellisense,你需要將 OpenGL 的標(biāo)頭 (headers) 新增到 VC++ Directories,你可以從 OpenGL Registry 里下載他們?,F(xiàn)在前往你的項目屬性設(shè)定,然后新增 export DISPLAY=:0.0 到 Pre-Launch command 下。

然后,在 Linker Input 下新增 “m;GL;GLU;glut” 到 Library Dependencies 欄位。

另外,確認(rèn)你的遠(yuǎn)端設(shè)定是對應(yīng)到對的機(jī)器。

接下來按下 F5。

還有一些有趣值得下中斷點的地方,例如大約在 80 行左右的位置有可以調(diào)整方塊旋轉(zhuǎn)的設(shè)定(試著調(diào)整看看 alpha 值),或在 KeyboardFunc 里可以檢查按下鍵盤時所輸入的值。

開啟原生 Linux 應(yīng)用開發(fā)之旅吧

我們期望您與我們對于這些新開放的可能擁有一樣的期待。

安裝 Visual C++ for Linux Development extension,嘗試看看并告知我們哪些是你可以成功運行,以及哪些是你遇到的阻礙或遭遇任何問題。如果你有興趣的領(lǐng)域是在物聯(lián)網(wǎng)的部分的話,可以前往關(guān)注我們的 IoT Development page 以獲取最新資訊。你可以借由這個部落格,或展覽頁的額外分頁、VS 回饋頻道以及 Twitter 上的 @visualc、@robotdad 或我的帳號聯(lián)系到我們


本文名稱:vslinux命令,vs編譯linux程序
網(wǎng)站路徑:http://weahome.cn/article/hogcii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部