本文是我常用到的命令,并不系统或全面,仅做记录以便查找
常用网站
- Oracle下载java: https://www.oracle.com/java/technologies/downloads/
装机必备软件:
通用
软件 | 软件 | 软件 | 软件 | 软件 | 软件 |
---|---|---|---|---|---|
Anoconda(python3) | java(jdk11+) | aptitude(优秀的软件包管理器) | mysql | git | wget |
vim | tar | less(Termux支持vim触摸移动光标) | nano | ffmpeg | clang |
nodejs | zip | openssl-tool | openssh | curl | net-tools |
unzip | unrar | nmap | nginx |
Termux
软件 | 软件 | 软件 | 软件 | 软件 | 软件 |
---|---|---|---|---|---|
less(Termux支持vim触摸移动光标) | openssl-tool | openssh |
常用命令:
- 实时读取文件(文件变化时会刷新滚动):
tail -F 文件名
或tail -F -n 3 文件名
(从倒数第三行开始实时读取文件) - linux创建用户并授予sudo权限
- 新建用户
root@ubuntu:~# adduser hadoop root@ubuntu:~# passwd hadoop #为hadoop用户设置密码
- 为hadoop用户添加sudo权限
root@ubuntu:~# sudo gedit /etc/sudoers
- 把root那行复制后改成hadoop,hadoop就有了sudo权限,需要sudo密码则为ALL,不需要则NOPASSWD:ALL。
root ALL=(ALL) NOPASSWD:ALL hadoop ALL=(ALL:ALL) ALL
- 切换用户:
- 切换用户的命令为
su username
; - 从普通用户切换到root用户:
sudo su
; - 退回到原来用户(切换用户前的用户): 在终端输入
exit
或logout
或使用快捷方式ctrl+d
;
- 切换用户的命令为
- 使用apt安装.deb文件/.deb包:
sudo apt install ./mysql-apt-config_0.8.20-1_all.deb
- 查看端口占用:
netstat -nap | grep 80
或netstat -tunlp|grep 80
最后一列就是占用的程序PID,使用kill -9 PID杀死进程,或使用sudo lsof -i:80查询
- 查看系统信息:
- 查看系统内核信息:
uname -a
- 查看系统版本信息:
cat /proc/version
- 查看系统发行版信息:
cat /etc/issue
或cat /etc/redhat-release
- 查看系统内核信息:
- 搜索apt包:
apt-cache search jdk
- 干净卸载:
apt-get --purge remove software_name
,或apt purge software_name
- 将内容覆盖写入文件:
echo "hello,world" > test.txt
- 将内容追加写入文件:
echo "hello,world2" >> test.txt
- 压缩/解压缩
- 压缩目录为zip:
-
将指定目录/tmp压缩成test.zip文件:
zip -r test.zip tmb/
-
压缩目录为zip命令: zip [参数] [打包后的文件名] [打包的目录路径]
参数 说明 -a 将文件转成ASCII模式 -F 尝试修复损坏的压缩文件 -h 显示帮助界面 -m 将文件压缩之后,删除源文件 -n 特定字符,不压缩具有特定字尾字符串的文件 -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间 -q 安静模式,在压缩的时候不显示指令的执行过程 -r 将指定的目录下的所有子目录以及文件一起处理 -S 包含系统文件和隐含文件(S是大写)
-
- 解压缩zip中的文件:
-
解压缩到当前目录:
unzip pack.zip
-
解压缩到指定目录(如果之前存在同名文件则覆盖):
unzip -o pack.zip -d tmp/
-
压缩目录为zip命令: zip [参数] [打包后的文件名] [打包的目录路径]
参数 说明 -n 解压缩时不要覆盖原有的文件; -o 不必先询问用户,unzip执行后覆盖原有的文件; -P [密码]使用zip的密码选项; -q 执行时不显示任何信息; -d [目录]指定文件解压缩后所要存储的目录;
-
- zip:
- 压缩: zip -r newfilename.zip filename
- 解压缩: unzip filename.zip
- 指定解压缩的路径: unzip filename.zip -d newdir
- tar/tar.gz格式
- 压缩方式: tar -zcvf newfilename.tar.gz filename
- 解压缩到当前目录: tar -zxvf filename.tar.gz
- 解压缩到指定目录: tar -zxvf filename.tar.gz -C /root/xxx
- 压缩目录为zip:
- 使用命令行查看SQLite3文件:
sudo apt install sqlite3
Do you want to continue? [Y/n]: 'Y'
sqlite3 db_file_name.sqlite3
.mode column
.headers on
select * from website_statistics;
- Nginx/nginx:
- 测试Nginx配置文件:
nginx -t
- 指定配置文件启动Nginx:
nginx -c /usr/local/nginx/conf/nginx.conf
- 修改配置文件后重装载Nginx:
nginx -s reload
- 重启Nginx服务:
service nginx restart
- 正常停止或关闭Nginx:
nginx -s quit
- 快速停止或关闭Nginx:
nginx -s stop
- 测试Nginx配置文件:
- 查看MySQL状态,看是否已经启动:
ps -e |grep mysqld
或service mysqld status
- log文件太大分割/文本文件分割:
- 指定分割的行数:
split -l 300 tomcat.log prefix(分割的新文件前缀)
- 指定后的文件大小:
split -b 10m server.log prefix(分割的新文件前缀)
- 指定分割的行数:
- 小文本文件合并:
cat small_files* > large_file
- 查看某个端口是否开放:
lsof -i:80
如果显示信息说明已开放 - 后台运行的2种方法
- 方法1: nohup 命令
- 方法2: 在运行命令时使用
Ctrl + z
暂停命令的运行,然后使用jobs
命令查看当前正在执行(刚刚暂停)的命令的状态,第一列就是的值就是命令的序号,然后bg %1
即可让1号在后台执行(),即可让刚刚暂停的命令继续在后台运行。比如运行的命令序号是1,执行bg %1
即可让1号在后台执行(bg %
好像可以让所有暂停的命令在后台运行)
- 在两个Linux之间传输文件
- 命令格式:
scp [参数] [原路径] [目标路径]
- 从远程拉取数据到本地(文件或文件夹均可):
scp -r <远程的ip>:<要拉取的文件或目录路径> <要保存到本地的目录/路径>
- 从本地推送数据到远程(文件或文件夹均可):
scp -r <要推送的本地的目录/路径> fucaijin:<要保存的文件或目录路径>
- 从远程拉取数据到本地demo:
scp -r 192.168.0.152:/home/fucaijin/script_task/get_english_fiction/fiction.tar.gz /home/fucaijin/fiction
,拉取完成后本地路径就有了:/home/fucaijin/fiction/fiction.tar.gz
- 可以使用后台运行的第二种方法,让命令在后台执行
- 命令格式:
- 在本地和远程Linux之间互传文件:
- lrzsz:
apt install lrzsz
- 上传文件命令: rz
- 下载文件命令: sz
- lrzsz:
- python相关:
- 安装pip:
sudo apt-get install python3-pip
- 修改pip源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- 安装pip:
- 查看文件:
- 查看文件所有内容:
cat <文件名>
- 查看文件末尾指定数量的行/查看文件末尾若干行/查看文件后n行:
tail -n <行数> <文件名>
- 查看文件首处指定数量的行/查看文件前若干行/查看文件前n行:
head -n <行数> <文件名>
- 查看文件所有内容:
- 重启:
sudo reboot
- 关机:
halt
- 查看文件数量
- 查看当前目录内的的文件数量(不含子孙目录的文件):
ls -l|grep "^-"| wc -l
- 查看当前目录下的文件数量(含子孙目录的文件,R代表子目录) :
ls -lR | grep "^-"| wc -l
或find ./ -type f | wc -l
- 查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如果需要查看子目录的,加上R:
ls -l | grep "^d"| wc -l
- 查看当前目录下的文件数量(含子孙目录的文件,R代表子目录)
ls -lR | grep "^d"| wc -l
- 查看当前目录内的的文件数量(不含子孙目录的文件):
- 访问网络
curl localhost:8000
或curl localhost
- 下载文件或下载访问的网页
wget localhost:8000
或wget localhost
将软件注册为系统Systemctl启动项
在/etc/systemd/system目录下创建文件"XXX.service" (XXX是代表未来命令名字),并授权执行文件chmod +x或777 XXX.service
[Unit]
Description=Clash Study(关于此服务的描述)
After=network.target
[Service]
Type=simple
User=root(如果指定了用户,则只有该用户才能启动)
ExecStart=/opt/clash/clash(程序运行的路径)
[Install]
WantedBy=multi-user.target
重新加载 systemd 系统服务管理器的配置文件: sudo systemctl daemon-reload
测试启动服务: sudo systemctl start 服务名
查看服务状态: sudo systemctl status 服务名
,如果Active值为active(running)则说明服务为运行状态,如果是inactive(dead)说明未运行
停止服务: sudo systemctl stop 服务名
设置开启或关闭开机自启动: sudo systemctl enable 服务名
或sudo systemctl disable 服务名
重启服务:systemctl restart 服务名
查看服务是否已启动:systemctl is-active 服务名
查看服务的状态:systemctl status 服务名
查看服务是否为开机自启动:systemctl is-enabled 服务名
只重启正在运行中的服务systemctl try-restart 服务名
显示所有的服务状态,空格翻页 q退出systemctl list-units --type service --all
查看启动成功的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
查看所有服务的状态,空格翻页 q退出:systemctl list-unit-files --type service
Debian
账户
- 开启root用户: 首次使用root需要设置密码,在pi用户下执行
sudo passwd root
即可设置root密码,然后sudo vi /etc/ssh/sshd_config
将#PermitRootLogin …
一行修改为PermitRootLogin yes
并保存,设置完成后需要执行sudo reboot
重启方可生效并能正常使用root账户
安装jdk11
- 检查是否安装了jdk:
java -version
- 搜索jdk:
apt-cache search openjdk
- 安装jdk:
apt install openjdk-11-jdk
或者apt install default-jdk
- 安装完成
安装MySQL
转跳我的安装过程: https://fucaijin.cn/archives/在debian中安装mysql
参考:
- https://blog.csdn.net/weixin_34209060/article/details/113141283
- https://www.linuxidc.com/Linux/2019-08/159877.htm
安装Nginx
- 搜索apt包:
apt-cache search nginx
apt install nginx-full
- 测试nginx是否已经安装成功几种方法:
- 方法1: root登录然后输入命令
ps -C nginx -o pid
,如果pid有值,则说明安装成功,否则失败 - 方法2:
ps -ef | grep nginx
- 方法3: 装上就会存在以下目录:
cd /usr/local/nginx/sbin/nginx
- 方法1: root登录然后输入命令
Termux
使用电脑连接手机Termux
学习来源: https://www.jianshu.com/p/2e6c8152a2ba
- 在非root用户下安装openssh:
apt install openssh
- 在电脑生成ssh公钥,在任意位置打开终端输入命令:
ssh-keygen -t rsa
,此时会在电脑的C:\Users\Administrator.ssh或C:\Users\用户.ssh文件夹中发现两个刚生成的文件id_rsa、id_rsa.pub - 将公钥文件id_rsa.pub传输到手机上的这个位置(需要root才能打开/data/data路径): /data/data/com.termux/files/home/.ssh/id_rsa.pub
- 将公钥内容添加到ssh的授权文件里:
cat /data/data/com.termux/files/home/.ssh/id_rsa.pub >> authorized_keys
- Termux执行: sshd开启ssh服务器
- 电脑执行:
ssh 用户名@ip -p 8022
,比如ssh root@192.168.123.81 -p 8022
(Termux的openssh就是用的8022) - 如果连接上了就到此结束。如果连接不上,可能是权限的问题,再接着往下操作。
- Termux执行:
whoami
,得到当前用户名比如是u0_a123 - Termux执行查看~路径下的.ssh文件的权限:
cd ~ && ls -la
在home文件夹下执行ls -ls,输出类似如下图:
如果.ssh的用户是第8步执行输出的用户名,且权限至少为rwx------(700)才正确,否则修改权限输入命令修改权限chmod 700 .ssh
或sudo chmod 700 .ssh
或 - 然后再次从第5步开始操作即可
Respberry
- 默认账号 密码: pi raspberry
- root用户: 参考上面写的Debian.账号.开启root用户
Q.E.D.