几种操作系统的使用

 

操作系统概述

关于操作系统的概念

POSIX: Portable Operating System Interface
Windows Console App vs Service
GUI程序和CUI程序:

控制台应用程序多了一个控制台(那个黑黑的Dos窗口)。程序的文件头某个位置指定了该程序是IMAGE_SUBSYSTEM_WINDOWS_GUI还是IMAGE_SUBSYSTEM_WINDOWS_CUI。如果是CUI,那么该程序就是控制台程序,它启动的时候就会被自动分配给一个控制台(Console)。在GUI程序中,窗口不是必要的,虽然绝大部分程序都有

如何将java控制台程序做成windows服务
snapshot:快照技术,在backup时被广泛采用。关键在于state的抓取和保存。
后来扩展到软件描述上:

Maven快照机制(SNAPSHOT)
ps - report a snapshot of the current processes.

What is the difference between standard syntax and BSD syntax?

深入理解虚拟存储器

文件描述符表、文件表、索引结点表

Linux OS

Linux常用命令
linux目录结构—小哥整理的很棒🐼,参考之
linux中几个简单命令
如何记住linux命令
What is the difference between standard syntax and BSD syntax?

伪文件系统

Synthetic file system

Linux目录结构

What does the ‘rc’ in .bashrc, etc. mean:run command
Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)

Linux命令
一.信息查看

linux查看硬盘大小与挂载硬盘

1. 查看当前发行版可以使用的shell: cat /etc/shells
查看正在使用的shell
查看正在使用的shell版本:bash -version或者echo BASH_VERSION—
BASH_VERSION是本地定义的shell变量,可用set查看全部本地定义的shell变量切换shell最简单:输入shellName即可切换
2.linux查看本机ip地址:ifconfig -a
3.linux使用命令:man+command查看某一个命令的使用方式; 查看后按“q”退出
4.linux使用which命令查看可执行文件位置,对应windows中为where
5.linux查看某个某个进程属于哪个程序:ps列出|grep筛选

which processes are running and who own the process?
ServicesVSprocess
6.查看linux系统版本信息
uname -a显示电脑以及操作系统的相关信息
cat /proc/version正在运行的内核版本。 proc - process information pseudo-filesystem pseudo-filesystemSystem call
cat/etc/issue发行版本信息
lsb_release -aprint all the distribution-specific information
7.chkconfig -list: updates and queries runlevel information for system services
chkconfig配置工具chkconfig —list 可以列出sysV和xinet服务在各个runlevel的默认启动状态
hostname — set or print name of current host system
check running services on linux
8.linux查看文件信息的三个命令
9.查看linux服务器当前时间和启动时间
# date —查看linux当前时间
# last reboot—-查看privious boot time 一般列出之前五次
10.linux列出可安装的软件包:listing packages
常用:# yum list java\*—列出名字内包含java的安装包
11.linux ps -ef|grep processName

  1. linux设置和查看环境变量
    二.服务器搭建
    1.linux中使用python -m SimpleHttpServer命令实现目录共享:==》

各种Linux发行版通常都内置了Python,故使用此方法非常方便。在其它OS(比如Windows)此方法也有效,但是要麻烦一些,必须先搭建Python环境。参考:python搭建静态服务器如果你安装的是phthon3那么命令就不是python -m SimpleHTTPServer而是要改成python -m http.server,效果是一样的。

三.linux下载文件

How to download a file from server using SSH?
三.待整理
5.echo 命令:linux echo commandWhy is there a /bin/echo and why would I want to use it?
6.linux中变量命令规范naming conventions for variables in shell:Environment variables or shell variables that are introduced by the operating system or shell startup scripts etc. are usually all in CAPITALS.To prevent your own variables from conflicting with these variables, it is a good practice to use lower case.(conflicting evidence:冲突证据)
Eg:/bin/echo'the value of $PATH is’$PATH

