概述
目录
Linux介绍
为什么使用ubuntu?
Linux目录
用户目录
命令行基本操作
命令格式
查看帮助
Linux命令
权限管理
ls 列出目录内容
stat 显示inode内容
权限种类
查看权限
chmod 修改文件访问权限
chown 修改文件所有者
chgrp 修改文件所属组
文件内容查看
cat、tac 基本显示
nl显示行号
more、less 分屏显示
head、tail 取首位n行显示
文件管理
> 输出重定向
| 管道
clear 清屏
cd 切换工作目录
pwd 显示当前目录
mkdir 创建目录
rm 删除文件或目录
ln 建立链接文件
grep 文本搜索
find 查找文件
cp拷贝文件
mv移动文件
tar归档管理
gzip、bzip2 文件压缩与解压缩
zip、unzip 文件压缩解压
which 查看命令位置
用户和用户组管理
whoami 查看当前用户
who 查看登录用户
exit 退出登录账户
useradd 添加用户账号
usermod 修改用户
passwd 设置用户密码
userdel 删除用户
su 切换用户
sudo 以root身份执行指令
groupadd、groupdel 添加、删除组账号
groupmod 用户组管理
系统管理
cal 日历
date 显示或设置时间
netstat 查看网络状态
ps 查看进程信息
pstree 以树状图显示进程关系
top 动态显示进程
kill 终止进程
reboot、shutdown、init 关机重启
df 检测磁盘空间
du 检测目录所占磁盘空间
ifconfig 查看或配置网卡信息
ping 测试远程主机连通性
正则表达式
量词
转义字符
字符类
Vim
正在上传…重新上传取消
命令模式
移动光标
删除操作
撤销&复原&重复
修改&替换
复制&粘贴&合成行
搜索
输入模式(替换模式)
切换方式
可用操作
底线控制模式
可视模式
tmux
tmux是什么
会话与进程
Tmux 的作用
基本用法
安装
启动与退出
会话管理
最简操作流程
窗格操作
窗口管理
其它命令
Linux介绍
为什么使用ubuntu?
因为Ubuntu图形界面比较美观,系统功能比较全面,同时使用人数多,社区丰富(可以找教程)。
Linux目录
·/:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。 ·/bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。 ·/boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。 ·/dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。 ·/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。 ·/home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录。 ·/lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。 ·/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。 ·/mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。 ·/opt:给主机额外安装软件所摆放的目录。 ·/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。 ·/root:系统管理员root的家目录。 ·/sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。 ·/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。 ·/srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。 ·/usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。 ·/var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。
用户目录
位于/home/usr,称为用户目录或家目录
从/目录开始描述的路径为绝对路径,如:
cd /home ls /usr
从当前位置开始描述的路径为相对路径,如:
cd ../../ ls abc/def
颜色含义
文件的颜色 | 含义 |
---|---|
蓝色 | 目录 |
绿色 | 可执行文件 |
红色 | 压缩文件 |
浅蓝色 | 链接文件 |
灰色 | 其他文件 |
命令行基本操作
命令格式
command [-operations] [parameter1] ...
command: 命令名
[-operations]:选项,对命令进行控制,可省略
[parameter]:传给命令的参数,可以是零个一个或多个
查看帮助
help
ls help
man
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
例:man ls ; man 2 printf
man中各个section意义如下:
Standard commands(标准命令) System calls(系统调用,如open,write) Library functions(库函数,如printf,fopen) Special devices(设备文件的说明,/dev下各种设备) File formats(文件格式,如passwd) Games and toys(游戏和娱乐) Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量) Administrative Commands(管理员命令,如ifconfig) man是按照手册的章节号的顺序进行搜索的。
man设置了如下的功能键:
空格键 显示手册页的下一屏 Enter 一次滚动手册页的一行 b 回滚一屏 f 前滚一屏 q 退出man命令 h 列出所有功能键 /word 搜索word字符串
tab键自动补全
敲出命令前几个字母后按tab会自动补全命令
若候选项不止一个,双击tab会展示所有候选项
history浏览历史
当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
history保留了最近执行的命令记录,默认可以保留1000。 历史清单从0开始编号到最大值。 常见用法:
history N 显示最近N条命令 history -c 清除所有的历史记录 history -w xxx.txt 保存历史记录到文本xxx.txt
ctrl组合键
Ctrl+c 结束正在运行的程序 Ctrl+d 结束输入或退出shell Ctrl+s 暂停屏幕输出【锁住终端】 Ctrl+q 恢复屏幕输出【解锁终端】 Ctrl+l 清屏,【是字母L的小写】等同于Clear ctrl+a 当前光标到行首 ctrl+e 当前光标到行尾 ctrl+u 删除当前光标到行首 ctrl+k 删除当前光标到行尾 Ctrl+y 在光标处粘贴剪切的内容 Ctrl+r 查找历史命令【输入关键字,就能调出以前执行过的命令】 Ctrl+t 调换光标所在处与其之前字符位置,并把光标移到下个字符 Ctrl+x+u 撤销操作 Ctrl+z 转入后台运行
Linux命令
权限管理
ls 列出目录内容
参数 | 含义 |
---|---|
-a | 显示指定目录下所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人性化的方式显示文件大小 |
可配合正则表达式列出符合要求的文件
通配符 | 含义 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te开头的文件 |
ls *html | 查找结尾为html的文件 |
? | 代表文件名中任意一个字符 |
ls ?.c | 只找第一个字符任意,后缀为.c的文件 |
ls a.? | 只找只有3个字符,前2字符为a.,最后一个字符任意的文件 |
[] | [”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。 |
[abc] | 匹配a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的的任意一个字符 |
ls [a-f]* | 找到从a到f范围内的的任意一个字符开头的文件 |
ls a-f | 查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用 |
如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。 | |
ls *a | 查找文件名为*a的文件 |
stat 显示inode内容
stat [文件或目录]
lumosiac@lumosiac-virtual-machine:~/Desktop$ stat reminders File: reminders Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 803h/2051d Inode: 278336 Links: 2 Access: (0775/drwxrwxr-x) Uid: ( 1000/lumosiac) Gid: ( 1000/lumosiac) Access: 2022-12-24 20:50:53.035306475 +0800 Modify: 2022-12-24 20:50:50.959121792 +0800 Change: 2022-12-24 20:50:50.959121792 +0800 Birth: 2022-12-24 20:49:50.525518023 +0800
权限种类
字母 | 说明 |
---|---|
r | read读取权限,数字代号为 “4” |
w | write写入权限,数字代号为 “2” |
x | execute执行权限,数字代号为 “1” |
- | 不具任何权限,数字代号为 “0” |
查看权限
通过ls -lh可查看文件权限
lumosiac@lumosiac-virtual-machine:~/Desktop/reminders$ ls -lh total 8.0K -rw------- 1 lumosiac lumosiac 504 12月 24 20:47 Disassembly.txt -rw-rw-r-- 1 lumosiac lumosiac 886 12月 24 23:21 ifconfig.txt
首字符代表文件类型
“d” 代表文件夹 “-” 代表普通文件 “c” 代表硬件字符设备 “b” 代表硬件块设备 “s”表示管道文件 “l” 代表软链接文件。
后九个字母每三个一组, 分别代表文件所有者、用户组、其它用户拥有的权限
再后面一个字符串代表所有者,再后一个代表用户组
chmod 修改文件访问权限
字母法
chmod u/g/o/a +/-/= rwx filename 如: chmod u=rwx,g=rx,o=r filename
[ u/g/o/a ] | 含义 |
---|---|
u | user 表示该文件的所有者 |
g | group 表示与该文件的所有者属于同一组( group )者,即用户组 |
o | other 表示其他以外的人 |
a | all 表示这三者皆是 |
[ ±= ] | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
数字法
chmod u=num1,g=num2,o=4 filename chmod 751 filename
chown 修改文件所有者
chown ownername filename 若不允许,则以管理员身份进行修改 sudo chown ownername filename
参数
-c显示更改的部分的信息 -f忽略错误信息 -h修复符号链接 -R处理指定目录以及其子目录下的所有文件 -v显示详细的处理信息 -deference作用于符号链接的指向,而不是链接文件本身
chgrp 修改文件所属组
sudo chgrp groupname filename
文件内容查看
cat、tac 基本显示
语法
cat [-AbEnTv] file
选项与参数
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已; -v :列出一些看不出来的特殊字符 -E :将结尾的断行字节 $ 显示出来; -T :将 [tab] 按键以 ^I 显示出来; -b :列出行号,空白行不标行号 -n :列出行号,连同空白行也会有行号
tac与cat命令恰好相反,文件内容从末行开始显示
nl显示行号
语法
nl [-bnw] file
选项与参数
-b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值); -n :列出行号表示的方法,主要有三种: -n ln :行号在荧幕的最左方显示; -n rn :行号在自己栏位的最右方显示,且不加 0 ; -n rz :行号在自己栏位的最右方显示,且加 0 ; -w :行号栏位的占用的位数。
more、less 分屏显示
语法
more/less file
more运行时可输入的命令
空白键 (space):代表向下翻一页; Enter :代表向下翻『一行』; /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字; :f :立刻显示出档名以及目前显示的行数; q :代表立刻离开 more ,不再显示该文件内容。 b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less运行时可输入的命令
空白键 :向下翻动一页; [pagedown]:向下翻动一页; [pageup] :向上翻动一页; /字串 :向下搜寻『字串』的功能; ?字串 :向上搜寻『字串』的功能; n :重复前一个搜寻 (与 / 或 ? 有关!) N :反向的重复前一个搜寻 (与 / 或 ? 有关!) q :离开 less 这个程序;
head、tail 取首位n行显示
语法
head/tail [-n nunber] file
默认情况显示十行
文件管理
> 输出重定向
可将本应显示在终端上的内容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
注意:**>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。**
| 管道
管道:一个命令的输出可以通过管道做为另一个命令的输入。
“ | ”的左右分为两端,从左端写入到右端。
clear 清屏
clear作用为清除终端上的显示,快捷键:Ctrl + l ( “l” 为字母 )。
cd 切换工作目录
命令 | 含义 |
---|---|
cd | 相当于cd ~ |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 切换到当前目录 |
cd .. | 切换到上级目录 |
cd - | 进入上次所在的目录 |
pwd 显示当前目录
选项与参数
-P :显示出确实的路径,而非使用连结 (link) 路径。
mkdir 创建目录
注意:新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
语法
mkdir [-mp] directionname
选项与参数
-m :指定被创建目录的权限,而不是根据默认权限 (umask) 设定 -p :递归创建所需要的目录
rm 删除文件或目录
一旦删除,不可恢复
参数 | 含义 |
---|---|
-i | 以进行交互式方式执行 |
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
ln 建立链接文件
软连接: ln -s sourcefile linkfile 硬链接: ln sourcefile linkfile
软连接类似Windows下的快捷方式。
如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
硬链接只能链接普通文件不能链接目录。 两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
grep 文本搜索
语法
grep [-rvni] '搜索内容串' 文件名
参数
-n 显示匹配行和行号 -i 忽略大小写进行查找
在当前目录中,查找前缀有test字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
$ grep test test* #查找前缀有test的文件包含test字符串的文件 testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行 testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行 testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi” #下包含“update”的文件 /etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.) Rather than /etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
$ grep -v test* #查找文件名中包含test 的文件中不包含test 的行 testfile1:helLinux! testfile1:Linis a free Unix-type operating system. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux is a free unix-type opterating system.
还可利用正则表达式进行进一步高级搜索
find 查找文件
常用用法
命令 | 含义 |
---|---|
find ./ -name test.sh | 查找当前目录下所有名为test.sh的文件 |
find ./ -name ‘*.sh’ | 查找当前目录下所有后缀为.sh的文件 |
find ./ -name “[A-Z]*” | 查找当前目录下所有以大写字母开头的文件 |
find /tmp -size 2M | 查找在/tmp 目录下等于2M的文件 |
find /tmp -size +2M | 查找在/tmp 目录下大于2M的文件 |
find /tmp -size -2M | 查找在/tmp 目录下小于2M的文件 |
find ./ -size +4k -size -5M | 查找当前目录下大于4k,小于5M的文件 |
find ./ -perm 0777 | 查找当前目录下权限为 777 的文件或目录 |
语法
find path -option [ -print ] [ -exec -ok command ] {} ;
常用参数
-perm xxxx:权限为 xxxx的文件或目录 -user: 按照文件属主来查找文件。 -size n : n单位,b:512位元组的区块,c:字元数,k:kilo bytes,w:二个位元组 -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 -amin n : 在过去 n 分钟内被读取过 -anewer file : 比文件 file 更晚被读取过的文件 -atime n : 在过去n天内被读取过的文件 -cmin n : 在过去 n 分钟内被修改过 -cnewer file :比文件 file 更新的文件 -ctime n : 在过去n天内被修改过的文件 -empty : 空的文件 -gid n or -group name : gid 是 n 或是 group 名称是 name -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写 -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写 -type 查找某一类型的文件: b - 块设备文件 d - 目录 c - 字符设备文件 p - 管道文件 l - 符号链接文件 f - 普通文件
cp拷贝文件
语法
cp [-operations] sourcefile/dir targetfile/dir
选项
选项 | 含义 |
---|---|
-a | 该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性。 |
-f | 已经存在的目标文件而不提示 |
-i | 交互式复制,在覆盖目标文件之前将给出提示要求用户确认 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。 |
-v | 显示拷贝进度 |
-l | 创建硬链接(hard link),而非复制文件本身 |
-s | 复制成为符号链接 (symbolic link),相当于批量创建快捷方式 |
-u | 若 destination 比 source 旧才升级 destination ! |
mv移动文件
mv命令用来移动文件或目录,也可以给文件或目录重命名。
常用选项
选项 | 含义 |
---|---|
-f | 禁止交互式操作,如有覆盖也不会给出提示 |
-i | 确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件 |
-v | 显示移动进度 |
tar归档管理
此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式 tar [参数] 打包文件名 文件
tar命令参数很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数
参数 | 含义 |
---|---|
-c | 生成档案文件,创建打包文件 |
-v | 列出归档解档的详细过程,显示进度 |
-f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
-t | 列出档案中包含的文件 |
-x | 解开档案文件 |
gzip、bzip2 文件压缩与解压缩
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
grip语法
gzip [选项] 被压缩文件
常用选项
选项 | 含义 |
---|---|
-d | 解压文件 |
-r | 压缩文件 |
tar命令中-z选项可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar zcvf 压缩包包名 文件1 文件2 …
例如: tar zcvf test.tar.gz 1.c 2.c 3.c 4.c把 1.c 2.c 3.c 4.c 压缩成 test.tar.gz
解压用法: tar zxvf 压缩包包名
解压到指定目录:-C (解压时可以不指定-z选项)
bzip2命令跟gzip用法类似
压缩用法:tar jcvf 压缩包包名 文件…(tar jcvf bk.tar.bz2 *.c)
解压用法:tar jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
zip、unzip 文件压缩解压
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
which 查看命令位置
which command
用户和用户组管理
在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限。
Unix/Linux系统中的root账号通常用于系统的维护和管理,它对Unix/Linux操作系统的所有部分具有不受限制的访问权限。
在Unix/Linux安装的过程中,系统会自动创建许多用户账号,而这些默认的用户就称为“标准用户”。
在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。
whoami 查看当前用户
查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
who 查看登录用户
who命令用于查看当前所有登录系统的用户信息。
常用选项:
选项 | 含义 |
---|---|
-m或am I | 只显示运行who命令的用户名、登录终端和登录时间 |
-q或–count | 只显示用户的登录账号和登录用户的数量 |
选项 | 含义 |
-m或am I | 只显示运行who命令的用户名、登录终端和登录时间 |
exit 退出登录账户
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。
useradd 添加用户账号
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令的使用格式如下: useradd [参数] 新建用户账号
参数 | 含义 |
---|---|
-d | 指定用户登录系统时的主目录 |
-m | 自动建立目录,未指定-d参数时会在/home/{当前用户}目录下建立主目录 |
-g | 指定组名称 |
相关说明:
Linux每个用户都要有一个主目录,主目录就是第一次登陆系统,用户的默认当前目录(/home/用户); 每一个用户必须有一个主目录,所以用useradd创建用户的时候,一定给用户指定一个主目录; 如果创建用户的时候,不指定组名,那么系统会自动创建一个和用户名一样的组名。 若创建用户时未指定家目录,后期可通过usermod -d /home/abc abc指定
命令 | 含义 |
---|---|
useradd -d /home/abc abc -m | 创建abc用户,如果/home/abc目录不存在,就自动创建这个目录,同时用户属于abc组 |
useradd -d /home/a a -g test -m | 创建一个用户名字叫a,主目录在/home/a,如果主目录不存在,就自动创建主目录,同时用户属于test组 |
cat /etc/passwd | 查看系统当前用户名 |
usermod 修改用户
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值 。
修改用户所在组:usermod -g 用户组 用户名
usermod -g test abc
改abc用户的家目录位置:usermod -d 家目录 用户名
usermod -d /home/abc abc
选项-l 新用户名指定一个新的账号,可修改用户名:
python@ubuntu:~/txt$ tail /etc/passwd -n 1 aaa:x:1001:1001::/home/aaa: python@ubuntu:~/txt$ sudo usermod -l bbb -d /home/bbb aaa python@ubuntu:~/txt$ tail /etc/passwd -n 1 bbb:x:1001:1001::/home/bbb:
passwd 设置用户密码
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。 -u 口令解锁。 -d 使账号无口令。 -f 强迫用户下次登录时修改口令。
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
userdel 删除用户
命令 | 含义 |
---|---|
userdel abc(用户名) | 删除abc用户,但不会自动删除用户的主目录 |
userdel -r abc(用户名) | 删除用户,同时删除用户的主目录 |
su 切换用户
su后面可以加“-”会将当前的工作目录自动转换到切换后的用户主目录.
命令 | 含义 |
---|---|
su | 切换到root用户 |
su root | 切换到root用户 |
su - | 切换到root用户,同时切换目录到/root |
su - root | 切换到root用户,同时切换目录到/root |
su 普通用户 | 切换到普通用户 |
su - 普通用户 | 切换到普通用户,同时切换普通用户所在的目录 |
注意:对于ubuntu平台,只能通过sudo su进入root账号。
sudo允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。
sudo 以root身份执行指令
sudo命令可以临时获取root权限
使用权限:在 /etc/sudoers 中有出现的使用者。
显示出自己(执行 sudo 的使用者)的权限 sudo -l 以root权限执行上一条命令 sudo !!
sudoers文件配置语法
user MACHINE=COMMANDS 用户 登录的主机=(可以变换的身份) 可以执行的命令
groupadd、groupdel 添加、删除组账号
groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
python@ubuntu:~/test$ sudo groupadd abc python@ubuntu:~/test$ sudo groupdel abc python@ubuntu:~/test$ sudo groupdel abc groupdel:“abc”组不存在
groupmod 用户组管理
修改用户组的属性使用groupmod命令。其语法如下:
groupmod 选项 用户组
常用的选项有:
-g GID 为用户组指定新的组标识号。 -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。 -n新用户组 将用户组的名字改为新名字
将组group2的组标识号修改为102:
groupmod -g 102 group2
将组group2的标识号改为10000,组名修改为group3:
groupmod –g 10000 -n group3 group2
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:
$ newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。
系统管理
cal 日历
cal命令用于查看当前日历,-y显示整年日历:
date 显示或设置时间
date [MMDDhhmm[[CC]YY][.ss]] +format
MM为月,DD为天,hh为小时,mm为分钟;CC为年前两位,YY为年的后两位,ss为秒。
显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’):
netstat 查看网络状态
语法
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
参数说明
-a或–all 显示所有连线中的Socket。 -A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。 -c或–continuous 持续列出网络状态。 -C或–cache 显示路由器配置的快取信息。 -e或–extend 显示网络其他相关信息。 -F或–fib 显示FIB。 -g或–groups 显示多重广播功能群组组员名单。 -h或–help 在线帮助。 -i或–interfaces 显示网络界面信息表单。 -l或–listening 显示监控中的服务器的Socket。 -M或–masquerade 显示伪装的网络连线。 -n或–numeric 直接使用IP地址,而不通过域名服务器。 -N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。 -o或–timers 显示计时器。 -p或–programs 显示正在使用Socket的程序识别码和程序名称。 -r或–route 显示Routing Table。 -s或–statistice 显示网络工作信息统计表。 -t或–tcp 显示TCP传输协议的连线状况。 -u或–udp 显示UDP传输协议的连线状况。 -v或–verbose 显示指令执行过程。 -V或–version 显示版本信息。 -w或–raw 显示RAW传输协议的连线状况。 -x或–unix 此参数的效果和指定"-A unix"参数相同。 –ip或–inet 此参数的效果和指定"-A inet"参数相同。
常用:
[root@VM_0_9_centos ~]# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3308/sshd tcp6 0 0 :::80 :::* LISTEN 4624/httpd
ps 查看进程信息
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
ps命令选项
ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 ps -e 此参数的效果和指定"A"参数相同。 ps e 列出程序时,显示每个程序所使用的环境变量。 ps f 用ASCII字符显示树状结构,表达程序间的相互关系。 ps -H 显示树状结构,表示程序间的相互关系。 ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。 ps s 采用程序信号的格式显示程序状况。 ps u 以用户为主的格式来显示程序状况。 ps x 显示所有程序,不以终端机来区分。
常见用法
ps -e 查看所有进程信息(瞬时的) ps -u root -N 查看所有不是root运行的进程 ps ax 显示所有进程状态状态 ps -ef |grep xxx 显示含有xxx的进程
pstree 以树状图显示进程关系
特别表明在运行的进程:
# pstree -apnh //显示进程间的关系
同时显示用户名称:
# pstree -u //显示用户名称
top 动态显示进程
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。-d参数可以指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
按键 含义 M 根据内存使用量来排序 P 根据CPU占有率来排序 T 根据进程运行时间的长短来排序 U 可以根据后面输入的用户名来筛选进程 K 可以根据后面输入的PID来杀死进程。 q 退出 h 获得帮助
更高级的命令是htop,但需要安装
kill 终止进程
kill命令指定进程号的进程,需要配合 ps 使用。
使用格式:
kill [-signal] pid
信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。
reboot、shutdown、init 关机重启
命令 | 含义 |
---|---|
reboot | 重新启动操作系统 |
shutdown –r now | 重新启动操作系统,shutdown会给别的用户提示 |
shutdown -h now | 立刻关机,其中now相当于时间为0的状态 |
shutdown -h 20:25 | 系统在今天的20:25 会关机 |
shutdown -h +10 | 系统再过十分钟后自动关机 |
init 0 | 关机 |
init 6 | 重启 |
df 检测磁盘空间
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
选项 | 含义 |
---|---|
-a | 显示所有文件系统的磁盘使用情况 |
-m | 以1024字节为单位显示 |
-t | 显示各指定文件系统的磁盘空间使用情况 |
-T | 显示文件系统 |
du 检测目录所占磁盘空间
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下:
du [选项] 目录或文件名
选项 | 含义 |
---|---|
-a | 递归显示指定目录中各文件和子目录中文件占用的数据块 |
-s | 显示指定文件或目录占用的数据块 |
-b | 以字节为单位显示磁盘占用情况 |
-l | 计算所有文件大小,对硬链接文件计算多次 |
ifconfig 查看或配置网卡信息
ifconfig显示所有网卡的信息
修改ip: sudo ifconfig ens33 192.168.40.10
ping 测试远程主机连通性
ping + 网址
正则表达式
量词
例子(c代表一个任意字符) | 含义 | 记忆/备注 |
---|---|---|
c? | 零个或一个c | 有么? |
c* | 零个或多个c | 乘几都可以 |
c+ | 一个或多个c | 加几都可以 |
c{3} | 三个c | |
c{2,6} | 二到六个c | |
c{4,} | 四个及以上个c | |
c?? | 最少的零个或一个c | rai?? 匹配rail中的ra |
c*? | 最少的零个或多个c | a.*?c 匹配abcbc"中的"abc" |
c+? | 最少的一个或多个c | be+? 匹配been中的be |
注意:默认为贪婪模式匹配,即尽可能多地匹配所搜索的字符串,例如,对于字符串“oooo”,“o+”将尽可能多地匹配“o”,得到结果[“oooo”]
若加上?则可切换至非贪婪模式。在上面有个例子中,“o+?”将尽可能少地匹配“o”,得到结果 ['o', 'o', 'o', 'o']
字符边界
示例 | 含义 |
---|---|
^abc | 以abc开头 |
abc$ | 以abc结尾 |
abcb | 单词abc(左右不能是字母或数字) |
转义字符
字符 | 含义 |
---|---|
a | 匹配响铃(警报)字符,u0007 。 |
b | 在 [ character_group] 字符类中,匹配退格,u0008 。 在字符类之外,b 是匹配字边界的定位点。 |
t | 匹配制表符,u0009 。 |
r | 匹配回车,u000D 。 请注意,r 不等同于换行符,n 。 |
v | 匹配垂直制表符,u000B 。 |
f | 匹配换页,u000C 。 |
n | 匹配换行,u000A 。 |
e | 匹配转义,u001B 。 |
nnn | 匹配 ASCII 字符,其中 nnn 包含表示八进制字符代码的两位数或三位数。 例如,
|