都是我在学习时的一些笔记,希望可以帮到大家 Linux 命令 Linux简介 1.1 查看系统版本‘

  1. 查看ubantu版本 sudo lsb_release -a cat /etc/issue
  2. 查看内核版本 uname -r cat /proc/version

可以uname --help看看: uname -a可以看到操作系统的发行版号和操作系统版本 uname -v可以查看版本号 1.2 分层结构 应用层:程序、命令 内核层:五大功能:进程管理、设备管理、内存管理、网络管理、文件系统管理。 驱动层:字符驱动管理、块设备管理、网络设备驱动 硬件:鼠标、键盘、硬盘、U盘等。 1.3 系统命令开机重启 sudo shutdown -h now: 立即关机 sudo shutdown -r now: 立即重启 sudo reboot now: 立即重启 sudo shutdown -h 时间 “提示语句”: 定义关机 sudo shutdown -r 时间 “提示语句”:定义重启 shutdown -c: 可以取消定时操作 Linux安装工作 2.1软件包安装 2.1.1软件包的安装管理 debian: deb软件包管理机制 redhat: rpm软件包管理机制(Red Hat Package Manager) 2.1.2软件包分类 二进制软件包:xx.deb 源码包: xx.dsc 2.1.3软件管理工具 在Debian的linux发行版下,采用dpkg和apt两种包管理工具。 dpkg与apt: dpkg:离线安装,安装本地包,不能检查软件包的依赖关系,不关系仓库内的软件。 apt:在线安装,通过仓库获取软件包资源,解决依赖关系,不能安装本地包。A -> B

2.2 dpkg工具 sudo dpkg -i 软件包的全称:安装软件 sudo dpkg -s 软件包名:显示软件的安装状态
sudo dpkg -L 软件包名:显示软件的安装路径 sudo dpkg -r 软件包名:卸载软件 sudo dpkg -P 软件包名:完全卸载软件,重新下载不会保留上一次配置。 如若不能直接拉进去就去虚拟机设置去设置共享文件夹,若是设置不了就打sudo hq_vm.sh 2.3 apt工具 sudo apt-get install 软件包名: 安装 sudo apt-get remove 软件包名: 卸载 可以 /etc/apt/sources.list 默认下载包的存放路径:/var/cache/apt/archives/ shell 3.1 shell的基础知识 3.1.1 概念 shell是贝壳的意思,起到保护作用。那么Linux的shell可以保护内核。 shell: 命令行解释器 作用:负责把应用程序输入的信息解释给操作系统, 将操作系统执行后的结果解释给应用程序。 my understand:是用户和编程交流的一堵墙,为了防止用户破坏到内部硬件,所以创建了这样一个交流中间人。

3.1.2 命令的执行过程

用户在命令行下命令,然后传给shell,shell在将用户的命令转换成内核可以看懂的语言,然后又传给硬件,然后硬件的反应会传给shell,shell再给用户。

3.1.3 shell分类

(1)Bourne Shell(简称sh):Bourne Shell由AT&T贝尔实验室的S.R.Bourne开发,也因开发者的姓名而得名。它是Unix的第一个Shell程序,早已成为工业标准。目前几乎所有的Linux系统都支持它。不过Bourne Shell的作业控制功能薄弱,且不支持别名与历史记录等功能。目前大多操作系统是将其作为应急Shell使用。 (2)C Shell(简称csh):C Shell由加利福尼亚大学伯克利分校开发。最初开发的目的是改进Bourne Shell的一些缺点,并使Shell脚本的编程风格类似于C语言,因而受到广大C程序员的拥护。不过C Shell的健壮性不如Bourne Shell。 (3)Korn Shell(简称ksh):Korn Shell由David Korn开发,解决了Bourne Shell的用户交互问题,并克服了C Shell的脚本编程怪癖的缺点。Korn Shell的缺点是需要许可证,这导致它应用范围不如Bourne Shell广泛。 (4)Bourne Again Shell(简称bash):Bourne Again Shell由AT&T贝尔实验室开发,是Bourne Shell的增强版。随着几年的不断完善,已经成为最流行的Shell。它包括了早期的Bourne Shell和Korn Shell的原始功能,以及某些C Shell脚本语言的特性。此外,它还具有以下特点:能够提供环境变量以配置用户Shell环境,支持历史记录,内置算术功能,支持通配符表达式,将常用命令内置简化。 3.1.4 shell命令格式 命令名称 选项 参数 命令名称: 必须得有 选项和参数:可有可无,选项前面要有-符号 3.2 历史记录命令 在家目录下的隐藏文件,通过vi打开!!!: .bash_history: 默认存放2000条历史记录命令的文件 .baschrc: 定义HISTSIZE(使用histotry命令时默认显示的记录个数)和HISTFILESIZE(.bash_history文件可以存放命令的个数) 变量的脚本文件

