文本输出,后需要做的

shell环境:

  shell:命令解释器,是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行。

  bash:是GNU 计划中重要的工具软件之一,目前也是 Linux 标准的shell  ,与sh兼容

    echo $PATH  显示当前使用的shell

    cat /etc/shells  显示系统使用的所以shell

  PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

     echo $PATH  查看PATH环境变量的值

安装 Kali Linux 后需要做的 20 件事

 

Linux后总是要做的若干件事情。由于我有多台笔记本电脑和工作站,所以尽量扩大下列操作步骤的适用范围,以满足每个人的需求。这是我在安装Kali Linux后做的20件事情。你的需求可能全然不同。要是有什么建议,欢迎留言告知。不用注册即可留言,欢迎反馈、发表观点。

本文含有我觉得有用的每一件事情。本文分为三大部分:

专门针对Kali用户

 

  • 实用工具和软件

 

  • 改进和辅助功能

专门针对Kali用户

如果你希望NetworkManager(网络管理器)处理在/etc/network/interfaces中启用的接口,只要在/etc /NetworkManager/NetworkManager.conf中设置managed=true。所以,该文件看起来就像:

  1. pluginsifupdownmanagedtrue 

请阅读全文:《Debian或Kali Linux中解决有线网络接口的"设备无法托管"错误》。

最简单的办法就是,编辑/etc/apt/sources.list,去掉每一行或在开头用#注释每一行,并添加下面这几行:

  1. leafpad /etc/apt/sources.list 

 

  1. deb-src  kali/updates main contrib non-free 

  2. 更新、升级和发行版升级

 

  1. apt-get clean && apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y 

我的Kali经常弹出这个警告信息:

  1. [warn] PulseAudio configured for per-user sessions ... (warning). 

 

  1. leafpad /etc/default/pulseaudio 

 

  1. PULSEAUDIO_SYSTEM_START0 

 

  1. PULSEAUDIO_SYSTEM_START1 

 

  1. reboot 

  2. 确保启动时发出声音

 

  1. apt-get install alsa-utils -y 

鼠标右击小小的音量图标,选择Sound Preferences(声音首选项)。

此外,你还可以依次进入到Applications(应用程序)> System Tools(系统工具)> Preferences(首选项)> System Settings(系统设置)> Sound(声音),即可调出同样的选项。

图片 1

 

6. 安装Java

图片 2

 

  1. cd /opt/jdk1.7.0_45 

 

  1. update-alternatives --set mozilla-javaplugin.so /opt/jdk1.7.0_45/jre/lib/amd64/libnpjp2.so 

测试选项。

这件事情相当简单、容易,对大多数人来说应该没有问题:在终端中,键入这个命令:

  1. apt-get install flashplugin-nonfree 

 

  1. update-flashplugin-nonfree - -install 

图片 3

  1. 安装File Roller(归档管理器)

 

  1. apt-get install unrar unace rar unrar p7zip zip unzip p7zip-full p7zip-rar file-roller -y 

现在你可以在Applications(应用程序)> Accessories(附件)> Archive Manager(归档管理器)中找到归档管理器。

默认情况下,Kali Linux只有root用户。虽然大多数应用程序需要root访问权,但添加第二个用户总归是个好主意。打开终端,键入下面这个命令,即可创建新用户(把user1换成你想要的用户名称)。

  1. useradd -m user1 

图片 4

 

  1. passwd user1 

 

  1. usermod -a -G sudo user1 

 

  1. chsh -s /bin/bash user1 

  2. 添加add-apt-repository

首先安装Python软件属性程序包。

  1. apt-get install python-software-properties 

 

  1. apt-get install apt-file 

 

  1. apt-file update 

 

  1. apt-file search add-apt-repository 

 

  1. python-software-properties: /usr/share/man/man1/add-apt-repository.1.gz 

 

  1. vi add-apt-repository 

 

  1. NMNAME
  2. ppa_name
            1.  /etc/apt/sources.list 
  3.  /dev/null 2 /tmp/${NAME}_apt_add_key.txt 
  4. key
      1. fi 

.NET/$ppa_name/ubuntu oneiric main" >> /etc/apt/sources.list这一行中,我使用了Oneiric。你可以根据自己的选择,试着使用Lucid、Raring或Saucy。 现在,使用chmod和chown这两个命令,对文件进行相应的操作。

  1. chown root:root /usr/sbin/add-apt-repository 

 

  1. /usr/sbin/add-apt-repository ppa:alecive/antigone 

