linux-常用指令
# 查看目录下有什么文件/目录
ls //list 列出目录的文件信息
ls -l或ll //list -list 以"详细信息"查看目录文件
ls -a //list -all 查看目录"全部"(包括隐藏文件)文件
ls -al //list -all list 查看目录"全部"(包括隐藏文件)文件,以"详细信息"显示
ls 目录 //查看指定目录下有什么文件
ls -i //查看文件索引号码
# 进行目录切换
cd dirname //进行目录切换
cd .. //想上级目录切换
cd ~ 或 cd //直接切换到当前用户
# 查看完整的操作位置
pwd
# 用户切换
su - 或 su - root //向root用户切换
exit //退回到原用户
su 用户名 //普通用户切换
多次使用su指令,会造成用户的"叠加":
(su和exit最好配合使用)
lcs--->root--->lcs--->root--->lcs
# 查看当前用户是谁
whoami
# 图形界面与命令界面切换
root用户可以切换
#init 3
#init 5
# 查看一个指令对应的执行程序文件在哪
which 指令
# 目录相关操作
1)创建目录 make directory
mkdir 目录名字
mkdir -p newdir/newdir/newdir //递归方式创建多个连续目录,新的多级目录数目如果大于等于2个,就要使用-p参数
mkdir dir/newdir //不用-p参数
mkdir -p dir/newdir/newdir //使用-p参数
2)移动目录 move
mv dir1 dir2 //把dir1移动到dir2目录下
mv dir1/dir2 dir3 //把dir2移动到dir3目录下
mv dir1/dir2 dir3/dir4 //把dir2移动到dir4目录下
mv dir1/dir2 ./ //把dir2移动到当前目录下
3)改名字
mv dir1 newdir //修改dir1的名字为newdir
mv是"移动"和"改名字"合并的指令
mv dir1 ./newdir //dir1移动到当前目录下,并改名字为newdir
mv dir1/dir2 dir3 //dir2移动到dir3目录下,并改名字为"原名"
mv dir1/dir2 dir3/newdir //dir2移动到dir3目录下,并改名字为newdir
mv dir1/dir2 dir3/dir4 //dir2移动到dir4目录下,并改名字为"原名"
mv dir1/dir2 dir3/dir4/newdir //dir2移动到dir4目录下,并改名字为newdir
4)复制(文件和目录)copy
①文件的复制
cp file1 dir/newfile2 //file1被复制一份到dir目录下,并改名字为newfile2
cp file1 dir //file1被复制一份到dir目录下,并改名字为"原名"
cp dir1/filea dir2/newfile //filea被复制一份到dir目录下,并改名字为newfile
②目录的复制(需要设置-r[recursive递归]参数,无视目录的层次)
cp -r dir1 dir2 //dir1被复制到dir2目录下,并改名字为"原名"
cp -r dir1/dir2 dir3/newdir //dir2被复制到dir3目录下,并改名字为newdir
cp -r dir1/dir2 dir3/dir4 //dir2被复制到dir4目录下,并改名字为"原名"
cp -r dir1/dir2 dir3/dir4/newdir //dir2被复制到dir4目录下,并改名字为newdir
cp -r dir1 ../../newdir //dir1被复制到上两级目录下,并改名字为newdir
\cp sourceDir targetDir //复制时如果有文件名重复,直接覆盖
③删除(文件和目录)remove
rm 文件
rm -r 目录 //-r[recursive递归]递归方式删除目录
rm -rf 文件/目录 //-r force 递归强制方式删除文件,force强制,不需要额外导入提示
# 文件操作
1)查看文件内容
cat filename //打印文件内容到输出终端
more filename //通过敲回车方式逐行查看文件的各个行内容,默认从第一行开始查看,
//不支持回看,q退出查看
less //通过"上下左右"键查看文件的各个部分内容,支持回看,q退出查看
head -n filename //查看文件的前n行内容
tail -n filename //查看文件的最末尾n行内容
wc filename //查看文件的行数cat filename | tail -n +3000 | head -n 1000 //从第3000行开始,显示1000行。即显示3000~3999行
cat filename| head -n 3000 | tail -n +1000 //显示1000行到3000行
cat filename | grep -n '关键字' //按关键字查看并显示行号
cat filename | grep -C 20 '关键字' //显示文件里匹配关键字那行以及上下20行
cat filename | grep -B 20 '关键字' //显示关键字及前20行
cat filename | grep -A 20 '关键字' //显示关键字及后20行
2)创建文件
touch dir1/filename
touch filename
3)给文件追加内容
echo 内容 > 文件名称 //把"内容"以[覆盖写]方式追加给"文件"
echo 内容 >> 文件名称 //把"内容"以[追加]方式写给"文件"
(如果文件不存在会创建文件)
# 用户操作
配置文件:/etc/passwd
1)创建用户 user add
#useradd
#useradd liming //创建liming用户,
同时会创建一个同名的组出来
#useradd -g 组别编号 username //把用户的组别设置好,避免创建同名的组出来
#useradd -g 组编号 -u 用户编号 -d 家目录 username
2)修改用户 user modify
#usermod -g 组编号 -u 用户编号 -d 家目录 -l 新名字 username
(修改家目录时需要手动创建之)
3)删除用户 user delete
#userdel username
#userdel -r username //删除用户同时删除其家目录
4)给用户设置密码,使其登录系统
passwd 用户名
# 组别操作
配置文件:/etc/group
1)创建组 group add
#groupadd music
#groupadd movie
#groupadd php
2)修改组 group modify
#groupmod -g gid -n 新名字 groupname
3)删除组 group delete
#groupdel groupname //组下边如果有用户存在,就禁止删除
# 查看指令可设置的参数
man 指令
# 给文件设置权限
1)字母相对方式设置权限
// 针对一个组别设置权限,其他组别权限没有变化,称为“相对方式”权限设置
chmod指令
chmod u+rwx filename //给filename文件的主人增加“读、写、执行”权限
chmod g-rx filename //给filename文件的同组用户 删除“读、执行”权限
chmod u+/-rwx,g+/-rwx,o+/-rwx filename
说明:
①每个单元“+” “-”只能使用一个
②可以同时给一个组或多个组设置权限,组别之间使用“,”分割
③每个单元的权限可以是“rwx”中的一个或多个
chmod u+w,g-rx,o+rw filename //给filename文件主人增加写权限,同组删除读、执行权限,其他组增加读、写权限
chmod u+w,u-x filename //给filename文件主人“增加写权限”同时“删除执行权限”
chmod +/-rwx filename //无视具体组别,统一给全部的组设置权限
chmod +rw filename //给filename全部用户增加“读、写”权限
2)数字绝对方式设置权限
r读:4 w写:2 x执行:1
0:没有权限
1:执行
2:写
3:写、执行
4:读
5:读、执行
6:读、写
7:读、写、执行
chmod ABC filename //ABC分别代表主人、同组、其他组用户的数字权限
chmod 753 filename //主人读、写、执行;同组读、执行;其他组写、执行
问:字母相对 和 数字绝对 方式权限设置取舍?
答:修改的权限相对“比较少”的时候使用“字母”方式,相反,权限变动“非常多”的时候就使用“数字”方式
# 在文件中查找内容
grep 被搜索内容 文件
grep hello passwd //在passwd文件中搜索hello内容,会把hello所在行的内容都打印到终端显示
grep -o '关键字' filename | wc -l //统计关键字数量
# 计算文件占据磁盘空间大小
du -h 文件(目录)
# 文件查找
find 查找目录 选项 选项值 选项 选项值 ...
1)-name选项 根据名字进行查找
find / -name passwd //"递归遍历"/根目录及其内部深层目录,寻找名称等于“passwd”的文件
find / -name "pas*"[模糊查找] //在系统全部目录,模糊查找一个名字是“pas”开始的文件
find / -name "er" //文件名字有出现“er”字样即可,不要位置
2)限制查找的目录层次 -maxdepth -mindepth
-maxdepth 限制查找的最深目录
-mindepth 限制查找的最浅目录
find / -maxdepth 4 -name passwd
find / -maxdepth 4 -mindepth 3 -name passwd
3)根据大小为条件进行文件查找
-size +/-数字
+号表示大小大于某个范围
-号表示大小小于某个范围
大小单位:
-size 5 //单位是“512字节” 5512字节
-size 10c //单位是“字节” 10字节
-size 3k //单位是“千字节” 31024字节
-size 6M //单位是“1024*千字节” 6M兆字节
find ./ -size 14c //在当前目录查找大小等于14千字节的文件
find / -size +50M //在系统全部目录里边查找大小大于50M的文件
# vim
搜索:
/+关键字 ,回车即可。此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置,按N键查找关键字上一个位置
?+关键字,回车即可。此为从文档挡圈位置向上查找关键字,按n键向上查找关键字
搜索带空格关键字,在空格前加转义字符\
多行注释:
首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
在行首使用上下键选择需要注释的多行;
按下键盘(大写)“I”键,进入插入模式;
然后输入注释符(“//”、“#”等);
最后按下“Esc”键。
注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的
# java程序启动
- 不要使用 “nohup” 命令;使用 “nohup” 会记大量日志在 “nohup.out”,这个日志文件会一直累加,直到硬盘挤爆,这个文件一般不好找;
- 如果非要加“nohup”,在最后加上“ >/dev/null 2>&1”,不记录 “nohup.out”日志;
- 程序启动的时候,不需要进入到jar包目录再对jar包启动,使用绝对路径,方便其他人通过历史记录知道jar的位置;
- 如“java -jar /home/ms/eureka/cloud-eureka-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &”;
# 磁盘操作
--查看大于某个容量的文件
find / -size +100M
--查看磁盘空间大小
df -h
--查看某一个目录中子目录的大小
du -lhd 1
--查看某一个文件的大小
ll -h /usr/local/nginx-1.16.0/logs/crm.access.log
2
3
4
5
6
7
8
9
10
11
# wget
发送post请求:--post-data设置请求body
携带query参数:url需加上双引号
wget --header="Authorization: XXX" --post-data='{}' "https://xxx.com/xxx?a=b&c=d"
参考:
http://www.manongjc.com/detail/25-cwpauuilypravwr.html (opens new window)