历史记录
Bash会保存你输入命令的历史记录,可以通过上下按键或者history命令查看。
通过上下按键查看之前的命令。
通过history命令查看历史记录。
可以通过Ctrl+r来在历史记录中搜索命令。
命令行通配符
* 匹配零个或多个
? 匹配任意一个字符
[0-9] 匹配一个数字范围
[abc] 匹配列表里任意字符
[^abc] 匹配列表以外字符输入代码
切换用户
在CLI中,通过su命令切换用户
su 切换到root用户但不使用新的运行环境
su - 切换到root用户并使用一个新的运行环境
sudo 使用管理员用户身份运行命令
显示当前用户信息
id
修改当前用户密码
passwd
BASH作业管理
在后台运行进程
在命令后添加一个 &
暂停某个程序
通过Ctrl+z或者发送信号17
管理后台作业
jobs(查看当前所有后台作业)
bg(控制进程继续在后台执行)
fg(将后台作业拉回前台)
当前工作目录
每一个Shell或系统进程都有一个当前工作目录
使用pwd命令可以显示当前的工作目录
列出目录内容
”ls”命令用来列出目录内容
相关参数:
ls –a 显示所有文件(包括隐藏文件)
ls –l 显示详细信息
ls –R 递归显示子目录结构
ls –ld 显示目录和链接信息
绝对路径与相对路径
绝对路径:以 ”/ ”开头,递归每级目录直到目标的路径不受当前所在工作目录的影响.
相对路径:以当前目录为起点,到达目标的路径受当前所在目录影响.
”cd”命令可以用来切换目录
上一级目录 ..
当前目录 .
用户家目录 ~
上一个工作目录 -
复制文件、目录
使用cp命令复制文件或目录
cp 源文件(目录) 目标文件(目录)
常见参数:
-r 递归复制整个目录树
-v 显示详细信息(显示复制过程)
移动、重命名文件或目录
通过mv命令移动或者重命名文件或目录
mv 文件 目标目录
如果指定文件名,则可以重命名文件
创建、删除文件
通过touch命令可以创建一个空文件或更新文件
通过rm命令可以删除文件或目录
常用参数:
-i 交互式(删除每一文件前会提示)
-r 递归的删除包括目录中的所有内容
-f 强制删除,没有警告提示(使用时需十分谨慎)
创建、删除目录
通过mkdir命令创建一个目录
通过rmdir命令删除一个空目录
通过rm –r (-f) 命令删除一个非空目录
输出、查看命令
命令echo用以显示输入的内容
命令cat用以显示文件内容
命令head用以显示文件的头几行(默认10行) -n 指定显示的行数
命令tail用以显示文件的末尾几行(默认10行) -n 指定显示的行数
-f 追踪显示文件更新(一般用于查看日志,命令不会退出,而是持续显示新加入的内容)
命令more用于翻页显示文件内容(只能向下翻页)
命令less用于翻页显示文件内容(带上下翻页)
查看硬件信息
命令lspci用以查看pci设备
-v 查看详细信息
命令lsusb用以查看usb设备
-v 查看详细信息
命令lsmod用以查看加载的模块(驱动)
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
挂载操作
磁盘或分区创建好文件系统后,需要挂载到一个目录才能使用。
Windows或Mac系统会进行自动挂载,一旦创建好文件系统后就会自动挂载到系统上,windows上称之为C盘、D盘等。
Linux需要手工进行挂载操作或配置系统进行自动挂载。
mount /dev/sda3(要挂载的分区) /mnt(挂载点)
命令umount用来卸载已挂载的文件系统,相当于windows中的弹出。
umount 文件系统/挂载点
umount /dev/sda3 == umount /mnt
如果出现device is budy报错,则表示该文件系统正在被使用,无法卸载,可以通过以下命令查看使用文件的进程:
fuser –m /mnt
也可使用命令lsof查看正在被使用的文件:
lsof /mnt
配置文件/etc/fstab用来定义需要自动挂载的文件系统,fstab中每一行代表一个挂载配置,格式如下:
需要挂载的设备也可以用LABEL进行识别,使用LABEL=LINUXCAST取代/dev/sda3
mount –a命令会挂载所有fstab定义的自动挂载项
用户、组
当我们使用Linux 时,需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行,用户限制使用者或进程可以使用、不可以使用那些资源。
组用来方便组织管理用户。
每个用户拥有一个UserID,操作系统实际使用的是用户ID,而非用户名。
每个用户属于一个主组,属于一个或多个附属组。
每个组拥有一个GroupID。
每个进程以一个用户身份运行,并受该用户可访问的资源限制。
每个可登录用户拥有一个指定的shell。
用户
用户ID为32位,从0开始,但是为了和老式系统兼容,用户ID限制在60000以下。
用户分为以下三种:
root用户 (ID为0的用户为root用户)
系统用户 (1 – 499 非强制,而是惯例)
普通用户 (500以上)
系统中的文件都有一个所属用户及所属组。
使用id命令可以显示当前用户的信息。
使用passwd命令可以修改当前用户密码。
查看登录的用户
命令whoami显示当前用户
命令who显示有哪些用户已经登录系统
命令w显示有哪些用户已经登录并且在干什么
创建一个用户
命令useradd用于创建一个新用户
useradd rsndm
这个命令会执行以下操作:
在/etc/passwd中添加用户信息
如果使用passwd命令创建密码,则将密码加密保存在/etc/shadow中
为用户建立一个新的家目录/home/rsndm
将/etc/skel中的文件复制到用户的家目录中
建立一个与用户用户名相同的组,新建用户默认属于这个同名组
命令useradd支持以下参数
-d 家目录
-s 登录shell
-u userid
-g 主组
-G 附属组(最多31个,用”,”分割)
修改用户信息
命令usermod用来修改用户信息
usermod 参数 username
命令usermod支持以下参数:
-l 新用户名
-u 新userid
-d 用户家目录位置
-g 用户所属主组
-G 用户所属附属组
-L 锁定用户使其不能登录
-U 解除锁定
删除用户
命令userdel用以删除指定用户:
userdel rsndm (保留用户的家目录)
userdel –r rsndm (同时删除用户的家目录)
组
几乎所有操作系统都有组的概念,通过组,可以更加方便的归类、管理用户。一般来讲,使用部门、职能或地理区域的分类方式来创建使用组。
每个组都有一个组ID
组信息保存在/etc/group中
每个用户拥有一个主组,同时还可以拥有最多31个附属组
创建、修改、删除组
命令groupadd用以创建组:
groupadd linuxcast
命令groupmod用以修改组信息
groupmod –n newname oldname 修改组名
groupmod –g newGid oldGid 修改组ID
命令groupdel用以删除组:
groupdel linuxcast
权限
权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限大,该进程拥有的权限就大。
Linux权限基于UGO模型进行控制:
U代表User, G该表Group, O代表Other
每一个文件的权限基于UGO进行设置
权限三个一组(rwx),对应UGO分别设置
每一个文件拥有一个所属用户和所属组,对应UG,不属于该文件所属用户或所属组的使用O权限
命令 ls –l可以参看当前目录下文件的详细信息:
修改文件所属用户、组
命令chown用以改变文件的所属用户:
chown rsndm linuxcast.net
-R 参数递归的修改目录下的所有文件的所属用户
命令chgrp用以改变文件的所属组:
chgrp rsndm linuxcast.net
-R 参数递归的修改目录下的所有文件的所属组
修改权限
命令chmod用以修改文件的权限:
chmod 模式 文件
模式为如下格式:
u、g、o分别代表用户、组和其他
a可以代指ugo
+、-代表加入或删除对应权限
r、w、x代表三种权限
模式示例:
chmod u+rw linuxcast.net
chmod g-x linuxcast.net
chmod go+r linuxcast.net
chmod a-x linuxcast.net
命令chmod也支持以数字方式修改权限,三个权限分别由三个数字表示:
-r = 4 (2^2)
-w = 2 (2^1)
-o = 1 (2^0)
使用数字表示权限时,每组权限分别为对应数字之和:
rw- = 4+2+0 = 6
rwx = 4+2+1 = 7
r-x = 4+0+1 = 5
所以,使用数字表示ugo权限使用如下方式表示:
chmod 660 linuxcast.net == rw-rw----
chmod 775 linuxcast.net == rwxrwxr-x