我删除了本文中的所有屏幕截图,但如果你想看个清楚,了解具体是如何工作的,建议你参阅《在Kali Linux中添加PPA软件库add-apt-repository》一文,了解更多细节。

Tor是自由软件,也是一种开放网络,可以帮助你防御流量分析。流量分析是一种网络监视行为,会危及个人自由和隐私、机密性的商业活动和关系以及国家安 全。该指南为你详细介绍了在Kali Linux中安装Tor的步骤。Tor保护你的方法是,通过由全球广大志愿者运营的一个分布式中转网络,传递你的通信内容:它可以防止有人监视你的互联网 连接、进而了解你访问哪些网站,它还可以防止你访问的网站了解你的实际位址。

Tor在Kali软件库中就用;想直接从软件库安装它,只要打开终端,键入这个命令:

  1. apt-get install tor 

 

  1. service tor start 

 

  1. proxychains iceweasel 

  2. 安装Filezilla FTP客户端

 

  1. apt-get install filezilla filezilla-common -y 

HTOP是个特别的工具,显示了运行中的进程和所使用的内存,包括更多的详细信息。(你也可以使用top命令,但HTOP完全有用得多。)NetHogs也很有用,它按接口显示了应用程序所用的流量。使用下面这个命令,安装这两个工具:

  1. apt-get install htop nethogs -y 

 

  1. nethogs wlan0 

  2. 为显卡安装专有的驱动程序

图片 5

图片 6

Recordmydesktop让你能够录制在Kali Linux中的活动,并制作视频。Remmina类似Windows远程桌面客户端。两者都非常实用。可以使用下面这个命令安装它们:

  1. apt-get install gtk-recordmydesktop recordmydesktop remmina -y 

dpkg是一个功能强大的工具,但它并不自动安装依赖项。为此,我们需要某种程序包安装工具,以便在安装.deb程序包的同时,可以去获取所有必要的依赖项。眼下最出色的程序包安装工具非gdebi莫属。使用下面这个命令来安装它:

  1. apt-get install gdebi -y 

改进和辅助功能

安装主题、美化桌面是个好主意。Kali的默认桌面单调而乏味。你可以使用两种不同的方法来更改主题。

  • 通过PPA软件库安装主题

图片 7

我青睐XFCE桌面,但你可以试着在Kali Linux中安装/删除不同的桌面环境或窗口管理器。根据你的需要,选择下列链接:

  1. 《如何在Kali Linux中安装/删除不同的KDE桌面环境?》,参阅。

  2. 《如何在Kali Linux中安装/删除GNOME桌面环境?》,参阅。

  3. 《如何在Kali Linux中安装/删除MATE桌面环境?》,参阅。

图片 8

这是个简单的变更。只要打开并编辑名为/etc/gdm3/daemon.conf的文件,假设你在使用GNOME显示管理器(gmd3)作为主要的显示 管理器。你可能想要另外也能试一下其他桌面。下面这个链接介绍了《如何在Kali Linux中添加/删除不同的桌面管理器》,详见 installremove-different-desktop-environment-or-window-manager-in-kali- linux-1-x/。

  1. root@kali:~# leafpad /etc/gdm3/daemon.conf 

 

  1. AutomaticLoginEnable 
  2. AutomaticLogin 

 

  1. AutomaticLoginEnable 
  2. AutomaticLogin 

最后但并非最不重要的是,重启系统,核实一下是否管用。(这会管用,因为它是Linux,Kali很出色。)

  1. reboot 

下面这部分解释了如何更充分地发挥你系统的功能,尤其是发挥显卡的功能。

最后但并非最不重要的是,在你试图破解密码时,GPU处理速度要快得多。你可以选择下面介绍的几种方法,具体取决于所使用的显卡:

《在Kali Linux 1.x中安装AMD ATI驱动程序(fglrx)》,参阅:。

 

  • 《如何在Kali Linux中安装AMD APP SDK?》
  • 《如何在Kali Linux中安装Pyrit?》
  • 《如何在Kali Linux中安装CAL++?》