path是环境变量,必须大写Reference Artical&google’s shell style guide
8./usr/bin和 /usr/local/bin的区别:
/usr/bin目录下的可执行文件是系统预装,升级会变,而/usr/local/bin是用户放置自己可执行程序的地方,升级不会被覆盖而且/usr/local/bin中的可执行文件优先于/usr/bin执行
参考:Linux Programmer’s Manual

linux压缩和解压

unzip apache-maven-3.6.0-bin.zip
tar xzvf apache-maven-3.6.0-bin.tar.gz

GNU ‘tar’ saves many files together into a single tape or disk archive, and can restore individual
files from the archive.
zip对应的是unzip,而tar命令既是打包命令又是解压缩命令

linux查找文件

linux查找文件两个命令:locatefind
Refs:1.10 Useful ‘locate’ Command Practical Examples for Linux Newbies

linux清屏

clear==Ctrl+L
reset—清除所有操作信息
alias cls='clear'—然后既可以用cls来替代clear

  echo alias cls='clear'>>~/.bash_profile
  source ~/.bash_profile
单独命令详解

1.ps -ef|grep java

Linux中怎么通过PID号找到对应的进程名及所在目录方法
1.输出项含义2.命令解释
[root@localhost ~]# ps -ef|grep javatomcat 1251 1 0 Nov30 ? 00:02:03 /usr/lib/jvm/jre/bin/java -classpath :/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap startroot 1606 1579 0 04:36 pts/0 00:00:00 grep java[root@localhost ~]# ps aux|grep tomcattomcat 1251 0.0 14.7 2092836 38668 ? Sl Nov30 2:03 /usr/lib/jvm/jre/bin/java -classpath :/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start[root@localhost ~]#

Problems encountered during linux use
  1. prompt of‘file.swp’alread exit when opening a file throw vim
  • abnormal exit of file result in the creation of .swap files,it can’t be detected command ‘ls’
    The solution is delete it directly us command’rm -rf filename.swp’to delete it
  • To view all the .swp files in current directory,use the command ‘vim -r’
    see this artical for more detials: vim swp files handing
    2.iterm2安装过程提示
  • crantab:设定定时任务的linux指令,常用于周期性的日志分析或数据备份等工作。cbcd
    linux内建命令(shell build in)和外部命令区别
    参考此文:https://blog.csdn.net/taohuaxinmu123/article/details/10845001
    三个环境变量:PATH、OLDPWD、PWD。
    PATH:执行文件路径的变量;”echo PATH表示后面接的是变量)
    OLDPWD:表示前一次的工作目录;
    参考此文:Difference between help, info and man command
    help命令用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。
    测试发现:/usr/sbin中的命令可用command —help查看帮助信息
    而/usr/bin中的命令只能用man查看
    Ps:并不完全,pwd_mkdb只能man不能help,但也是位于/usr/sbin

    使用linux命令完成常见操作

    返回目录
    Linux中怎么通过PID号找到对应的进程名及所在目录方法
    linux配置path环境变量
    查看PATH环境变量:echo $PATH—/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

    List of Environment Variables in Linux/Unix
    linux添加PATH环境变量
    Linux将命令路径添加到PATH中

    • System wide
      /etc/environment: specifically meant for environment variables
      /etc/env.d/: environment variables, split in multiple files
      /etc/profile: all types of initialization scripts
      /etc/profile.d/
      : initialization scripts
      /etc/bashrc: meant for functions and aliases
  • User specific
    ~/.bash_profile: initialization for login (bash-)shells
    ~/.bashrc: initialization for all interactive (bash-)shells
    ~/.profile: used for all shells
    ~/.cshrc, ~/.zshrc, ~/.tcshrc: similar for non-bash shells

1.查看path环境变量的值
#echo $PATH||
printf "%s\n" $PATH
|| # cat /etc/paths—mac中
2.找出PATH变量值的存储文件位置(这个是比较难的?直接google吧···)
How to determine where an environment variable came from
3.修改path环境变量
MAC中PATH存储在/etc/paths文件中,故修改之即可
# sudo vim /etc/paths

