# 超级管理员
$ 普通用户
~ 用户主目录,默认情况是进入用户的主目录
和用户相关的命令
sudo 命令 - 用超级管理员身份执行某个命令
其他用户想要以超级管理员的身份执行某个命令,必须先以超级管理员身份,找到etc下面的sudoers文件,修改文件内容:用户名 ALL=(ALL) ALL
who am i - 查看自己的信息
w - 查看所有用户信息
adduser 用户名 - 创建新用户
passwd 用户名 - 修改对应用户名的密码,如果不添加用户名,默认修改root的密码
su 用户名 - switch user 切换用户
用其他用户的身份登录:
新建一个会话,主机地址不变,用户名和密码用刚才建立的新用户的用户名和密码
和文件操作相关的命令
touch 文件名 - 建立新文件 如果文件名是以点开头 表示创建的是隐藏文件
rm 文件名 - 删除文件 会被询问是否删除,y确认删除,其他任意字符都是不删除; 如果不想被询问,使用下面的命令:rm -f 文件名
cat 文件名 - concatenate 查看文件的内容
(cp -v 要拷贝的文件 目的的位置/重命名)- copy 拷贝文件 如cp -v hello.txt abc/shit.txt 复制hello.txt 文件到abc里,并重命名为shit.txt (-v可以显示拷贝的详细过程)如果要拷贝一个文件包里的所有内容,如把xyz包里所有内容拷贝到abc包里,使用下面的命令:cp -v xyz/* abc
mv - move 剪切文件 mv hello.txt abc/shit.txt 把hello.txt 文件剪切到abc文件夹中,并重命名为shit.txt
grep - 查找字符串
grep '字符串' 文件 路径 -n -R 在路径中查找文件的某个内容,-n返回行号,-R递归
head 数字 - 头部 查看前面的内容
tail 数字 - 尾部 查看最后的内容
sort - 排序 不改变原文件
uniq - unique去重
diff 文件 文件 - 比较两个文件有什么不同,输出不相同的内容,如果两个文件内容一样,不会有任何反应
file 文件名 - 查看文件属性
wc 文件名 - word count 统计文件内容的行数(-l)、单词数(-w)、字符数(-c)
和目录相关的命令
pwd - print working directory 查看打印当前的工作位置/路径
cd - change directory 改变路径 cd . 当前目录 cd .. 上级目录
mkdir 文件夹名 - 创建文件夹
rmdir 文件夹名 - 删除文件夹,只能删除空文件夹,如果要删除有内容的文件夹,使用下面的命令:( rm -rf 文件夹名)或(rm -r 文件夹名),rm -rf 文件夹名 这个命令要慎重使用
ls - list directory contens 查看文件和文件夹(不包含隐藏文件)
( ls -a ) 查看所有(包括隐藏文件)
( ls -l )( 别名:ll)用长格式显示文件和文件夹信息
(ls - la) 长格式显示所有文件和文件夹信息
显示信息:
drwx ------文件夹
-rw-r--r-- 普通文件
lrw-r--r-- 软链接
(r - red 可读 w - write 可写 x - execute 可执行,r--表示一组,第一组表示当前用户u,第二组表示同组用户g,第三组表示其他用户o)
修改用户对文件的权限
chmod u+x 文件名 - u+给当前用户加上x执行权限,u-x给当前用户删除x执行权限,g+x给同组用户加上x执行全选,o+x给其他用户加上x执行权限
chmod 二进制编码 文件名,rwx 777 所有人可读可写可执行
chown 用户名 文件名 修改文件的拥有着
查看命令提示信息的命令
man 命令 -manual 查看命令手册 如man cat - 查看cat命令的参考手册 查看完后按Q返回
info 命令 - 查看命令用法,更加详细
命令 --help - 获得命令的提示信息,比较简略
whatis 命令 - 只擦看命令信息的第一行
想要一页一页的查看内容,可以在命令后面加上(| less)或(| more),空格翻页,Q退出
压缩和归档
gzip 文件名 - 压缩文件,文件后缀会加上gz
gunzip 文件名 - 解压缩文件,文件类型为gz
xz -d 文件名 - 解压缩文件,文件类型为xz
tar - together archive 归档,把多个文件合成一个文件
tar -cvf 归档名 要归档的文件名 如tar -cvf teat.tar *.html *.txt 把本路径下的所有html文件和txt文件都归档在tear.tar里面
tar -xvf 归档名 如 tar -xvf teat.tar 把tear.tar 解归档
查看环境
which - 查看环境 如which python 查看是否有python环境 如果有会返回python所在位置,结果:/usr/bin/python usr是用户安装程序的地方,相当于windows下面的program,第一个/相当于windows中我的电脑
whereis python - 路径中有python的都会被找到
运行程序
进入某个环境 如要进入python - python
退出python环境 - quit() 或CTRL + D
要运行python程序的命令 python 文件名,为了让命令更简单,可以使用下面这种方法:
在python文件顶部加上 #!/usr/bin/python 注意:#后面不要加空格
Xshell命令 ./文件名 如./cal.py 表示执行cal.py这个程序
查看时间的命令
date - 查看系统时间
cal - 查看本月日历
cal 年份 - 查看全年日历
录制脚本
script 文件名- 开始录制脚本,如果不添加文件名,默认名称为typescript.txt
exit - 结束录制脚本,用ls可以查看自动生成的一个脚本文件。
用户之间发送消息
用于登陆同一个服务器的多个用户之间发送消息
write 用户名 - 给某一个指定用户发送消息
wall 给其他所有用户发送警告消息,自己也会收到
mesg n - 不接收其他用户的消息
mesg y - 接收其他用户的消息
和服务相关的命令
systemctl start 服务 启动服务
systemctl stop 服务 停止服务
systemctl status 服务 查看所有服务的状态
服务-cmd --state 查看某个服务的状态
systemctl enable 服务名 - 自动启用服务
systemctl diasble 服务名 - 关闭自动启用服务
给服务器开端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
(permanebt表示永久有效)
和网络相关的命令:
ifconfig - 查看网络配置
查询结果:
eth0 - eth以太网卡
lo - 本机
ip - 替代ifconfig的命令,里面包含更多的信息
ip address - 查看地址
wget 链接 - 获取网络资源
ping www.baidu.com - 访问某个网页,
查询结果:
ttl - time to live该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,如果ttl=0时,还没有找到接收的目的地,路由器会自动丢弃这个IP包,不会继续寻找接收路径。
time - 往返时间
ctrl+c停止
netstat -nap 查询网络服务和端口,n - 显示形式,a - 查询全部,p - 显示进程编号
ssh root@阿里云地址 - 从自己的阿里云连接到别人的阿里云
exit - 退出连接
scp - 网络拷贝
从本地复制到远程
scp 本地路径 远程服务器的用户名@远程服务器的公网地址:服务器路径 /重命名(重命名可有可无)
从远程拷贝到本地
scp 远程服务器的用户名@远程服务器的公网地址:服务器路径 本地路径
sftp - 网络传输文件,get - 下载,put - 上传
其他命令
ps - process state 进程状态
ps -aux 查看当前运行进程
yum list install 列出所有安装的软件,可以加管道进行定向查找
yum remove 软件名 - 删除某个软件
wget 链接 -O 重命名 - 从网络上下载内容,此处用的网络是服务器的网络
history - 显示历史敲过的所有命令,按上下箭头也可以调历史命令
!编号 - 若编号为2,则是把上面显示的历史命令中编号为2的命令再执行一次
echo - 回声命令,在交互终端返回echo后面的内容,echo hello,world!>hello.txt
'>' 表示输出重定向,内容不在终端输出,被写入到hello.txt文件中。
'2>'表示错误重定向,如果执行错误,就会把错误写进后面的文件,正确内容还是输出在控制台
top - 类似于windows下面的任务管理器,查看系统运行状态
kill -9 进程ID - 关闭某个进程,-9 表示强制关闭
ln 要链接的文件名 新的文件名 - 创建symlink(硬链接),相当于一个文件的链接,此时文件会增加一个链接,相当于不占空间的备份文件
ln -s 要链接的文件名 新的文件名 - 软链接,相当于快捷方式
和任务相关的命令
redis-server myredis.conf>redis.log & 启动任务
& - 把任务放后台运行
fg %1 - 把后台任务放前台运行
'>'重定向
AWK
ps -aux | grep mysql | awk '{print $2}' | xargs kill -9 查找mysql进程 并且杀死这个进程 $ 表示查找到的内容,这些内容以空格符进行分隔,2表示第二个字符串,xargs表示把前面获取的内容作为后面语句的参数
crontab表达式
crontab -a 给当前用户编辑计划任务
crontab -l 查看已有的计划任务
* * * * *(分,时,日,月,星期) - 规定执行的时间
推荐学习资源:
http://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html