英伟达显卡用户完全可以参阅安装英伟达驱动程序的官方说明文档。如果官方说明文档不管用或者你已无计可施,不妨参阅我写过的另一篇文章,介绍如何手动安装英伟达显卡二进制驱动程序。

结束语

原文链接:

图片 9图片 10

linux命令的分类:

         内部命令:属于shell解释器的一部分

         外部命令:独立于shell解释器之外的程序

 1 //SYSMETS.H -- System metrics display structure
 2 #include <Windows.h>
 3 
 4 #define NUMLINES ((int) (sizeof(sysmetrics) / sizeof(sysmetrics[0])))
 5 
 6 struct  
 7 {
 8     int iIndex;
 9     TCHAR *szLabel;
10     TCHAR *szDesc;
11 }
12 sysmetrics[] =
13 {
14     SM_CXSCREEN,            TEXT("SM_CXSCREEN"),            TEXT("Screen width in pixels"),
15     SM_CYSCREEN,            TEXT("SM_CYSCREEN"),            TEXT("Screen height in pixels"),
16     SM_CXVSCROLL,            TEXT("SM_CXVSCROLL"),            TEXT("Vertical scroll width"),
17     SM_CYHSCROLL,            TEXT("SM_CYHSCROLL"),            TEXT("Horizontal scroll height"),
18     SM_CYCAPTION,            TEXT("SM_CYCAPTION"),            TEXT("Caption bar height"),
19     SM_CXBORDER,            TEXT("SM_CXBORDER"),            TEXT("Window border width"),
20     SM_CYBORDER,            TEXT("SM_CYBORDER"),            TEXT("Window border height"),
21     SM_CXFIXEDFRAME,        TEXT("SM_CXFIXEDFRAME"),        TEXT("Dialog window frame width"),
22     SM_CYFIXEDFRAME,        TEXT("SM_CYFIXEDFRAME"),        TEXT("Dialog window frame height"),
23     SM_CYVTHUMB,            TEXT("SM_CYVTHUMB"),            TEXT("Vertical scroll thumb height"),
24     SM_CXHTHUMB,            TEXT("SM_CXHTHUMB"),            TEXT("Horizontal scroll thumb width"),
25     SM_CXICON,                TEXT("SM_CXICON"),                TEXT("Icon width"),
26     SM_CYICON,                TEXT("SM_CYICON"),                TEXT("Icon height"),
27     SM_CXCURSOR,            TEXT("SM_CXCURSOR"),            TEXT("Cursor width"),
28     SM_CYCURSOR,            TEXT("SM_CYCURSOR"),            TEXT("Cursor height"),
29     SM_CYMENU,                TEXT("SM_CYMENU"),                TEXT("Menu bar height"),
30     SM_CXFULLSCREEN,        TEXT("SM_CXFULLSCREEN"),        TEXT("Full screen client area width"),
31     SM_CYFULLSCREEN,        TEXT("SM_CYFULLSCREEN"),        TEXT("Full screen client area height"),
32     SM_CYKANJIWINDOW,        TEXT("SM_CYKANJIWINDOW"),        TEXT("Kanji window height"),
33     SM_MOUSEPRESENT,        TEXT("SM_MOUSEPRESENT"),        TEXT("Mouse present flag"),
34     SM_CYVSCROLL,            TEXT("SM_CYVSCROLL"),            TEXT("Vertical scroll arrow height"),
35     SM_CXHSCROLL,            TEXT("SM_CXHSCROLL"),            TEXT("Horizontal scroll arrow width"),
36     SM_DEBUG,                TEXT("SM_DEBUG"),                TEXT("Debug version flag"),
37     SM_SWAPBUTTON,            TEXT("SM_SWAPBUTTON"),            TEXT("Mouse buttons swapped flag"),
38     SM_CXMIN,                TEXT("SM_CXMIN"),                TEXT("Minimum window width"),
39     SM_CYMIN,                TEXT("SM_CYMIN"),                TEXT("Minimum window height"),
40     SM_CXSIZE,                TEXT("SM_CXSIZE"),                TEXT("Min/Max/Close button width"),
41     SM_CYSIZE,                TEXT("SM_CYSIZE"),                TEXT("Min/Max/Close button height"),
42     SM_CXSIZEFRAME,            TEXT("SM_CXSIZEFRAME"),            TEXT("Window sizing frame width"),
43     SM_CYSIZEFRAME,            TEXT("SM_CYSIZEFRAME"),            TEXT("Window sizing frame height"),
44     SM_CXMINTRACK,            TEXT("SM_CXMINTRACK"),            TEXT("Minimum window tracking width"),
45     SM_CYMINTRACK,            TEXT("SM_CYMINTRACK"),            TEXT("Minimum window tracking height"),
46     SM_CXDOUBLECLK,            TEXT("SM_CXDOUBLECLK"),            TEXT("Double click x tolerance"),
47     SM_CYDOUBLECLK,            TEXT("SM_CYDOUBLECLK"),            TEXT("Double click y tolerance"),
48     SM_CXICONSPACING,        TEXT("SM_CXICONSPACING"),        TEXT("Horizontal icon spacing"),
49     SM_CYICONSPACING,        TEXT("SM_CYICONSPACING"),        TEXT("Vertical icon spacing"),
50     SM_MENUDROPALIGNMENT,    TEXT("SM_MENUDROPALIGMENT"),    TEXT("Left or right menu drop"),
51     SM_PENWINDOWS,            TEXT("SM_PENWINDOWS"),            TEXT("Pen extensions installed"),
52     SM_DBCSENABLED,            TEXT("SM-DBCSENABLED"),            TEXT("Double-Byte Char Set enable"),
53     SM_CMOUSEBUTTONS,        TEXT("SM_CMOUSEBUTTONS"),        TEXT("Number of mouse buttons"),
54     SM_SECURE,                TEXT("SM_SECURE"),                TEXT("Security present flag"),
55     SM_CXEDGE,                TEXT("SM_CXEDGE"),                TEXT("3-D border width"),
56     SM_CYEDGE,                TEXT("SM_CYEDGE"),                TEXT("3-D border height"),
57     SM_CXMINSPACING,        TEXT("SM_CXMINSPACING"),        TEXT("Minimized window spacing width"),
58     SM_CYMINSPACING,        TEXT("SM-CYMINSPACING"),        TEXT("Minimized window spacing height"),
59     SM_CXSMICON,            TEXT("SM_CXSMICON"),            TEXT("Small icon width"),
60     SM_CYSMICON,            TEXT("SM_CYSMICON"),            TEXT("Small icon height"),
61     SM_CYSMCAPTION,            TEXT("SM_CYSMCAPTION"),            TEXT("Small caption height"),
62     SM_CXSMSIZE,            TEXT("SM_CXSMSIZE"),            TEXT("Small caption button width"),
63     SM_CYSMSIZE,            TEXT("SM_CYSMSIZE"),            TEXT("Small caption button height"),
64     SM_CXMENUSIZE,            TEXT("SM_CXMENUSIZE"),            TEXT("Menu bar button width"),
65     SM_CYMENUSIZE,            TEXT("SM_CYMENUSIZE"),            TEXT("Menu bar button height"),
66     SM_ARRANGE,                TEXT("SM_ARRANGE"),                TEXT("How minimized windows arranged"),
67     SM_CXMINIMIZED,            TEXT("SM_CXMINIMIZED"),            TEXT("Minimized window width"),
68     SM_CYMINIMIZED,            TEXT("SM_CYMINIMIZED"),            TEXT("Minimized window height"),
69     SM_CXMAXTRACK,            TEXT("SM_CXMAXTRACK"),            TEXT("Maximum draggable width"),
70     SM_CYMAXTRACK,            TEXT("SM_CYMAXTRACK"),            TEXT("Maximum draggable height"),
71     SM_CXMAXIMIZED,            TEXT("SM_CXMAXIMIZED"),            TEXT("Width of maximized window"),
72     SM_CYMAXIMIZED,            TEXT("SM_CYMAXIMIZED"),            TEXT("Height of maximized windwo"),
73     SM_NETWORK,                TEXT("SM_NETWORK"),                TEXT("Network present flag"),
74     SM_CLEANBOOT,            TEXT("SM_CLEANBOOT"),            TEXT("How system was booted"),
75     SM_CXDRAG,                TEXT("SM_CXDRAG"),                TEXT("Avoid drag x tolerance"),
76     SM_CYDRAG,                TEXT("SM_CYDRAG"),                TEXT("Avoid drag x tolerance"),
77     SM_SHOWSOUNDS,            TEXT("SM_SHOWSOUNDS"),            TEXT("Present sounds visually"),
78     SM_CXMENUCHECK,            TEXT("SM_CXMENUCHECK"),            TEXT("Menu check-mark width"),
79     SM_CYMENUCHECK,            TEXT("SM_CYMENUCHECK"),            TEXT("Menu check-mark height"),
80     SM_SLOWMACHINE,            TEXT("SM_SLOWMACHINE"),            TEXT("Slow processor flag"),
81     SM_MIDEASTENABLED,        TEXT("SM_MIDEASTENABLE"),        TEXT("Hebrew and Arabic enabled flag"),
82     SM_MOUSEWHEELPRESENT,    TEXT("SM_MOUSEWHEELPRESENT"),    TEXT("Mouse wheel present flag"),
83     SM_XVIRTUALSCREEN,        TEXT("SM_XVIRTUALSCREEN"),        TEXT("Virtual screen x origin"),
84     SM_YVIRTUALSCREEN,        TEXT("SM_YVIRTUALSCREEN"),        TEXT("Virtual screen y origin"),
85     SM_CXVIRTUALSCREEN,        TEXT("SM_CXVIRTUALSCREEN"),        TEXT("Virtual screen width"),
86     SM_CYVIRTUALSCREEN,        TEXT("SM_CYVIRTUALSCREEN"),        TEXT("Virtual screen height"),
87     SM_CMONITORS,            TEXT("SM_CMONITORS"),            TEXT("Number of monitors"),
88     SM_SAMEDISPLAYFORMAT,    TEXT("SM_SAMEDISPLAYFORMAT"),    TEXT("Same color format flag")
89 };

