常用命令的详细部分都分为单独博客撰写:
系统
以 root 身份登录
1 | sudo su |
修改 root 密码
1 | sudo passwd root |
添加 PATH 路径
以下方法(二选一)可以临时在 PATH 目录下加入 ~/opt/bin
目录。
1 | export PATH=$PATH:~/opt/bin # 加在 PATH 的最后 |
加上 export
的赋值,会使得被赋值的变量在其子进程中依旧可见。
但是以上是针对该进程的子进程,如果想要全局生效,需要修改 ~/.bashrc
(对当前用户生效)或 /etc/profile
(对所有用户生效)。记得注销重启。
alias 简化命令
多次输入长语句着实麻烦,而 Linux 就提供了简化命令的方法。
执行下面的语句:
1 | alias la='ls -al --color=auto' |
以后,输入 la
就等价于 ls -al --color=auto
了。
不过注销以后就失效了。
如果想要以后登录都生效,可以把 alias
命令追加到 ~/.bashrc
。
我的 ~/.bashrc
结尾是这样的:
1 | # Alias definitions. |
注意到他推荐把 alias
放到 ~/.bash_aliases
文件夹,其实也可以搞。因此,在 ~/.bashrc
或 ~/.bash_aliases
后追加(没有就创建并追加)以下命令,都是可以的。
1 | alias la='ls -al --color=auto' |
下次启动生效。如想本次启动就生效,输入 source ~/.bashrc
即可。
最后,输入 alias
即可查看所有的语句。
查看发行版名称和版本号
查看 Linux 内核版本
cat /proc/version
uname -a
查看 Linux 系统版本
lsb_release -a
,通用;cat /etc/issue
,也是通用;cat /etc/redhat-release
只适用于 Redhat 系 Linux。
当前文件夹 current directory
当前文件夹是便于写相对路径的。
假设你当前在 /mnt/c/Users/lyh/Documents/Git/lyh543.github.io
文件夹。
当你需要访问文件夹下的 _config.yml
,你就可以写 _config.yml
或 ./_config.yml
(注意一定要加.
,否则会被视为根目录)来代替 /mnt/c/Users/lyh/Documents/Git/lyh543.github.io/_config.yml
。
可以在命令行的$
前看到当前文件夹,也可以使用非常简洁的命令:pwd
。该命令返回当前文件夹。
- 更改当前文件夹使用
cd [DIRECTORY]
- 若想跳到当前文件夹下的
themes
文件夹,可以使用cd themes
- 若想跳到上一级文件夹,可以使用
cd ..
(Windows cmd 中cd
和..
间可以不加空格,但是 Linux Shell 必须要有空格) - 若想跳到上两级文件夹,可以使用
cd ../..
- 若想跳到上两级文件夹下的
theme
文件夹,可以使用cd ../../theme
文件
下载、解压
1 | wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz |
tar
的用法:
1 | tar -cf archive.tar foo bar # Create archive.tar from files foo and bar. |
对于 zip
,可以使用 unzip
。
下载脚本并执行
对于下载脚本内容然后执行的情况,还有更简单的写法:
1 | bash <(curl -s http://exmaple.com/) |
注意 <
左右的空格,左边必须有空格,右边必须没有。
读取文件
1 | ls # 显示文件夹的内容, -sh 显示大小(带大小单位) |
若想修改文档,请使用 vi。
加权限
看代码之前,推荐先理解一下 Linux 文件权限。
1 | mkdir new_dir # 新建文件夹 |
重定向 新建文本文件
在命令行控制台中,使用 echo
可以将字符串输出到屏幕(类似于 C
的 printf
的输出语句)。不过看起来在命令行中,这个并是不常用。
但是加上重定向后,就可以把本来要输出到屏幕的东西输出到某文件。
在任意命令后(其实在前面也可以的)加 > FILE
即可把输出重定向到 FILE
文件。如果 FILE
存在,文件内容会被清空;如果 FILE
存在,会被创建。
删除
rm [FILE]
是 remove 的缩写,用于删除文件/文件夹。
很经典的一个删库跑路语句是rm -rf /*
,我们能从这句话记它的用法。
-r
: recursive, 递归,即递归删除该文件夹以下的文件(夹),删非空文件夹时必加。-f
: force, 强制,即强制删除虽然不知道有什么用[File]
: 写文件、文件夹名就行啦。
查看文件/文件夹/磁盘的大小
中文 | 英文 | 命令 |
---|---|---|
查看磁盘大小 | display filesystem | df -h |
查看目录下的文件大小 | list | ls -hs |
查看目录下的文件夹的大小 | disk usage | du -h --max-depth=1 |
以上的 -h
都是 --human-readable
,不使用这个开关,则会使用一个数字表示大小(单位为 KB
);使用开关后,则会使用 200K
,1.8G
的形式。
注意 du
如不加 --max-depth
参数,会统计完所有的目录。
进程
进程 CPU、内存占用
可以使用 top
工具。
如果想要让进程按 CPU 或内存排序,可以按 X
键使得焦点在某一列(那一列的数字呈亮白色),然后按 <
>
(Shift+,
Shift+.
)以左右移动焦点。
另外,还可以使用类似的 htop
工具。
杀进程
以杀掉 vi
为例:
1 | ps aux | grep vi |
或者使用 killall
:
1 | killall vi |
进程后台运行
使用 nohup
使用 nohup
的话,一行代码就 ok:
1 | # nohup <command> & &>/dev/null |
可能会看到 ignore input
之类的警告,不用管,Ctrl+C
退出前台即可,此时 ssserver
正在后台运行。
使用 pm2
这个要麻烦一点,要从 npm
下载,所以还得先下载 npm
。
1 | apt install npm |
开机自启
在 sudo /etc/rc.local
最后追加命令,然后给权限 sudo chmod a+x /etc/rc.local
即可。
不过貌似 alias
语句无效,可能 alias
是用户级的命令,需要用户登录时执行。
用户登录时执行语句
ssh
一些链接
在使用 Git 和搭建服务器的时候都会用到 ssh,于是笔记也比较零散。
在这里丢几个链接:
- 创建 ssh 密钥并给 Git/服务器使用
- ssh 远程登录服务器
- 修改 ssh 的端口
- Windows 上使用 ssh
查看 ssh 登陆日志
1 | cat /var/log/secure |
也可以根据需要搭配 less 或 tail 等命令进行查看。
网络
查看端口占用
lsof -i:8999
查看网络流量
可以使用第三方的 nethogs
。
防火墙
以下针对 Cent OS 7。
打开/关闭防火墙:
1 | systemctl status firewalld # 查看防火墙打开/关闭状态 |
更改防火墙配置:
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent # 允许 80/TCP 端口通过,无 --permanent 参数则重启失效 |