按 Ctrl+F 在当前页面搜索命令
切换管理员用户
su
把用户设置为管理员权限
su #切换为管理员
vim /etc/sudoers #打开/etc/sudoers配置文件
admin ALL=(ALL) ALL #在配置文件中添命令(admin替换成想更改为管理员权限的用户名)
命令太长想两行输入
cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root #('\'加键盘回车)即可实现
Ls 命令
ls [-选项] <目录/路径>
ls #显示目录文件命令
ls -l #列出文件详细信息
ls -a #查看当前路径所有文件,包括隐藏文件
常用命令
cd <目录名/路径> #切换目录命令
pwd #显示当前目录命令
clear #清除屏幕
hostname #查看主机名
date #查看日期
cal #查看日历
uname #查看当前系统
who #查看当前用户
history #显示历史命令列表
创建目录命令 mkdir
mkdir [-选项] <目录名/路径>
-p 递归创建,即目录的上级目录不存在就先创建上级目录
-v 输出目录创建的详细信息
创建普通文件命令 touch
touch [选项] <文件名>
touch a.txt b.txt c.txt #同时创建多个文件a.txt b.txt c.txt
删除空目录命令 rmdir
rmdir [选项] <目录名>
-p 删除指定的目录,若目录的上级目录为空也一同删除
-v 输出目录删除的详细信息
#如果目录下存在文件,则不能删除
#在本目录下,无法删本目录
删除文件或目录命令 rm
rm [选项] <文件或目录名>
-f 强制删除
-i 在删除之前给出提示信息
-r 递归删除目录及其内容
rm –r a #删除目录a
rm –rf a #强制删除目录a
rm –rf /usr/local/a #强制删除/usr/local/a目录
复制文件或目录命令 cp
cp [-选项] <原文件或目录> <目标文件或目录>
-r 递归复制目录及其子目录的所有内容
cp -r aa bb #复制aa文件及其下的所有文件目录到bb目录下
cp -r aa ~/cc #复制aa文件及其下的所有文件目录到主目录下的cc目录
剪切文件或目录命令 mv(剪切,移动,重命名)
mv [-选项] <原文件或目录> <目标文件或目录>
mv a1.txt t.txt #把a1.txt文件改名为t.txt文件
显示文件内容命令 cat
cat [选项] <文件名>
cat 1.txt #查看1.txt 文件
分页显示文件内容命令 more
more [选项] <文件名> #该命令按空格键或f键向后翻页,按b键向前翻页,按回车键换行可一行一行往后显示,按q键退出
分页显示文件内容命令 less
less [选项] <文件名> 该命令按PgUp/PgDn键可以向前/后翻页,上下的箭头换行(一行一行的往前或后显示),按q键退出
显示前n行文件内容命令 head
head [选项] <文件路径>
-n #不加 -n 默认显示前 10 行数据
head -5 /etc/services #查看/etc/sercices 文件的前五行
显示后n行文件内容命令 tail
tail [选项] <文件名>
-n #不加 -n 默认显示前 10 行数据
tail -5 /etc/services #查看/etc/sercices 文件的后五行
输出内容命令echo
echo [选项] <参数> #把参数输入到屏幕上
-e 解析转义字符
单引号:引号里面的内容会原封不动的显示出来
双引号:里面的特殊符号会被解析(如“\” 换行符),变量也会被替换
echo hello word. \nhello linux.
输出:
hello word. \nhello linux.
echo -e “hello word. \nhello linux.
输出:
hello word.
hello linux.
重定向 >,>>
data > 1.txt #把当前日期覆盖写入1.txt文件
ls >> 1.txt #把ls输出的内容写入1.txt文件中不覆盖以前写入的文件
管道命令 |
管道命令就是用来连接多条指令的,前一条指令的输出会作为后一条指令的输入。 管道命令的操作符是"|",它只能处理由前面一条指令传出的正确输出信息,对错误信息是没有直接处理能力的。然后,传递给下一条指令,作为操作对象
echo -e "hello word. \nhello linux." | wc -l #用管道命令wc -l查询echo 输出的行数
cat test.txt |wc -w #用管道命令查询test.txt 的字符数
统计命令 wc
wc [选项] <文件名>
wc -l hang.txt #统计tongji.txt的行数
wc -w danci.txt #统计danci.txt的单词数
通配符 * ? [ ] { }
* #代表任意长度字符串,如:*.txt代表以.txt结尾的所有文件
? #代表任意字符,如:ls -l /bin/??sh列出/bin目录下文件名为4个字符,以sh结尾的所有文件
[] #有序序列数字或字符,如ls /file[0-9].txt
{} #字符串匹配,如rm –rf {jiaoben,script}*.sh (文件名中含有jiaoben和script)
ls /bin/*.sh #查看/bin目录下以sh为后缀的文件
ls /bin/??sh #查看/bin目录下以sh结尾的四个字符的文件
vim 基本操作
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
底线命令模式(末行模式):保存或退出文档,以及设置编辑环境。
在命令模式下输入命令 i 可以进入输入模式。
输入模式下屏幕的最底端会提示“--INSERT(插入)”字样。只有在输入模式下,用户才可以进行文字和数据的输入。
输入模式下切换回命令模式,按Esc键即可
在命令模式下,用户按“:”键即可进入底线命令模式
要退出vim,在命令模式下键入下面所示命令。 其中:wq是保存退出,而:q是不保存退出。 :wq!是保存后强制退出,:q!是不保存强制退出。
vim在打开文件时,如果该文件不存在,会自动创建此文件。
查找文件命令 find
find [路径] [选项] [表达式] #find通常与通配符搭配,结合管道符后能够实现更加复杂的功能。
find . -type f #列出当前目录及其子目录下的所有普通文件
find /usr/local -name *.sh #查看/usr/loval目录下名字以sh为后缀的文件
find /etc -size +1M #查找/etc目录下超过1M的文件
sudo find /usr -name ta*.txt #切换为管理员用户查找/usr目录下文件名为ta*.txt
find ./1.txt |wc -l #显示出1.txt文件的行数
查找命令grep
grep [选项] [表达式] [文件名]
-c 只输出匹配行的计数。
-i 不区分大小写
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 反转查找,显示不包含匹配文本的所有行。
gerp "test" testgrep #从testgrep文件中搜索包含"test"字符串的行
cat /proc/meminfo |grep "Men"|wc-l #从/proc/meminfo文件中找到含'Men'的有几行
文件压缩/解压命令 tar
tar [选项] [文件名或路径]
tar –czf 压缩包名.tar.gz 压缩的文件路径 #压缩文件
tar -xzf 压缩包 -C 解压后的路径 #解压文件
tar -czf file.tar.gz file1 file2 file3 #把file1,file2,file3压缩成file.tar.gz 压缩包
tar -xzf f.tar.gz -C bb #把f.tar.gz解压到bb目录
软件安装命令 rpm和yum
rpm -ivh <rpm包名> ##安装rpm软件包
-i (install):安装
-v(verify):在安装中显示详细的安装信息
-h(horizontal): 显示水平进度条"#"
rpm -e <包名> #删除软件包 查询包名的时候不用带后缀rpm
rpm –q <包名> #查询软件包 查询包名的时候不用带后缀rpm
rpm –qa #查询安装的所有rpm软件包
yum [选项] [命令] [包名]
-yum install <软件包名> #安装包
-yum list <软件包名> #查询包
-yum info <软件包名> #查询包详细信息
-yum update <软件包名> #更新包
-yum remove <软件包名> #删除包
用户与组群管理
创建用户
useradd [选项] [用户名]
-d 指定用户的主目录,默认用户组目录为/home/用户名
-e 帐号到期日期,格式为:YYYY-MM-DD
-u 指定用户的UID
-g 用户所属主组群的组群名称或者GID
-G 用户所属的附属组群列表
-N 不创建与用户同名的基本用户组
-s 指定用户的登录Shell,默认为/bin/bash
sudo useradd student #切换为管理员用户创建student用户
sudo useradd -e "2023/01/01" student1 #切换为管理员用户创建student1哟用户到期时间为2023.1.1
ls /home #查看所以创建的用户
创建组
groupadd [选项] [用户名]
-f 如果组已经存在则成功退出
-g 为新组使用 GID,并且如果 GID 已经存在则取消
-h 显示此帮助信息并推出
-K 不使用 /etc/login.defs 中的默认值
-o 允许创建有重复 GID 的组
-p 为新组使用此加密过的密码
-r 创建一个系统账户 -R chroot 到的目录
sudo groupadd school #切换为管理员用户创建school用户组
sudo groupadd -g 1001 school1 #切换为管理员用户创建标识号为1009的组school1
查询用户所属的组
groups [选项] [用户名]
groups stduent #查询 student 用户所属的组
查询用户身份标识
id [选项] [用户名]
uid是用户id,1000说明是一个普通用户;1000~60000的UID号默认分配给普通用户使用
gid是组id,同uid的判断方式相同,1000是普通组。
id root #查询 root 用户的 id
删除用户
userdel [选项] [用户名]
-r 同时删除用户及用户目录
-f 强制删除用户 sudo userdel
sudo userdel -r student #使用userdel命令删除student帐户,同时删除student帐户的主目录 用ls /home 后会发现student 目录已经被删除
删除用户时,提示用户正在被某进程使用,在确保关闭所有文件的状态下,可以用kill命令杀死进程,kill命令使用需慎重!!!
如:userdel:user u02 is currently used by process 4538
userdel -r u02 #提示userdel:user u02 is currently used by process 4538
kill 4538 #杀死4538进程
删除组
groupdel [选项] [用户名]
删除组之前,应先将组成员移出该组(先删除用户)
注:不能使用 groupdel 命令随意删除组。
此命令仅适用于删除那些 “不是任何用户的初始组(主组)” 的组,
如果需要删除的组是某用户的初始组(主组),则无法使用 groupdel命令成功删除。
sudo groupdel school #切换为管理员用户并且删除组school