命令的通用格式:

         命令字 [选项] [参数]

                   长选项:例如“ls -a”

                   短选项:例如“ls --help”

                   多个短选项可合并使用,例如“ls -alh”

                   长选项不能合并,只能分开

                   参数:命令的对象,如文件、目录名等

SYSMETS.H

查看命令的类型:

type命令:type [选项] [参数]

                   -p 如果给出的指令为外部指令,则显示其绝对路径。

                   -a 在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。

                   -t 输出“file”、“alias”或者“builtin”,分别表示给定的命令为“外部指令”、“命令别名”或者“内部指令”。

                   [root@localhost ~]# type cd

                    cd is a shell builtin                    #cd 是一个shell内部命令

                   [root@localhost ~]# type ifconfig

                    ifconfig is /sbin/ifconfig         #ifconfig是一个外部命令

图片 11图片 12

查看命令的位置:

which命令:which 可执行文件名

                   -n 指定文件名长度指定的长度必须大于或等于所有文件中最长的文件名

                   -p 与-n参数相同但此处的包括了文件的路径

                   -a 将PATH目录中可以找到指令均列出不止第一个而已

                   -w 指定输出时栏位的宽度

                  -V 显示版本信息

[root@bogon ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@bogon ~]# which ip
/usr/sbin/ip
[root@bogon ~]#