history:查看历史命令的命令,默认显示的命令行数根据HISTSIZE来定 history n: 显示n行历史记录 HISTSIZE=500:临时修改变量的值 修改.bashrc文件中HISTSIZE的值,并且将终端退出:可以永久修改 echo $HISTSIZE:将变量值显示在终端 3.3 起别名命令符 alias: 查看系统中起别名的命令 alias 新名='原来的命令’:起别名 unalias 新名:取消别名 3.4 Linux特殊字符 3.4.1 通配符 *: 匹配所有字符 ?: 匹配任意一个字符 [...]: 匹配[]中指定的一个字符 [-]: 匹配[]中指定范围的字符 [^]: 除了其中指定的一个字符均可匹配 3.4.2 管道 | 格式:command1 | command2 前一个命令的输出当作下一个命令的输入

例如: wc -l 文件名:显示文件行数 wc -w 文件名:显示文件中单词个数 wc -c 文件名: 显示文件字符个数 3.4.3 输入输出重定向

file:输出重定向,新建模式

file: 输出重定向,追加模式 2> 或者 &> file: 将错误信息重定向到文件中 file 2>&1: 将输出重定向到文件,然后将错误重定向到输出,所以错误也到了文件。 < file: 输入重定向 3.4.5 命令置换符 esc键下的格式: command1command2例如:her ishostname` 就会输出 her is 主机名 her is hostname 3.5 echo命令 向终端输出指定内容 echo -n 字符串:不换行输出 echo "字符串": 原样输出 3.6 date命令 date:显示当前日期和u时间 sudo date -s y/m/d: 修改年月日 sudo date -s h:m:s:修改时分秒 系统维护命令 4.1 man man man:查看man手册的用法 1 Executable programs or shell commands 可执行程序或shell命令 2 System calls (functions provided by the kernel) 系统调用 3 Library calls (functions within program libraries) 库函数 4.2 su sudo su root: 切换到管理员模式 sudo su 用户名:切换到其他普通用户 退出:exit 4.3 sudo 临时管理员权限,需要输入密码。 4.4 df命令 df -Th: 查看磁盘使用情况 4.5 mount命令 作用:文件系统的挂载 挂载设备:sudo mount -t 设备类型 设备名称 挂载点 卸载设备:sudo umount 挂载点
注意:卸载时不要在挂载点卸载 挂载 ,让你的设备挂在你的虚拟机上,让这两个地方的文件夹同步,适用于电路板等等。

补充: 挂载优盘时,出现u盘识别不出的现象,解决办法: 1)虚拟机->设置->usb控制器->兼容usb3.0 2)虚拟机->可移动设备->找到自己的u盘->连接 如果出现u盘类型不匹配的问题 sudo apt-get install exfat-fuse exfat-utils

例子: mount -t nfs 192.168.1.100 :/被挂载目录/home 就是可以在home里共享 用户管理命令 增加删减新用户: sudo deluser --remove-home 用户名:删除用户的同时删除工作目录 sudo adduser 用户名 : 增加新用户 进程管理命令 6.1 ps ps -aux : 显示当前系统中运行的进程 ps -ef : 显示当前系统中运行的进程,包含PPID(父进程号)

进程状态 PROCESS STATE CODES:
D uninterruptible sleep (usually IO) 不可中断的睡眠态 R running or runnable (on run queue) 运行态 S interruptible sleep (waiting for an event to complete) 可中断的睡眠态 T stopped by job control signal 暂停态 t stopped by debugger during the tracing 因为调试而暂停 X dead (should never be seen) 死亡态 Z defunct ("zombie") process, terminated but not reaped by its parent 僵尸态 < high-priority (not nice to other users) 高优先级 N low-priority (nice to other users) 低优先级 L has pages locked into memory (for real-time and custom IO) 锁在内存中 s is a session leader 会话组组长 l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) 多线程

  • is in the foreground process group 前台进程 没有+时,默认是后台进程 I 空闲状态进程

6.2 top shift >:向下翻页 shift <: 向上翻页 PR :优先级 VIRT :真正占用的内存 SHR:共享内存 q:退出

6.3 修改命令优先级 PR=NI+20 NI值的范围:-20 ~ 19,NI值越小优先级越高。 sudo renice NI PID : 改变正在运行的进程的优先级

sudo nice -n NI值 进程: 以指定优先级运行进程

6.4 查找字符串 从文件中 grep:从文件中查找字符串 grep "查找的字符串" 文件名 grep "\<要查找的字符串\>" 文件名:精确查找 grep -r "查找的字符串" 路径/目录 find 路径 -name 文件名(也可以是文件的后缀类型): 查找路径下的文件

6.5 kill program kill用来向进程发送一个信号,信号是什么需要用户指定。 kill -l:查看系统中定义的信号 2:SIGINT 快捷方式:ctrl+c 结束进程 3:SIGQUIT 快捷方式:ctrl+\ 结束进程 9:SIGKILL 杀死进程 15:SIGTERM 结束进程 kill发信号时不加编号,默认信号为15号 18:SIGCONT 让暂停进程继续 20:SIGTSTP 暂停信号 快捷方式:ctrl+z 暂停信号 kill -num PID: num:信号编号

6.6 前后台进程切换 步骤:先运行进程 ctrl z : 将进程暂停 bg 编号: 切换到后台 jobs: 查看在当前终端后台执行的进程 fg 编号: 将后台进程切换到前台

网络管理命令 7.1 命令

ifconfig: 查看linux的ip地址 ipconfig: 查看windows的ip地址 win+r打开运行窗口,输入cmd打开命令窗口,输出ipconfig ping 域名/ip地址: 检查网络连通性(是否能通信) windos ping虚拟机默认是发个包,如果想发更多包可以-n加包数

特殊情况:如果虚拟机无法ping通windows,再试一下windows ping 虚拟机,如果能ping通,说明是防火墙的问题,将防火墙关闭即可。 虚拟机配置网络找不到主机适配器的解决方法: 首先将虚拟机卸载,安装ccleaner软件,清理注册表; 把防火墙关闭、杀毒软件退出,右击以管理员身份运行虚拟机exe进行安装vmware

7.2 Ubuntu网络配置

7.2.1 桥接模式

1)桥接模式:编辑->虚拟网络编辑器->更改设置->选择vmnet0->桥接模式->桥接的网络适配器(根据主机的网络连接进行选择,当然选择自动也可以)->确定。

7.2.2 nat模式

1)编辑->虚拟网络编辑器->更改设置->选择vmnet8->nat模式->确定。 2)虚拟机->设置->网络适配器->选择nat模式

关于文件系统的命令 8.1 文件系统分类 1)磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。常见文件系统格式有:Ext2、Ext3、Ext4、VFAT等 2)网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。常见文件系统格式有:NFS(Network File System,网络文件系统)、Samba(SMB/CIFS)等 3)专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统)和LOOPBACKFS(Loopback File System,回送文件系统)。 8.2 根文件系统结构 需要了解常见的目录含义: /bin:存放系统中最常用的可执行文件(二进制) /sbin : 存放更多的可执行文件(二进制),包括系统管理、目录查询等关键命令文件 /boot:存放Linux内核和系统启动文件,包括Grub、lilo启动器程序 /opt: 与系统无关的安装程序 /etc: 放的一些配置文件 /dev : 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等 /lib : 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件 /mnt : 该目录通常用于作为被挂载的文件系统的挂载点 /proc : 存放所有标志为文件的进程,它们是通过进程号或其他的系统动态信息进行标识,例如cpuinfo文件存放CPU当前工作状态的数据 /usr : 用于存放与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。以下罗列了/usr中部分重要的目录。 /usr/lib: 库文件,系统默认搜索的库路径 /usr/include: 头文件,系统默认搜索的头文件路径 8.3 显示文件内容 cat 文件: 显示文件内容

head: head -n 文件名: 显示前n行 head 不加数字,默认显示前十行

tail: tail -n 文件名: 显示后n行 tail后不加数组默认显示后10行 8.4 连接文件 文件类型:7种,b c d - l s p 硬链接:利用linux种为每个文件分配的物理编号inode建立的链接。因此,硬链接不能跨越文件系统。 软连接:是利用文件的路径建立的链接,通常用绝对路径而不是相对路径。 命令: 硬链接:ln 源文件 链接文件名 软链接:ln -s 源文件 链接文件名 注意: 硬链接:删除或者移动目标文件链接依然有效,只能操作普通文件。 软连接:删除或者移动目标文件链接失效,建立链接使用绝对路径名 8.5 文件压缩解压 1. zip 命令用于将一个文件或多个文件压缩成单一的压缩文件 unzip 命令用于将zip压缩文件进行解压 -d 加路径可以解压缩到指定目录下 注意: 具有归档功能,并进行压缩。 可以压缩文件夹,后缀为.zip 压缩或者解压后的源文件依然存在。

格式: zip 压缩后文件名.zip 文件列表 例如:zip file.zip 1 2 3

gzip 命令用于将一个文件进行压缩 gunzip命令用于将gzip压缩文件进行解压缩 注意: 只能对一个文件进行压缩,并且后缀自动为.gz 没有归档功能 压缩或解压后原文件不存在

bzip2 命令功能与特点和gzip相同,只不过后缀为.bz2。

选项: -x : 释放归档文件,解压 -c : 创建一个新的归档文件,压缩 -v : 显示归档和释放的过程信息 -f : 用kke -j : 由tar生成归档,然后由bzip2压缩 .tar.bz2 -z : 由tar生成归档,然后由gzip压缩 .tar.gz 注意: 具有归档功能,通过选项进行压缩或解压缩。 压缩或解压后原文件依然存在 需要写全压缩或解压的文件名格式:

组合: -cjf: 以bz2的格式压缩文件 -czf:以gz的格式压缩文件 -xvf: 解压一个压缩包,解压后压缩包依然存在。

格式:tar 选项 压缩(解压)文件名 要压缩的文件列表

Shell 脚本 shell 脚本基本概念 1.1 概念 shell使用方式:手动命令和脚本 shell脚本本质:shell命令的有序集合,扩展名可以为.sh见名之意, 也可以没有. shell既是应用程序,又是脚本语言。 编译型语句:编译器gcc,g++ 解释型语句:不需要编译,解释一条执行一条,例如python,shell脚本就是解释型语句。

1.2 创建和执行 新建一个shell脚本: touch xx.sh 第一行:#!/bin/bash 意思是使用/bin/bash来解释执行

执行方式:
sudo chmod 权限 ./xx.sh  	 #使脚本具有执行权限
./xx.sh					 #执行脚本

1.3 变量 1.3.1 用户自定义变量 一般用大写 进行赋值时用=,左右两边不能有大写 引用变量前面加$

VAR=10 echo $VAR #10 1.3.2 位置变量 Linux操作系统基础命令大全(适合新手观看)_Shell{0}与输入的命令行一样,表示包含脚本名./xx.sh的参数 $1,$2,Linux操作系统基础命令大全(适合新手观看)_Shell_02# 表示包含命令行参数的个数(不包含脚本文件名这个参数) $@ $* 包含命令行所有参数:“$1 $2 $3...”

1.3.3 预定义变量

$? 包含前一个命令的退出状态(0表示真 非0表示假)

Linux操作系统基础命令大全(适合新手观看)_文件系统_03