set,env和export这三个命令都可以用来显示shell变量,其区别?

set 用来显示本地变量
env 用来显示环境变量
export 用来显示和设置环境变量set 显示当前shell的变量,包括当前用户的变量
env 显示当前用户的变量
export 显示当前导出成用户变量的shell变量每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_ARGC, BASH等,这些变量只有set才会显示,是bash特有的,export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量

Mac OS

MacHash

(此部分用于整理macos相关)

Bourne:shell的开发者
dmg就是disk image的意思,即磁盘影像,相当于在Windows上常见的iso文件
特殊符号:按下 Control-Command-空格键。此时会显示“字符检视器”弹出式窗口
Mac中的快捷键:https://support.apple.com/zh-cn/HT201236
Mac键盘符号:https://blog.csdn.net/xi_mi_/article/details/72312584

苹果电脑从硬件(CPU指令)到软件都是与X86机不兼容的独立系统,与Unix和Linux既有关系,也没关系。MAC操作系统在1984年就有了Mac 1.0版,而Unix一开始是贝尔实验实开始的,专门为大型服务器开发的一个操作系统,从1969年就开始开发,可以说是和计算机同步发展的,到1976年Unix基本成型,但那只能是极少数人员会使用那些繁锁的命令。苹果计算机一开始就定位为家庭个人电脑,而且指令也不兼容,1984Jobs(乔布斯)主持开发了MAC的第一个版本,鼠标操作,图形界面,窗口方式给人非常便捷的操作,使人感到用电脑就像小孩子搭积木一样的简单。Mac OS可以被分成操作系统的两个系列:一个是老旧且已不被支持的“Classic”Mac OS(系统搭载在1984年销售的首部Mac与其后代上,终极版本是Mac OS 9)。采用 Mach 作为内核, 在OS 8以前用“System x.xx”来称呼。新的Mac OS X结合BSD Unix、OpenStep和Mac OS 9的元素。它的最底层建基于Unix基础,其代码被称为 Darwin,实行的是部分开放源代码。现在明白我为什么说MAC与Unix既有联系,又没联系了吧。在MAC9.0之前没有任何联系,最新的10.0中有联系了
2011年7月20日Mac OS X已经正式被苹果改名为OS X

Mac概述

932b81fefcbee524267750c3814cb646.png

Mac中的基本概念

bashbash(Bourne again shell)

Mac和linux系统目录结构的对比

比较可以发现:Mac中没有/proc文件夹

Mac中工具的的使用

mac10开始集成shell环境另外mac自带python环境、ruby环境
Refs:Why does Mac OS X come with ruby/rails?

Mac中bash的使用

1.bash进入python环境python
使用 quit(), exit(), 或者Ctrl-D退出命令行。
2.bash查看系统信息
191629e3f35ab618b5cee089e54ac332.png
Mac打开Terminal默认使用bash,经试验,Mac中查看系统相关信息和linux是不一样的,如上图:
通用的命令有两个:uname -aLONG_BIT
Refs:1.命令行获取 mac os x 系统信息2.Linux下如何查看版本信息

3.显示隐藏文件

  • command+shift+"+”显示隐藏文件或者comman+shift+G直接前往所在目录(默认显示所有文件,去除finfer默认的隐藏系统文件)
    3.ls -a显示所有文件
    4.查看vim是否有python支持:
    vim --version | grep +python—“+”号的含义在于表示插件是否支持,用“-“号也可以,反之。

Mac中常用软件安装