whereis命令:whereis [选项] 文件名

                   -b 定位可执行文件。

                   -m 定位帮助文件。

                   -s 定位源代码文件。

                   -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

                   -B 指定搜索可执行文件的路径。

                   -M 指定搜索帮助文件的路径。

                   -S 指定搜索源代码文件的路径。

[root@bogon ~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
[root@bogon ~]# whereis -b cd
cd: /usr/bin/cd

  1 //SYSMETS3.C--System Metrics Display Program No.3(c) Charles Petzold, 1998
  2 #include <Windows.h>
  3 #include "SYSMETS.h"
  4 
  5 LRESULT CALLBACK WndPorc(HWND, UINT, WPARAM, LPARAM);
  6 
  7 int WINAPI WinMain( __in HINSTANCE hInstance
  8                 , __in_opt HINSTANCE hPrevInstance
  9                 , __in LPSTR lpCmdLine
 10                 , __in int nShowCmd )
 11 {
 12     static TCHAR szAppName[] = TEXT("Sysmets3");
 13     HWND hwnd;
 14     MSG msg;
 15     WNDCLASS wndclass;
 16 
 17     wndclass.style = CS_HREDRAW | CS_VREDRAW;
 18     wndclass.lpfnWndProc = WndPorc;
 19     wndclass.cbClsExtra = 0;
 20     wndclass.cbWndExtra = 0;
 21     wndclass.hInstance = hInstance;
 22     wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
 23     wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
 24     wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
 25     wndclass.lpszClassName = szAppName;
 26     wndclass.lpszMenuName = NULL;
 27 
 28     if (!RegisterClass(&wndclass))
 29     {
 30         MessageBox(NULL, TEXT("Program requires windows NT!")
 31             , szAppName, MB_ICONERROR);
 32         return 0;
 33     }
 34 
 35     hwnd = CreateWindow(szAppName, TEXT("Get System Metrics No.3")
 36         , WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL
 37         , CW_USEDEFAULT, CW_USEDEFAULT
 38         , CW_USEDEFAULT, CW_USEDEFAULT
 39         , NULL, NULL, hInstance, NULL);
 40 
 41     ShowWindow(hwnd, nShowCmd);
 42     UpdateWindow(hwnd);
 43 
 44     while (GetMessage(&msg, hwnd, 0, 0))
 45     {
 46         TranslateMessage(&msg);
 47         DispatchMessage(&msg);
 48     }
 49 
 50     return msg.wParam;
 51 }
 52 
 53 LRESULT CALLBACK WndPorc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 54 {
 55     static int cxChar, cxCaps, cyChar, cxClient, cyClient, iMaxWidth;
 56     HDC hdc;
 57     int i, x, y, iVertPos, iHorzPos, iPaintBeg, iPaintEnd;
 58     PAINTSTRUCT ps;
 59     SCROLLINFO si;
 60     TCHAR szBuffer[10];
 61     TEXTMETRIC tm;
 62 
 63     switch (message)
 64     {
 65     case WM_CREATE:
 66         hdc = GetDC(hwnd);
 67         GetTextMetrics(hdc, &tm);
 68         cxChar = tm.tmAveCharWidth;
 69         cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2;
 70         cyChar = tm.tmHeight + tm.tmExternalLeading;
 71         ReleaseDC(hwnd, hdc);
 72 
 73         //save the width of the three columns
 74         iMaxWidth = 40 * cxChar + 22 * cxCaps;
 75         return 0;
 76 
 77     case WM_SIZE:
 78         cxClient = LOWORD(lParam);
 79         cyClient = HIWORD(lParam);
 80         
 81         //set vertical scroll bar range and page size
 82         si.cbSize = sizeof(SCROLLINFO);
 83         si.fMask = SIF_RANGE | SIF_PAGE;
 84         si.nMin = 0;
 85         si.nMax = NUMLINES - 1;
 86         si.nPage = cyClient / cyChar;
 87         SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
 88 
 89         //set horizontal scroll bar range and page size
 90         si.cbSize = sizeof(SCROLLINFO);
 91         si.fMask = SIF_RANGE | SIF_PAGE;
 92         si.nMin = 0;
 93         si.nMax = iMaxWidth / cxChar;
 94         si.nPage = cxClient / cxChar;
 95         SetScrollInfo(hwnd, SB_HORZ, &si, TRUE);
 96 
 97         return 0;
 98 
 99     case WM_VSCROLL:
100         //get all the vertical scroll bar information
101         si.cbSize = sizeof(SCROLLINFO);
102         si.fMask = SIF_ALL;
103         GetScrollInfo(hwnd, SB_VERT, &si);
104 
105         //save the position for comparison later on
106         iVertPos = si.nPos;
107 
108         switch (LOWORD(wParam))
109         {
110         case SB_TOP:
111             si.nPos = si.nMin;
112             break;
113         case SB_BOTTOM:
114             si.nPos = si.nMax;
115             break;
116         case SB_LINEUP:
117             si.nPos -= 1;
118             break;
119         case SB_LINEDOWN:
120             si.nPos += 1;
121             break;
122         case SB_PAGEUP:
123             si.nPos -= si.nPage;
124             break;
125         case SB_PAGEDOWN:
126             si.nPos += si.nPage;
127             break;
128         case SB_THUMBTRACK:
129             si.nPos = si.nTrackPos;
130             break;
131         default:
132             break;
133         }
134 
135         //set the position and then retrieve it. Due to adjustments
136         //by windows it may not be the same as the value set.
137         si.fMask = SIF_POS;
138         SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
139         GetScrollInfo(hwnd, SB_VERT, &si);
140 
141         //if the position has changed, scroll the window and update it
142         if (si.nPos != iVertPos)
143         {
144             ScrollWindow(hwnd, 0, cyChar * (iVertPos - si.nPos)
145                 , NULL, NULL);
146             UpdateWindow(hwnd);
147         }
148 
149         return 0;
150 
151     case WM_HSCROLL:
152         //get all the vertical scroll bar information
153         si.cbSize = sizeof(SCROLLINFO);
154         si.fMask = SIF_ALL;
155 
156         //save the position for comparison later on
157         GetScrollInfo(hwnd, SB_HORZ, &si);
158         iHorzPos = si.nPos;
159 
160         switch (LOWORD(wParam))
161         {
162         case SB_LINELEFT:
163             si.nPos -= 1;
164             break;
165         case SB_LINERIGHT:
166             si.nPos += 1;
167             break;
168         case SB_PAGELEFT:
169             si.nPos -= si.nPage;
170             break;
171         case SB_PAGERIGHT:
172             si.nPos += si.nPage;
173         case SB_THUMBPOSITION:
174             si.nPos = si.nTrackPos;
175             break;
176         default:
177             break;
178         }
179 
180         //set the position and then retrieve it. Due to adjustments
181         //by windows it may not be the same as the value set.
182         si.fMask = SIF_POS;
183         SetScrollInfo(hwnd, SB_HORZ, &si, TRUE);
184         GetScrollInfo(hwnd, SB_HORZ, &si);
185 
186         //if the position has changed, scroll the window
187         if (si.nPos != iHorzPos)
188         {
189             ScrollWindow(hwnd, cxChar * (iHorzPos - si.nPos)
190                 , 0, NULL, NULL);
191         }
192 
193         return 0;
194 
195     case WM_PAINT:
196         hdc = BeginPaint(hwnd, &ps);
197 
198         //get vertical scroll bar position
199         si.cbSize = sizeof(SCROLLINFO);
200         si.fMask = SIF_POS;
201         GetScrollInfo(hwnd, SB_VERT, &si);
202         iVertPos = si.nPos;
203 
204         //get horizontal scroll bar position
205         GetScrollInfo(hwnd, SB_HORZ, &si);
206         iHorzPos = si.nPos;
207 
208         //find painting limits
209         iPaintBeg = max(0, iVertPos + ps.rcPaint.top / cyChar);
210         iPaintEnd = min(NUMLINES - 1, iVertPos + ps.rcPaint.bottom / cyChar);
211 
212         for (i = iPaintBeg; i <= iPaintEnd; ++i)
213         {
214             x = cxChar * (1 - iHorzPos);
215             y = cyChar * (i - iVertPos);
216 
217             TextOut(hdc, x, y, sysmetrics[i].szLabel
218                 , lstrlen(sysmetrics[i].szLabel));
219 
220             TextOut(hdc, x + 22 * cxCaps, y
221                 , sysmetrics[i].szDesc, lstrlen(sysmetrics[i].szDesc));
222 
223             SetTextAlign(hdc, TA_RIGHT | TA_TOP);
224 
225             TextOut(hdc, x + 22 * cxCaps + 40 * cxChar, y, szBuffer
226                 , wsprintf(szBuffer, TEXT("%5d"), GetSystemMetrics(sysmetrics[i].iIndex)));
227 
228             SetTextAlign(hdc, TA_LEFT | TA_TOP);
229         }
230 
231         EndPaint(hwnd, &ps);
232         return 0;
233 
234     case WM_DESTROY:
235         PostQuitMessage(0);
236         return 0;
237     }
238 
239     return DefWindowProc(hwnd, message, wParam, lParam);
240 }

命令别名:

         #alias NAME='VALUE'

         仅对当前用户:~/.bashrc

         对所有用户有效:/etc/bashrc

         撤销别名:unalias

[root@bogon ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias netconf='vim /etc/sysconfig/network-scripts/ifcfg-eno16777728'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

SYSMETS3.C

命令的补全:

         用户给定的字符串只有一条惟一对应的命令,直接补全,否则再次Tab会给出列表

         路径补全:Tab如果唯一则直接补全,否则再次Tab给出列表

 

本文由澳门新葡亰平台官网发布于操作系统,转载请注明出处:文本输出,后需要做的

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。