Linux常用命令
1. 关机&重启命令:
shutdown -h now --立刻进行关机
shutdown -h 1 --1分钟后会关机
shutdown -r now --现在重新启动计算机
halt --关机,作用和上面一样
reboot --现在重新启动计算机
sync --把内存的数据同步到磁盘
注意:
- 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
- 目前的shutdown、reboot、halt等命令均已经在关机前进行了sync
2.用户登录和注销
- 登录时尽量少用root账号,因为它是系统管理员,最大的权限,避免操作失误,可以利用普通用户登录,登录后再用:su 用户名 命令来切换成系统管理员身份;
- 在提示符下输入logout即可注销用户;
3.添加、删除、查询用户
=============================添加用户==================================
useradd 用户名 --添加用户
passwd 用户名 --指定/修改密码
注意:
- 当创建用户成功后,会自动的创建和用户同名的家目录;
- 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
-
=============================删除用户==================================
userdel 用户名 --删除用户,保留家目录
userdel -r 用户名 --删除用户,不保留家目录。(一般情况建议保留家目录)
=============================查询用户==================================
id 用户名 --查询用户信息
who am i / whoami --查询第一次登录的用户信息(使用su 用户名 指令切换用户后,还是切换前的用户信息)
su 用户名 --切换用户
注意
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要;
- 当需要返回到原来的用户时,使用exit/logout指令
4.用户组
--类似于角色,系统可以对有共性的多个用户进行统一的管理
groupadd 组名 --新增组
groupdel 组名 --删除组
useradd -g 用户组 用户名 --增加用户时直接加上组(如果不加组,默认将用户名设置成组名)
usermod -g 用户组 用户名 --将用户切换到别的组
usermod -d 目录名 用户名 --改变用户登录的初始目录,注意:用户需要拥有进入新目录的权限
5.运行级别
0:关机
1:单用户(找回丢失密码)
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
- 常用运行级别是3和5,也可以指定默认运行级别
==============================切换运行级别================================
init [0123456] --切换不同的运行级别
==============================指定运行级别================================
- 在centos7以前,在/etc/inittab文件中;
- centos7以后,出现以下指令:
multi-user.target:运行级别为3的标志
graphical.target:运行级别为5的标志
systemctl get-default --查看当前系统的运行级别
systemctl set-default multi-user.target/graphical.target --设置系统的默认运行级别
==============================找回root密码================================
centos7以后:
1.首先启动系统,进入开机界面,在界面中按e进入编辑界面
2.将光标移动到Linux16开头所在的行数,在行的后面输入:init=/bin/sh
3.输入完成后,直接按:Ctrl+x 进入单用户模式
4.接着在光标闪烁的位置输入:mount -o remount,rw / 完成后按回车
5.在新的一行输入:passwd,密码重新设置完成后,显示passwd......,说明修改成功
6.接着输入:touch /.autorelabel 完成后按回车
7.继续输入:exec /sbin/init 完成后按回车,等待系统修改密码(时间较长),修改成功后系统会重新启动
6.帮助指令
man ls --查看指令的作用文档,比如查看ls指令的作用
help [命令] --获得shell内置命令的帮助信息
7.文件目录类的常用命令
==============================文件目录的操作(增删改查移)====================================
pwd --显示当前目录的绝对路径
clean --清除当前终端显示的信息
ls --列出目录的内容
ls -a --列出目录内容,包括隐藏文件
ls -l --单列输出目录内容,可以组合使用,并且可以指定具体目录: ls -al /home
cd /etc/... --进入到指定目录
cd ~ || cd : --回到自己的家目录
cd .. --返回到上一级目录
mkdir [目录名] --创建目录
mkdir -p [/目录名/目录名...] --创建多级目录
touch [文件名] --创建一个空文件
rmdir [目录名] --删除目录,必须是空目录
rm -rf [目录名] --删除目录,里面的内容都会被删除(慎用!!!)
解释:-r:递归删除整个文件夹;-f:强制删除不提示
cp [文件名路径] [目标路径] --将文件拷贝至指定目录下
cp -r [源目录路径] [目标路径] --将文件夹中所有的文件拷贝至指定目录
\cp -r [源目录路径] [目标路径] --将文件夹中所有的文件拷贝至指定目录(强制覆盖不提示)
mv oldNameFile newNameFile --如果oldNameFile和newNameFile在同一目录,就是重命名。否则就移动
cat [文件名] --查看文件
cat -n [文件名] --查看文件,显示行号
cat -n [文件名] | more --查看文件,显示行号,并且交给管道命令 | more处理
more [文件名] --是给予vi编辑器的文本过滤器,按空格键,翻页;按回车,多显示一行;按q,立马离开;按Ctrl+f,向下滚动一屏;按Ctrl+b,返回上一屏;按=,输出当前行号;按:f,输出文件名和当前行号;
less [文件名] --跟more指令类似,支持各种终端,按需加载显示内容;按空格||pagedown,向下翻动一页,pageup,向上翻动一页;/字符串:向下查找,再按n向下,N向上;?字符串:向上查找,再按n向下,N向上;q:离开
echo [参数] --输出内容到控制台,例如输出$HOSTNAME: echo $HOSTNAME
head [文件名] --显示文件的开头部分,默认显示前10行
head -n 5 [文件名] --显示前5行
tail [文件名] --显示文件的结尾部分,默认显示后10行
tail -n 5 [文件名] --显示后5行
tail -f [文件名] --实时追踪文件的所有更新
> --输出重定向,例:echo ”hello“ > /home/a.txt 将hello覆盖到a中
>> --追加,例:echo ”tom“ > /home/a.txt 将tom追加到a中
ln -s [源路径] [链接名] --给源文件创建一个软连接,类似于快捷方式
history --查看历史执行的指令,!序号n:执行曾经第n次执行的指令
history 10 --查看最近执行的10条指令
8.时间日期类的常用指令
date --显示当前时间
date "+%Y" --显示当前年份
date "+%m" --显示当前月份
date "+%d" --显示当前是哪天
date "+%Y-%m-%d %H:%M:%S" --显示年月日时分秒
date -s [字符串时间] --设置时间
cal --显示当前日历信息
cal 2020 --显示2020年整年日历
9.搜索查找类的常用指令
find [目录a] -name [名称] --按名称从目录a中查找
find [目录a] -user [名称] --按用户从目录a中查找
find [目录a] -size [大小] --按大小从目录a中查找 +200M、-200M、200M
locate [文件名] --快速定位文件路径,无需遍历整个文件系统,查询速度较快,为了保证查询结果的准确度,管理员必须定期更新locate时刻
注意:第一次执行前,需要使用updatedb创建locate数据库
which [指令] --可以查看某个指令在哪个目录下
grep -n [查找内容] [源文件] --在源文件中查找内容,显示匹配行及行号
grep -i [查找内容] [源文件] --在源文件中查找内容,忽略大小写
cat /home/hello.txt | grep -n "yes" --在hello.txt中查找yes。或者:grep -n "yes" /home/hello.txt
10.压缩和解压类的常用指令
gzip [文件名] --压缩文件,只能压缩为*.gz文件
gunzip [文件名.gz] --解压文件
zip a.zip [文件名] --将文件压缩成a.zip
zip -r a.zip [文件夹路径] --将文件夹压缩成a.zip
unzip a.zip --将a.zip解压到当前目录
unzip -d [目标路径] a.zip --将a.zip解压到目标路径下
tar -zcvf a.tar.gz [内容1 内容2...] --将多个文件打包成a.tar.gz
tar -zxvf a.tar.gz --将a.tar.gz解压到当前目录
tar -zxvf a.tar.gz -C [目标路径] --将a.tar.gz解压到目标目录
tar指令的选项:
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解压.tar文件
11.权限相关
ls -ahl --查看文件的所有者
chown [用户名] [文件名] --修改文件的所有者
chown -R [用户名] [目录名] --修改目录的所有者(目录中的内容都被修改)
chgrp [组名] [文件名] --修改文件所在的组
chgrp -R [组名] [目录名] --修改目录所在的组(目录中的内容都被修改)
chmod --修改文件或目录的权限
u:所在者
g:所在组
o:其他人
a:所有人(u,g,o的总和)
**第一种方式:
chmod u=rwx,g=rx,o=x [文件/目录名] --给文件或目录的所在者赋予读、写、访问/执行权限;所在组赋予读、访问/执行权限;其他用户赋予访问/执行权限 注意:是文件就是执行权,是目录就是访问权
chomd o+w [文件/目录名] --给文件或目录的其他人都赋予写的权限
chmod a-x [文件/目录名] --给文件或目录的所有人都去掉访问/执行的权限
**第二种方式:r=4,w=2,x=1;rwx=4+2+1=7
chmod 751 [文件/目录名] 相当于 chmod u=rwx,g=rx,o=x [文件/目录名]
**注意:对文件夹/目录而言:
x:表示可以进入到该目录,比如cd
r:表示可以ls,将该目录的内容显示
w:表示可以在该目录中删除或者创建文件
12.定时任务
crontab -e --编辑定时任务
输入:*/1 * * * * ls -l /etc/ > /tmp/to.txt --每隔一分钟执行一次ls -l /etc/ > /tmp/to.txt