1.mac效率神器之——Alfred
mac软件下载网站下载该软件即可,下载后即为破解版,可以使用workflow功能
2.office_forMac套件
官网下载安装后使用第三方激活工具激活即可,
3.MAC中javaWeb开发环境搭建
4.keepassmac版本,打开链接后下载第三方的
keepassX即可
5.Mac中homebrew的安装
6.Mac中Atom的安装和使用
小计:用了印象笔记的Markdown,不支持
7.typora安装使用

  • 注意:创建任务列表时,The spaces around and betweet[and]are required for this to work.方括弧中间和两边都需要有空格

黑苹果安装

1. 在vmware上试安装
vmware安装很简单:官网下载最新版本,网上随意找个key就可以激活,使用:ctrl+alt退出
黑苹果资源从远景下载或者自己拿mac下载
安装教程:unlocker从gits上下载最新并切换到cmd下执行即可
安装过程可能出现问题:

  • vmware下载安装并创建虚拟机后打开报错:提示credential guard开启导致,而这个的开启在我这儿时因为开启Hyper-v导致
    解决方法就是关闭Hyper-v(关闭方法
    credential guare管理
    2.vimware中Mac的使用
    P&S
  • 重新分配mac所占用磁盘空间

1.打开终端,输入diskutil list
2.从显示的列表中找到你需要扩展的分区(是分区不是磁盘,分区的ID一般为diskXsX);
3.然后输入diskutil resizeVolume disk1s1 100GB,其中disk1s1为对应分区的ID,100GB为目标大小(这里的目标大小不能超过这个磁盘的总额);
4.回车,等待完成吧!
出现问题:

cfb7ae642b39c38bdd19baa397d241b7.png
更改risize命令为:diskutil apfs resizeContainer disk0s2 100gb

Window OS

一.windows中的基本概念

tablet:平板电脑
cmd下输入:systeminfo获取系统软件和硬件配置信息,比如主机名,操作系统名称/版本号 OS初始安装日期/本次启动时间
cpu数量 主板bios版本 启动盘 物理内存总量剩余大小 网卡数量(一般就是wlan/Ethernet/blueteeth)
win+pause:查操作系统信息

telnet登陆不区分内外网,但是你需要连接的这台电脑必须打开telnet服务,然后要知道端口号和用户名和密码才能登陆
telnet进入后按“q”退出
telnet使用方法1=》telnet使用方法2
find out which process is listening on a port on Windows

netstat -an |find /i “listening”—- Identify Open Ports on a Windows(cmd需要管理员权限)
net share 共享和取消共享==>使用方法>>

CMD和Powershell的使用

常用cmd命令和操作

1.where 命令

相当于linux中which命令,用来查看windows下某个命令或者可执行程序
描述: 显示符合搜索模式的文件位置。在默认情况下,搜索是在当前目录和 PATH 环境变量指定的路径中执行的。

where java—-查找

2.Ctrl+C

cmd只是一个执行命令的工具,所以没有文本编辑器中取消上一步操作的概念(ctrl+z),对应的是取消该命令执行ctrl+c

3.win+s和win+r

常见windows.msc文件(msc:Microsoft Management Console)
gpedit.msc 本地组策略编辑器
lusrmgr.msc 本地用户和组

4.net start serviceName
比如:net start mysql

Powershell

背景相关

Operating sytems:Windows—基于windows NT 其他多为unixlike

What are the special dollar sign shell variables?
TTYTerminal Type (Unix terminal interface)

环境变量相关(export,PATH,”$”,”:”)含义

bash中&符号解析

转义字符:其实所有编程语言,拥有转义字符的原因基本上是两点
一. 使用转义字符来表示字符集中定义的字符,比如ASCll里面的控制字符及回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示
二. 某一些特定的字符在编辑语言中被定义为特殊用途的字符。这些字符由于被定义为特殊用途,它们失去了原有的意义。比如说Html中,<被HTML定义为标签的开始,所以当我们转入<时,HTML就会把它当作为开始,而不是当作一个<来看待。再如PHP 的双引号(”),被PHP定义为字符串的外围标签,所以如果你在一对双引号里面,还想要使用双引号,只能使用转义字符了。不然PHP就会报错了。
从上面也可以看出转义无非是两种情况:
1:将普通字符转为特殊用途,一般是编程语言中,用于表示不能直接显示的字符,比如后退键,回车键,等。
2:用来将特殊意义的字符转换回它原来的意义。一般用在正则表达式中。还有有些脚本语言是弱类型,有些语言比如html 并不是编程语言,而是标记语言,有些语言只有一种类型 比如shell 脚本语言,这些语言中字符串都不加引号” ” ,或者可以不加引号“ ”,所以有时候需要转义字符说明某字符此时的身份是普通字符,而不是有特殊意义的元字符。
另外出于网站的安全。在数据写入数据库前,都会使用转义字符(函数)对一些敏感字符进行转义。这样做可以避免一些别有用心的人利用特殊符号的注入攻击。

powershell概述

bash编程
powershell官方文档
powershell是开源的
CLRcommon language runtime
和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集等),并保证应用和底层操作系统之间必要的分离
.NET Framework版本与CLR版本之间的关系
powershell查看自身版本$PSVersionTable.PSVersion
powrshell查看环境变量ls env:—注意最后是一个冒号(colon)
查看某个环境变量的值:$env:VariableName—和linux一样使用$字符显示

