Abstract:一些超级实用的Linux技巧.比如管道,权限,进程等命令.从b站学习来的
Keywords:Linux学习
参考文献
[1] 基于ubuntu的linux学习教程,由入门到精通_哔哩哔哩_bilibili
[2] linux系统全套学习课程-Ubuntu_哔哩哔哩_bilibili
Linux重定向(输入输出重定向)详解 (biancheng.net)
值得收藏-史上最全Linux ps命令详解-阿里云开发者社区 (aliyun.com)
linux 指定ps comm输出长度,ps命令查看进程指定项目信息、用户名过长显示UID_三月小公举的博客-CSDN博客
文件目录结构
ubuntu没有关于盘符的概念,即没有cde硬盘.win是单用户操作系统,linux是多用户操作系统.
home中存放的是用户
根目录 就是/
etc 系统配置文件
bin 可执行的程序,类似于exe文件集合
/bin | 可执行文件 |
---|---|
/sbin | system bin,管理系统的 |
/usr/bin | 后期安装的软件 |
/usr/sbin | 超级用户的管理程序 |
最好把命令和对应英文联系起来
list,print work directory,clear,remove,touch,change directory.
新建文件 touch
帮助信息 man
空格,f | 下一页 |
---|---|
b | 上一页 |
/word | 搜索word字符串 |
q | 退出 |
enter | 下一行 |
cat,more,less
就和help与man一样,一个分屏一个不分屏.
还是less好用,谁用谁知道
1 | cat xxx | less |
grep
搜索文件中的文本,但是我直接用vim不行吗?
^wrod,word$:行首匹配,行尾匹配.
head
1 | head -n 5 |
和grep一样的使用,显示起来随自己.也不错
echo 与重定向
很少单独使用,和重定向配合,>,>>,输入和追加.
输入很难理解.以下#是在root下的意思,普通用户是$
1 | [root@localhost ~]# cat /etc/passwd |
1 | [root@localhost ~]# cat a.txt |
1 | [root@localhost ~]# cat << 0 |
管道
1 | ls -lh | more #其实less挺好用的 |
端口
web服务器 端口80;我们访问百度,不用加80也可以直接找到百度的web服务器.
注意我们找到的是百度的web服务器,而不是百度那台机器.
只有加上端口才能连上web服务器软件,才能享有web服务.
ssh
ssh在linux是开始就有的.在win中要自己安装,或者安装xshell,putty客户端来模拟
1 | ssh [-p port] user@remote |
1 | ssh-keygen |
传输文件
1 | scp 文件 user@remote:目录 |
.ssh/config
1 | Host 别名 HostName ip地址 User 用户名 Port 22#现在可以用ssh 别名来连接电脑了#现在也可以用scp 别名来传输文件了 |
用户权限相关命令
read:r 4
write:w 2
excute:x 1
read | r | 4 |
---|---|---|
write | w | 2 |
excute | x | 1 |
1. 组概念
简化我们对用户权限的设置,可以一次设置一个组
1 | -rw-rw-r-- s2020020922 studrwxrwxr-x s2020020922 stu |
1 标记为文件还是目录
剩下的每三个一组,分三组;第一组是用户s2020020922;第二组是组对应权限,stu;第三组是其他用户的权限
2. 硬链接数
可以到达这个文件或者目录的道路.
其实和tree命令有关系的.
3. 修改文件权限
1 | chmod -x test #就不能cd进testchmod +x test #加上可执行权限 |
4. chmod 数字化
read 4; write 2; excute 1
R 目录递归修改权限
1 | chmod -R 755 文件名或目录名 |
超级用户root与普通用户
root是添加用户,安装软件等.
1 | su #substitute usersudo #root身份执行,要输入密码,5分钟期限. |
创建用户/设置密码/删除用户
1 | useradd -m -g 组名 #创建用户,m有奇用passwd 用户名 #修改密码userdel -r 用户名 |
421服务器是在home421中创建的所有用户和组.
查看用户/设置用户
1 | /etc/group 存放组信息#/etc/passwd 存放用户信息id 用户名 #查看用户信息who #查看当前有谁用服务器whomi#查看自己是谁 |
以自身为例子
1 | 用户id=1015(s2020020922) 组id=1001(stu) 组=1001(stu) |
1 | cat -n /etc/passwd |grep s2020020922#64 s2020020922:x:1015:1001::/home/s2020020922:/bin/bash# x:有密码且加密; |
home421可以通过sudo创建新用户,我的不在sudo ers组中就不能有这种操作.
1 | cat -n /etc/group | grep home421#5 adm:x:4:syslog,home421#18 cdrom:x:24:home421#21 sudo:x:27:home421#23 dip:x:30:home421#35 plugdev:x:46:home421#59 lpadmin:x:120:home421#70 lxd:x:131:home421#71 home421:x:1000:#72 sambashare:x:132:home421#人家home421用户可以使用sudo和很多,即有很多附加组. |
1. 添加附加组usermod
不写了,用到就百度就好
2. 用户使用shell设置避免乱码如^A
shell就是命令行窗口
1 | s2020020922@home421:~$#这个是/bin/bash$#这个是dash.在xp下边输入会乱码,比如^H,^A. |
如何避免以上情况
1 | usermod -s /bin/bash 用户名 |
查看命令which,命令文件所在位置
说明很多命令的可执行文件都在bin目录下.或者sbin
切换用户 su
1 | su -用户名#切换用户,-可切换至用户的目录,否则保持不变#不加用户名就是到root,非常不安全.exit #退出. |
系统信息相关命令:进程等
命令 | 作用 |
---|---|
date | 系统时间 |
cal | 日历 |
df -h | disk free 磁盘剩余空间 |
du -h | disk usage 显示目录下的文件大小 |
-h | 人性化显示文件大小 |
ps aux | process status 查看进程的详细状态 |
a | 显示终端所有进程,包括其他用户进程 |
u | 进程详细状态;感觉是显示用户的信息 |
x | 显示没有控制终端的进程,更多进程了. |
top | 动态显示运行中的进程并且排序,q退出.不按q永远不停 |
kill -9 pid | 强制终止;不能中止系统的命令 |
经过查看发现,ps ef和au差不多.
发现ps -w 可以拓宽显示长度,但是好像要-wwww才行.当然这样也是不能显示全2020020922这类的用户名.为啥?往下看
对了,-w是有用的,因为grep查找的就是在终端看到的,如果因为隐藏了而在终端不显示,自然用grep也查不到
1. ps命令选项 之多种风格
这篇文章是大佬.
1 | BSD风格语法,必须不能以中横线开头;# ps uSYSV风格语法,必须仅一个中横线开头;# ps -lGNU风格语法,必须以两个中横线开头; # ps --pid l |
ps命令中会有这三种风格,根据ps的容错机制,三种风格部分命令可以混搭.
比如,ps -axu,一般先以sysv解析,不成功,然后转换成bsd风格,也不行,反正就是根据这个命令的内部机制就是不行,也可能下个版本就行了.总之,明白这个意思就好
GNU风格的选项都是带参数值的,如–sid 1
2. 查看进程的名字
没错就是为了看看哪个小可爱再用服务器
1 | ps -q pid -o user #不知道为啥必须用小写,大写不行.#USER#s2020020911其实ps -p pid -o user #也可以. |
为了这个查看进程名字费了很多事,比如
这个哥们用了这条命令
1 | ps -o ruser=userForLongName -e -o pid,ppid,c,stime,tty,time,cmd#其实 user=fiodsaaaaafjdsoaaaaaaaa 也就行了#或者ps -o pid,user 把user放最后就不会显示不全了 |
我以为userforlongname是个啥参数,其实就是修改了列的名字,以前的列叫USER,对应的用户名s2020020922过长,就是显示不全,把USER改成userforlongname,就可以显示全用户名了
linux 指定ps comm输出长度,ps命令查看进程指定项目信息、用户名过长显示UID_三月小公举的博客-CSDN博客
查找文件find,树文件结构tree
1 | find [path] -name "*.py" #这个通配符不适合配合grep,因为.才是匹配任何字符 |
打包压缩 tar.gz
tar只是打包,不压缩.
1 | 打包文件 |
gzip 压缩
tar 打包, gz 压缩
其扩展名为 xxx.tar.gz
1 | 打包 压缩 |
apt-get 软件安装卸载更新
每个apt前都有sudo;
1 | 安装软件 |
配置软件源,不全
外国的主服务器就是软件源. 但是太慢了
国内有镜像源,如阿里镜像,清华镜像.
Linux服务器资源在本地可视化
1 Linux在win上的可视化(不推荐)
1 和xmanager配合使用
gedit :跟创建txt一样
eye of ghome:查看图片
2 使用网页查看,无法修改
这个真的强
1 | python -m http.server #默认端口号8000,可自行设置 |