当前位置:   article > 正文

Linux基本用法_"o=$(uname -o) a=$(uname -m) && if [ \"$o\" == \"a

"o=$(uname -o) a=$(uname -m) && if [ \"$o\" == \"android\" ]; then [[ \"$a\" =="
  1. windows
  2. __----------------
  3. Desktop Os
  4. Linux+VMware
  5. -------------
  6. Linux
  7. 服务器Os
  8. 稳定
  9. 安全
  10. VMware
  11. -----------------
  12. Oracle vbox
  13. ------------------
  14. Host
  15. ----------------
  16. Linux | mac
  17. ——————————————————
  18. Client机
  19. 安装VMware
  20. ------------------
  21. 安装客户机
  22. -------------
  23. window:物理结构
  24. ——-----——————
  25. 资本主义
  26. c:/
  27. d:/
  28. e:/
  29. linux文件结构
  30. ———————————————————
  31. /bin //二进制文件目录
  32. /sbin //二进制文件目录
  33. /dev //device,设备目录,光驱,磁盘,分区
  34. /etc //配置文件目录
  35. /lib //库文件,共享对象文件(so---shared object,等价于dll文件)
  36. /home //主目录 /home/ubuntu /home/ubuntu......
  37. /meida
  38. /mnt
  39. /opt //root用户的主目录
  40. /root
  41. /usr //user
  42. /usr/bin //可执行文件
  43. /usr/sbin //可执行文件
  44. /usr/local //
  45. /usr/local/bin //
  46. /usr/local/sbin //
  47. Linux
  48. --------------
  49. 1.redhat
  50. 2.centOs
  51. 3.ubuntu
  52. 4.Suse
  53. 5....
  54. 共同祖先是Unix
  55. 最早的文件在bin和sbin中
  56. 自己的文件放在userbin中
  57. 哪一个优先级高,就近原则
  58. Linux基本操作
  59. ----------------
  60. windows linux
  61. cd cd //进入目录
  62. pwd //显示当前的目录
  63. clear //清屏
  64. whoami //查询当前的用户
  65. sudo passwd //切换用户
  66. ipconfig ifconfig //查询Ip
  67. su root //切换用户
  68. mkdir
  69. rm
  70. cp
  71. mv
  72. cat
  73. touch
  74. chow
  75. ping www.baidu.com ping www.baidu.com //ping网络
  76. tree find . | grep //ping网络
  77. del 删文件 rm -fR xxx //递归强制删除目录(文件)
  78. rmdir 删目录
  79. echo touch hello.txt //创建空文件
  80. echo helloworld > hello.txt //补齐文件(覆盖模式)
  81. echo helloworld >> hello.txt //(追加模式)
  82. cat hello.txt //直接查看文件内容
  83. type hello.txt //
  84. C滚把window模拟成linux
  85. cat hello.txt //直接查看文件内容
  86. copy a.txt ../b.txt cp hello.txt b/c/d //复制文件
  87. cp hello.txt b/c/d/1.txt //复制并文件。指定名称
  88. cp -R xxx ../
  89. echo
  90. nano 与 Ctrl+0与ctrl+x
  91. cat
  92. deirect :>>与> //重定向
  93. more
  94. head -n hello.txt //显示文件开头N行数据
  95. tail -n hello.txt //显示文件结尾N行数据
  96. which hostname //查看文件命令
  97. sudo reboot //重启
  98. uname -a //查看系统的内核信息,-all也可以实现
  99. file xxx.so //查看文件类型
  100. s 在类库中有so文件lib中,链接文件 -表示共享文件(动态链接库文件)
  101. 安装第三方软件在lib中就会生成so 文件,没有的话就有问题
  102. tar //归档和解档
  103. tar -xvzf mytar.tar.gz //解压(原地)
  104. tar -tf mytar.tar //查看归档文件
  105. tar -rf mytar.tar.xxx //-r追加文件到
  106. mount //挂载外设
  107. 实例“”
  108. umount /dev/cdrom
  109. ls
  110. gzip -l mytar.tar //原地压缩,时间优先
  111. gzip -9 mytar.tar //原地压缩,空间优先
  112. gzip -9 mytar.tar //原地压缩,空间优先
  113. gzip -d mytar.tar.gz //原地文件,空间优先
  114. gunzip mytar.tar.gz //加压缩文件 等价于 == gzip -d xxx.gz
  115. sudo shutdown -p now //关机 -p:关电源 -r:reboot
  116. sudo halp -p
  117. sudo mount //挂载外设
  118. sudo umount //解除挂载
  119. ln -s /exist_file link_name
  120. jobs
  121. kill %n
  122. ps -Af
  123. cut -c num1-num2
  124. cmd --help
  125. man cmd
  126. help
  127. info cmd
  128. fdisk
  129. fdisk -l //查看分区表
  130. fdisk /dev/sda //管理指定磁盘
  131. ...
  132. df 磁盘空间使用情况 disk free
  133. df -ah
  134. dd diskdump
  135. dd
  136. dirname //查看文件所在目录
  137. basename 输出文件的基本名称(取出目录的部分)
  138. echo $(hostname)
  139. echo $($cat 1.txt) //1.txt中写入 hostname,嵌套命令,多次调用
  140. cd —p mylink //进入物理目录,不是连接目录
  141. war //web
  142. ear //enterprise
  143. jar //java archive file
  144. tar //归档文件
  145. tar -f -
  146. -c //创建
  147. -f //指定文件
  148. -v //指定信息verbose
  149. -x //extract 从归档文件抽取,解档
  150. -z //通过gzip进行过滤
  151. -----------------------
  152. ls
  153. -h 人性化可读
  154. -a 现实全部文件(.xxx)
  155. -l:列表展示
  156. --------------------
  157. find
  158. -------------------
  159. find /usr/local
  160. find .|xargs grep -ri "IBM" //含有ibm串
  161. find .|xargs grep -ri "IBM" -l //输出文件名
  162. find /cmd ".sh" -prin | ... //指定目录sh文件
  163. ls | grep pig |cp 'xargs' ~/Download
  164. xargs //将管道的输出内容合并成一行数据使用空格分割
  165. find . | grep txt | c[ 'xargs' //''是按照命令进行执行
  166. 配置文件在/etc目录下
  167. ls | grep host
  168. ll 查看权限
  169. source hostname 立即启用
  170. nano 编辑器
  171. ----------------------------------
  172. 1.nano hello.txt
  173. 2.ctrl + o //保存
  174. 3.ctrl + x //退出
  175. 4.ctrl + k //剪切一行
  176. 5 ctrl + U //复制一行
  177. Linux链接文件
  178. -----------
  179. 1.硬链接(hard link)
  180. 两个完全相同的文件,占用2倍的磁盘空间,两者实时同步,删除一个文件。另一个不删除
  181. 2.符号链接(symbolic link)
  182. 相当于快捷方式,不会占用过多的磁盘空间
  183. 如果源文件删掉,连接失效(不意味删除,红色)
  184. 3.创建连接方式
  185. ln hello.txt. hello.txt.ln //硬链接
  186. 4.grep特殊字符需要转移
  187. ls -al | grep "\->" //过滤
  188. jobs
  189. -------------------
  190. 显示后台作业
  191. 查看进程信息
  192. ----------------
  193. ps //process show
  194. ps -Af //-A:所有进程 -f
  195. 杀死job
  196. ----------------
  197. kill %1
  198. cut
  199. ----------------------------
  200. 对每行文本剪切处理
  201. 对每行输出进行剪切处理
  202. cat -c num1-num2
  203. cut -c 1- //显示1以及后面的所有字符
  204. cut -c -5 //显示开始到5的所有字符
  205. cut -c 3-5 //显示3-5后面的所有字符
  206. 输出环境变量
  207. ——————————+
  208. echo $path
  209. echo ${PATH}
  210. echo "PATH"
  211. 单引号错误,双引号正确
  212. export mypath = /home/ubuntu //导入环境变量,只在当前会话中有效
  213. export mypath =${path:-} //导入环境变量,只在当前会话中有效
  214. export yourpath = //干掉你的path
  215. exprot $yourpath
  216. exprot $yourpath=${PATH:-$PATH:-$mypath}
  217. export $yourpath=${PATH:-$PATH1:-$mypath} //相当于三元运算符,条件运算的过程
  218. path环境变量,windows使用“;”号分割,linux使用“:”分割
  219. export mypath=${path}:/home/ubuntu
  220. echo $mypath
  221. $env other //空格分区
  222. ${env} //{}界限
  223. “$env” //""界限
  224. export env = ${env:-$env:-$envn2} //是取env, 否env2 三元运算符
  225. echo 'pwd' //按脚本执行
  226. if["$1"="--conf"] //第几个参数
  227. if[$#-lt 1]
  228. if[$#-gt 1]
  229. if[-e xxx] //是否存在
  230. if[-d] //wrong ,需要空格
  231. if[-d xxx] //right
  232. 查看linux内置命令的帮助
  233. ---------------------
  234. help export
  235. if commands ,then commands ;
  236. [else if commands ;then commands ;] ....[else commands;] fi
  237. help if
  238. hellp export
  239. help while
  240. help for
  241. 使用if
  242. ["$1" = "--conf"] //第几个参数
  243. ---------------------------------
  244. linux内置变量的访问方式
  245. 1.$?
  246. 返回刚刚执行命令的结果,0:成功 !0=失败
  247. 2.$#
  248. 获取参数个数
  249. rm -r bin //$# = 2
  250. 3.$n
  251. 获取第几个参数
  252. $0 //命令本身
  253. $1 //第一个参数,rm -r bin $1=-r
  254. ..
  255. 4$@
  256. 得到所有参数
  257. rm -r bin //$@=-r bin
  258. 5.shift
  259. 移动参数
  260. $? //命令的返回值存储变量
  261. $# //参数个数
  262. $1 //第几个参数
  263. $O //当前脚本名称
  264. $@ //取出所有参数
  265. shift //参数左移
  266. ${a/b/c} //
  267. 命令组合
  268. -----------------
  269. 1.a && b
  270. a成功执行后,再执行b命令
  271. 2.a || b
  272. a执行后,再执行b命令
  273. 3.a ; b
  274. a执行后,再执行b,没有成功失败的约束条件
  275. 4.(a ; b )
  276. //组合命令,只在当前目录执行,不切换目录
  277. ls -al ; cd /usr/ ; pwd
  278. (ls -al;cd ~; pwd)
  279. NetCat
  280. --------------------
  281. 1.瑞士军刀
  282. 2.TCP/IP
  283. transfer control protocal ,internet protocal
  284. Socket
  285. ServerSocket //server,listener,port
  286. Socket //connection,port
  287. 3.使用nc 进行聊天
  288. nc -l 8888 //在本机启动一个ServerSocket进程,
  289. &表示在后台运行
  290. nc localhost 8888 //启动客户端,连接到服务器端口8888
  291. 4.使用nc传递文件
  292. 传送文件
  293. 服务器端
  294. nc -l 1234 > readme.txt //服务器端,重定向接收数据到文件
  295. 客户端
  296. nc localhost 1234 < readme.txt //客户端,重定向输入
  297. 端口扫描
  298. nc ip -z port-portn //指定需要扫描的主机ip和端口区间
  299. nc -v -w 2 s1-z 2000 - 4000
  300. -v 详细信息
  301. -w 连接超时
  302. -z 端口扫描
  303. 命令前后台执行切换
  304. --------------------
  305. 1.启动命令时直接放到后台
  306. nc -l 888 & //
  307. 2.将当前进程暂停并放入后台,变成交作业(job)了
  308. ctrl + z
  309. joba //查看后台运行的所有作业,只需要jobid
  310. 3.将后台job激活,并在后台运行
  311. bg %1
  312. 4.将后台作业切换到前台运行
  313. fg %1
  314. d:directory 目录
  315. -:file 文件
  316. b:block
  317. l:link
  318. r:read 读
  319. w:write写
  320. x:execute执行
  321. 类型
  322. owner //主人
  323. group //组
  324. other //其他人
  325. d rwx r-x r-x .... hello.txt
  326. 权限说明
  327. -----------------
  328. 1.read
  329. 文件:查看文件内容
  330. 2.write
  331. 文件:修改文件内容
  332. 3.执行
  333. 文件:可执行文件
  334. 修改文件权限
  335. 查看linux内置命令的帮助
  336. ------------------
  337. help export
  338. help if
  339. help while
  340. help for
  341. 使用if
  342. ["$1"="--conf"] //第几个参数
  343. Ubuntu系统常用命令
  344. -----------------
  345. if[$#-lt 1]
  346. if[$#-gt 1]
  347. if[-e xxx]
  348. if[-d] //wrong 需要空格
  349. if[-d xxx] //right
  350. $? //命令的返回值存储变量,返回刚刚执行命令的结果,0:成功 !0:失败
  351. $# //参数个数 rm -r bin //$# = 2
  352. $n //获取第几个参数。 $0 //命令本身
  353. $1 //第一个参数,rm -r bin $1=-r
  354. $0
  355. 得到所有参数
  356. rm -r bin //$@=-r bin
  357. $1 //第几个参数
  358. $O //当前脚本名称
  359. $@ //取出所有参数
  360. shift //参数左移
  361. 向左移动参数,左边的参数被覆盖掉
  362. ${a/b/c} //
  363. $env other //空格分区
  364. ${env} //{}界限
  365. "$env" //""界限
  366. export env=${env:-$evn2} //三元运算符
  367. echo '${env}' //原样输出
  368. echo 'pwd' //按脚本执行
  369. if["$1"="--conf"] //第几个参数
  370. 文件和权限
  371. -------------------
  372. 1.文件类型
  373. d:目录
  374. -:文件
  375. b:block
  376. l:link
  377. 2.权限
  378. Owner(user) //主人
  379. group //组,linux用户隶属于组,可以隶属于多个组,但是只能够隶属于一个primary group ,可以隶属于多个secondary group
  380. other //其他人
  381. all //owner+group+other
  382. 3.控制权限
  383. r:read //rwx
  384. 111=7
  385. w:write
  386. x:exeute
  387. 修改文件权限
  388. ————————————
  389. chmod ugo+-=rwx hello.txt //
  390. chmod a+rwx hello.txt //
  391. chomd 777 hello.txt //
  392. chomd 755 hello.txt //
  393. 新增用户
  394. ---------------
  395. 1.useradd
  396. 是底层添加用户的命令,推荐用adduser添加新用户
  397. 2.adduser
  398. 通过adduser添加用户
  399. adduser --home /home/ubuntu2 ubuntu2 --gid 1000 ubuntu2 //ubuntu 1000
  400. 3.Ubuntu静态Ip设置
  401. 1)查看网关
  402. VMware虚拟机————>编辑菜单-->虚拟网络编辑器-->打开窗口-->选中vmnet8虚拟网卡-->
  403. nat设置-->查看网关(192.168.238.2
  404. 2)查看可用的ip网段
  405. VMware虚拟机————>编辑菜单-->虚拟网络编辑器-->打开窗口-->选中vmnet8虚拟网卡-->
  406. DHCP设置-->查看网段
  407. Ubuntu 修改软件源
  408. -----------
  409. Ubuntu软件包操作
  410. apt:advanced package tookit ,高级包管理工具
  411. sudo apt-get install xxx //安装软件包列表
  412. sudo apt-cache search xxx //
  413. sudo apt-get remove xxx //删除
  414. sudo apt-get purge xxx //删除软件和配置文件
  415. sudo apt-get update //更新
  416. sudo apt-get upgrade //升级
  417. sudo dpkg -l | grep xxx //
  418. 复制163软件源
  419. deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
  420. deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
  421. deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
  422. deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
  423. deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
  424. deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
  425. deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
  426. deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
  427. deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
  428. deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
  429. ctrl+o-- 回车-- ctrl+x-- 回车
  430. sudo apt-get update
  431. sudo apt-get upgrade
  432. 从本地安装桌面
  433. --------------
  434. 1.取得iso文件
  435. 2.挂载iso文件到/mnt/下
  436. mount /dev/cdrom /mnt/cdrom
  437. 3.修改/etc/apt/sources.list文件
  438. [/etc/apt/sources.list]
  439. deb file:/mnt/cdrom ./
  440. 4.更新和升级软件源
  441. apt-get update
  442. apt-get upgrade
  443. 5搜索软件
  444. sudo apt-cache search ubuntu-desktop
  445. 6.安装软件
  446. sudo apt-cache-install ubuntu-desktop
  447. 7.卸载软件
  448. sudo apt-get remove ubuntu-desktop
  449. Ubuntu安装VM增强工具
  450. ——————————————————
  451. 增强工具作用
  452. 和host共享文件夹
  453. 鼠标自动捕捉释放
  454. 高分屏
  455. 自适应窗口
  456. 1.VMWare-->重新安装VMware tool
  457. 2。自动打开光驱文件
  458. 3。复制vmware-tool-xxxx.tar.gz到桌面
  459. 4。右键vmware-tool-xxxx.tar.gz释放到这里
  460. 5。打开终端
  461. 6。进入~/Desktop/vmware-tool-distrib
  462. 7。执行python脚本
  463. sudo ./vmware-tool.pl
  464. 8。一路回车
  465. 9。Enjoy...成功了
  466. 版本:
  467. VMwareTools-9.9.3-2759765.tar.gz
  468. 客户机屏幕自适应
  469. ---------------
  470. 1.关闭客户机、
  471. 2.编辑客户机的设置
  472. 虚拟机-->虚拟机设置-->显示器-->指定显示器的设置(1366x768)
  473. 3 ok
  474. 4.启动客户机
  475. 完成window和linux共享文件夹
  476. 客户机和宿主机共享文件夹
  477. -----------------
  478. 1.编辑客户机的设置
  479. 虚拟机-->虚拟机设置-->选项-->共享文件夹
  480. 2,进入客户机的/mnt/hgfs查看共享的文件夹
  481. 客户机和宿主机共享剪切板
  482. --------------------
  483. 1.编辑客户机的设置
  484. 虚拟机-->虚拟机设置-->选项-->客户机隔离
  485. 2.选中复选框
  486. 客户机和宿主机之间支持拖放
  487. dpkg
  488. -----------
  489. dpkg-query --help
  490. dpkg-query --list | grep gedit
  491. sudo dpkg --remove gedit
  492. 1.直接安装.deb软件包
  493. dpkg -i gedit_4-xx.deb
  494. 2.通过which查看是否安装成功
  495. which gedit
  496. 3.卸载软件包
  497. sudo dpkg --remove gedit
  498. dpkg-query
  499. ---------------
  500. 1.查看本地安全点的软件包
  501. sudo dpkg-query --list | grep gedit
  502. 2.通过which查看是否安装成功
  503. which gedit
  504. 3.卸载软件包
  505. sudo dpkg --remove gedit
  506. 提高准确率
  507. ----------------
  508. 本地软件源制作
  509. -----------
  510. sudo apt-get install dpkg-dev
  511. mkdir ~/software
  512. cp -R -v /var/cache/apt/archives/* ~/software
  513. sudo dpkg-scanpackages ~/software /dev/null
  514. |gzip>~/software/Packages.gz
  515. 复制整个software文件夹到host主机
  516. 安装ubuntu客户机
  517. 从host复制software文件夹到主目录下
  518. 编辑/etc/apt/source.list文件
  519. deb file:/home/ubuntu/software./
  520. sudo apt-get update
  521. sudo apt-get upgrade
  522. sudo apt-get install xxx //此时从本地软件源安装
  523. 注意:
  524. 该方式要确保所有所需软件都在本地仓库中,否则还需要
  525. 将sources.list文件配置成外部软件源地址
  526. Ubuntu ISO文件制作
  527. ————————————————
  528. 1.安装mkisofs
  529. sudo apt-get install mkisofs
  530. 2.使用mkisofs制作iso文件
  531. //-r保留源文件-o输出文件
  532. sudo mkisofs -r -o xxx.so /targ
  533. Ubuntu通过光驱挂载iso文件实现共享
  534. ——————————————————————
  535. 1.虚拟机挂载iso文件
  536. a.虚拟机->光驱设置->指定iso文件
  537. b.连接
  538. 2.挂载CDROM到/mnt目录下
  539. sudo mkdir /mnt/cdrom
  540. sudo mount /dev/cdrom /mnt/cdrom
  541. cd /mnt/cdrom
  542. Ubuntu虚拟机克隆与Mac生成与网络连接形式
  543. Ubuntu网络连接形式
  544. -------------
  545. 1.桥接
  546. 模拟成一台物理机
  547. 完全模拟网络中的真实电脑,可配置IP,访问互联网,
  548. 局域网的互访,如果无网络,彼此无法连通
  549. 2.NAT
  550. 和Host形成局域网,由Host做NAT和DNS,可访问互联网,
  551. 局域网的主机无法访问客户机,没有网络时,Host和客户机
  552. 之间仍能连通。
  553. net address transform 网络地址转换
  554. 3.Only-host
  555. 类似于NAT,不能访问外网,出于安全性考虑。
  556. 即类似于内网的使用
  557. 配置客户机为静态IP
  558. --------------
  559. 1.查看NAT的网关
  560. 网络地址编辑器-->NAT-->NAT设置-->查看网关(192.168.119.2)
  561. 2.查看网段
  562. 网络地址编辑器-->NAT-->NAT设置-->查看网关(192.168.119.128)-->(192.168.119.254)
  563. 3.挑选一个ip
  564. 192.168.119.130
  565. 4.编辑ubuntu的网络配置文件
  566. /etc/network/interface
  567. 5.重启网络服务
  568. sudo /etc/init.d/networking restart
  569. 6.通过ping查看连通情况
  570. 脚本
  571. -----——————————————————————————————————
  572. 0.查看帮助
  573. help for
  574. 1.语法一
  575. for NAME [in WORDS ... ]; do COMMANDS; done
  576. [例如]
  577. for a in 1 2 3 4 ; do each $a ; done
  578. 脚本创建文件
  579. 脚本删除文件
  580. while
  581. for a in 1 2 3 4 ; do rm ${a}.txt ; done
  582. ls
  583. 2.语法二
  584. [语法]for ((exp1;exp2;exp3)); do COMMANDS;done
  585. [例子]for ((a = 1 ;a <= 11))
  586. 一饿就脑短路,来条士力架吧
  587. 横扫饥饿,做回自己
  588. 使用for循环打印10个数
  589. ————————————————————————
  590. a = 10
  591. for
  592. 1.语法
  593. while语法
  594. ---------------
  595. 1.语法
  596. ((EXP1))
  597. while((EXP2));do
  598. COMMANDS
  599. ((EXP3))
  600. done
  601. 步骤
  602. 1.创建脚本文件
  603. 2.
  604. 打印1-->10 10个数字
  605. ---------------
  606. #!/bin/bash
  607. (( a=1 ))
  608. while (( a <= 10 )) ; do
  609. echo $a
  610. ((a = a + 1 ))
  611. done
  612. 使用fro循环打印所有参数
  613. ---------------------
  614. #!/bin/bash
  615. ((count = $# ))
  616. ((a=1))
  617. while ((a<=count)) ; do
  618. echo $1 ;
  619. shift;
  620. ((a=a+1))
  621. done
  622. if 语句
  623. 脚本的编写
  624. 参数的提取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/142730
推荐阅读
相关标签
  

闽ICP备14008679号