cmd和powershell和linux对比
 cmd中powershell中linux中
查看所有环境变量 set ls env: env
查看某个环境变量的值 set EVName 或者echo %EVName% ls env: EVName $EVName
     
   

查看环境变量:cmd:set ps:$env:

Difference between set, export and env in bash
set,env、declare和export这四个命令的区别

三.Tricks—使用技巧

Windows Subsystem for Linux

Windows Subsystem for Linux Documentation

四.Windows上常用软件安装使用

1.WinDjView:Window平台DjVu格式阅读器,点击获取
DJVU google chrome插件
2.百度云
.accelerate文件夹:百度云下载时会在其baiduyundownload/目录下自动生成,accelerate:加速,应该是告诉缓存文件夹
3.Chrome
Chrome将网页保存为PDF方法
Chrome插件—workflowy
4.Scrivener

 

系统和常用软件HotKeys

Mac中

Mac 键盘快捷键中文版
英文版:部分命令解释比果厂渣翻译好懂一点儿
Pages for Mac keyboard shortcuts


  1. Mac中常用的系统级别快捷键(classifed by适用范围)
  • ⌘+Q :针对程序。退出应用程序。不是针对哪个,而是所有的应用程序——简单有效粗暴

  • ⌘+W :窗口级别。关闭当前window.但金山词霸不吃这套😹😹😹

  • Command-H:隐藏最前面的应用的窗口。要查看最前面的应用但隐藏所有其他应用,请按 Option-Command-H。
  • Command-M:将最前面的窗口最小化至“程序坞”。要最小化最前面的应用的所有窗口,请按 Option-Command-M。
  • Control-Command-空格键。此时会显示“字符检视器”弹出式窗口
  • Control-Command-F: Use the app in full screen, if supported by the app

    ⌘+H是隐藏,可以这么理解:被隐藏的窗口还在桌面上,但是看不到了,只显示最上面一层,隐藏的最后结果是桌面上还有一个窗口。,而M是缩小到了dock中文件栏。
    下图是⌘+M的执行结果,就问你怕不怕😂😂😂
    593c0c1a66f9ea2087ab7523e97116a9.png


2.应用程序级别的快捷键


  • p.
    windows中

  XP 时代有 4 个经典的 Win 键组合:R/E/F/L,到了 Win7,花样更多了,win10在此基础上win快捷键如下:

1.对局域网上计算机的操作

  • Ctrl + Win + F:搜索计算机(如果您在网络上)
    2.对本台计算机上用户的操作
  • Win + L:锁定您的计算机或切换用户
  • Win + A:打开用户通知
  • Win + W:打开用户workInk工作区
    3.对本用户本桌面任务栏所打开窗口的操作
  • Win + T:切换查看任务栏上的程序,在任务栏显示tabs,但不打开
  • Win + 数字:显示位于任务栏指定位置(按下的数字作为序号)的程序的所有实例,连续按动时可切换该位置程序的实例,类似于Alt+tab,不同之处在于Alt+tab是没有分层的,单层的,直接显示所有应用程序的所有窗口化的实例,而win+number是分层的,先进入任务栏对应位置的程序,接着按进入该程序实例的切换。(alt+esc:切换上一个Active状态的窗口)
  • Win + 空格:切换输入法
    4.对系统的设置和操作
    • Win:打开或关闭开始菜单
    • Win + Pause:显示系统属性对话框
    • Win + P:选择显示模式
    • Win + X:打开 Windows 移动中心
      常用:
      1. win+X+A 以管理员身份打开powershell
      2. win+X+N 打开windows设置菜单
  • Win + U:打开轻松访问中心, 可以理解为util或者user,应为所谓的轻松访问中心就是针对user的utils
  • Win + R:打开运行对话框
  • Win + S:打开搜索对话框
  • Win + E:打开我的电脑
  • Win + F:打开用户反馈( feedback)

5.对当前用户当前桌面窗口的设置和操作

  • Win + D:显示桌面
  • Win + esc:关闭当前窗口
    Win + M:最小化所有窗口
    Win + SHIFT + M:还原最小化窗口到桌面上
    Win + ↑:最大化窗口
    Win + ↓:最小化窗口
    Win + ←:最大化到窗口左侧的屏幕上(大屏分桌面分任务很有用)
    Win + →:最大化窗口到右侧的屏幕上
    Win + Home:最小化所有窗口,除了当前激活窗口
    Win + SHIFT + ↑:拉伸窗口的到屏幕的顶部和底部
    Win + SHIFT + → / ←:移动一个窗口,从一个显示器到另一个
    cmd下输入:systeminfo获取系统软件和硬件配置信息,比如主机名,操作系统名称/版本号 OS初始安装日期/本次启动时间
    cpu数量 主板bios版本 启动盘 物理内存总量剩余大小 网卡数量(一般就是wlan/Ethernet/blueteeth)
    win+pause:查操作系统信息
    Windows打开表情符号面板:Ctrl+Shift+B 简体繁体切换:Ctrl+Shift+F →此二项设置均为微软拼音默认设置。
映象笔记中的快捷键

1.通用快捷键(以下在win中command为ctrl,在windows中不适用标为)
command+q query
command+b Bold
command+i italic
command+u underline
command+j jump跳到某个弹出列表中的笔记本
⇧+command+DInsert date in the cursor position

Alt+f4或者Win+Etc关闭打开的单独笔记窗口
shift+conmand+F格式简单化,可以去掉拼写检查
ctrl+shift+T 切换笔记列表到标签视图

Chrome中的快捷键

chrome快捷键使用总结
ChromeForMac中

  • 打开最近关闭的窗口:Shift+command+T T是tab的缩写
    在映象笔记中该组合键功能为添加待办事项: T是Toto缩写
    在windows中command替换为ctrl
  • 打开历史记录command+Y—Y是什么鬼东西?
    windows中ctrl+h history
  • 光标移动到locationcommand+l—此时按tab可切换搜索引擎,google/baidu/zhihu,etc.
    window中是ctrl+L location 定位到地址栏
    在映象笔记中是定位到标题title处
  • command+shift+left/right,或者control+tab(后一个)&ctrl+⇧+tab(前一个)
    ChromeWin版
    切换标签页:Ctrl+Tab或者Ctrl+PageUP/PageDown
    网易云笔记
    Alt+left—关闭侧边栏
posted @ 2018-12-21 03:57  管锥生  阅读(963)  评论(0编辑  收藏  举报