设置root用户
sudo passwd root
输入密码,并确认密码
su root
切换到root用户
添加用户
sudo adduser username
根据提示设置密码,最后ls /home
查看一下,如果显示你添加的用户名,则代表用户创建成功。
赋予用户sudo权限
切换到root用户
为sudoers文件添加写权限:使用命令chmod u+w /etc/sudoers
输入vi /etc/sudoers
找到root ALL=(ALL) ALL
在下面添加myname ALL=(ALL) ALL
撤销文件的写权限chmod u-w /etc/sudoers
开放文件夹的所有权限 chmod 777 -R dir
退出vi的方法
按i
或o
进入编辑模式,编辑结束,按esc
进入命令模式,然后输入退出命令:
:wq 保存文件并退出vi
:q 不保存文件并退出vi
:q! 不保存修改强制退出vi
vi复制/剪切/粘贴
- 复制yank(拉起),常用命令如下:
yy
复制整行(nyy或者yny ,复制n行)
y^
复制当前到行头的内容;
y$
复制当前到行尾的内容;
yw
复制一个word(nyw或者ynw,复制n个word) - 剪切delete,常用命令如下:
dd
剪切整行
d^
剪切至行首
d$
剪切至行尾
dw
剪切一个word - 粘贴put,常用命令如下:
p
小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
P
大写P代表贴至游标前(上)
查看文件前/后几行
head -n 10 nohup.out
tail -n 10 nohup.out
tail -n +1000 nohup.out #从第1000行开始显示,显示1000行以后的
cat nohup.txt | tail -n +1000 | head -n 500 #从第1000行开始显示500行
lsb_release -a
查看linux系统版本
dpkg --print-architecture
查看系统架构
find path -name '关键字' -type d/f
查找目录或文件
du -sh
查看当前目录总共占的容量,而不单独列出各子项占用的容量
du -sh *
查看文件的使用空间大小
df -hl
查看磁盘的使用情况
du -hl --max-depth=1
查看当前目录下一级子文件和子目录占用的磁盘容量
ls | wc -w
查看当前文件夹下有多少个子文件
ls -a
列出隐藏文件
ls -l dirname
查看文件夹权限
groups
查看当前用户所属的组
chown -R username:groupname dirname
更改文件或文件夹拥有者
ln -s [源文件] [目的文件]
为源文件创建软链接
cp [options] source dest
复制文件
mv /tomcat/tomcat.zip /usr/local
剪切文件
du -sh .
查看当前文件夹占用空间大小
du -sh *
查看当前文件夹下各个文件占用大小
sudo chmod a+x user
访问user(其他用户)的文件夹
sudo du -h --max-depth=1
可显示隐藏文件大小
对文件内容进行查找
- 没有打开文件就用
cat 文件名 | grep 关键字
- 用vi打开文件后,直接在命令模式下输入
/关键字
-
nG
跳到文件第n行 -
gg
跳到文件首行 -
wc [options] file
:-w
统计字数,-l
统计行数
source filepath
或 . filepath
使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source /etc/profile。
export train_cmd=run.pl
export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
set -e
如果任何语句的执行结果不是0(表示没有错误)则应该退出shell。一般你写的每个脚本都应该在文件开头加上set -e,防止错误像滚雪球般变大导致致命错误。
多行注释
<<COMMENT
....
COMMENT
查找文件命令
-
which [可执行文件名称]
在 PATH 变量指定的路径中,搜索某个系统命令的位置。一般用于查找命令/可执行文件所在路径。 -
whereis [-bmsu] [文件或者目录名称]
用于程序名的搜索,返回与名称匹配的二进制文件,源文件,帮助文件。 -
locate [文件或者目录名称]
查找任意文件,是在数据库里查找,数据库大至每天更新一次,查之前可以执行updatedb
命令手动更新一下数据库。 -
find [路径] [条件]
find是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用其他三个。
解压/压缩文件
解压文件:
tar -xzvf test.tar.gz
压缩文件:
touch a.c
tar -czvf test.tar.gz a.c
-c
打包 -x
解压 -z
通过gzip指令处理 -v
显示执行过程 -f
指定备份文件,要立即接文档名,不要再加其他参数 -C
指定需要解压到的目录
使用wget下载
wget是一个从网络上自动下载文件的自由工具。它支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统之后在后台执行,并且支持断点续传(只需要使用-c参数)。
-O
指定下载后的文件名
-c
重新启动下载中断的文件
-b
后台下载,可以使用tail -f wget-log
查看下载进度
-q
安静模式(没有输出)
-t
--tries=NUMBER 设定最大尝试链接次数(0 表示无限制)
-T
--timeout=SECONDS 设定响应超时的秒数
-i
--input-file=FILE 下载在FILE文件中出现的URLs
批量下载:
-
touch url.txt
新建一个文件 -
vi url.txt
在url.txt中写入所有下载链接 -
wget -b -i url.txt
-b表示后台wget,-i 表示从文本文件内读取网址
执行python文件:
-
ls -l
查看是否有执行该.py文件的权限 -
chmod u+x prepare_data.py
如果没有,添加上执行权限 -
python3 prepare_data.py --src $mydir --dst $mydir
运行.py脚本
查看程序是否还在运行
ps -ef|grep [程序名中的关键字]
输出zd 15727 11590 99 11:00 pts/8 06:49:47 wav2letter/build/Train train
输出格式含义:UID PID PPID C STIME TTY TIME
UID
拥有该进程的用户ID
PID
进程ID
PPID
父进程ID
C
CPU调度情况(CPU用于执行优先级的因子)
STIME
进程启动时间
TTY
启动进程的终端名
TIME
使用掉的CPU时间
CMD
启动进程的命令
jobs -l
只能查看当前终端中已启动的作业
将程序放到后台运行
-
方法1
nohup [command] &
这样远程终端关闭后,程序也能一直在后台运行。
nohup
不挂断地运行命令;&
在后台运行。缺省情况下日志会输出到当前运行目录下nohup.out文件中,采用nohup command > my.out 2>&1 &
将日志重定向到指定文件[0-stdin, 1-stdout, 2-stderr]
。将前台已经执行的命令放到后台:
首先按Ctrl+z
暂停已经运行的进程,然后使用bg %1
命令将停止的作业放到后台运行。# 运行一个程序 ./test.sh Ctrl+z挂起程序并显示编号 #[1]+ Stopped ./test.sh # 程序转到后台 bg %1
-
方法2
- 安装screen
sudo apt-get install screen
-
screen -S yolo
#创建一个名为yolo的窗口
当你执行完以上命令后,就会自动跳入名为yolo的窗口,在这个窗口里可以干你想干的事情。 - 当你不想呆在这个窗口时,你可以通过快捷键
Ctrl+a+d
断开这个窗口的连接而回到连接会话界面。显示如下
[detached from 28113.yolo]
说明从yolo这个窗口断开回到了会话界面。但是这个断开只是不显示那个窗口,而窗口对应的任务还是在后台运行的。 -
screen -ls
#可以查看已创建的所有窗口
There is a screen on: 14975.yolo (2019年01月04日 16时48分35秒)
- 如果想看其中一个窗口任务的执行状态,可以通过如下指令:
screen -r yolo
#恢复yolo窗口,显示其运行过程 - 如果想直接停止某个窗口任务的运行,可以直接通过杀死id的方式
kill 14975
#终止yolo窗口对应任务的运行,同时杀死该窗口 -
screen -wipe
#自动清除死去的窗口 -
exit
#关闭screen会话,会提示[screen is terminating]
screen可以实现代码在后台运行时的可视化,同时,能在开一个会话连接时创建多个窗口处理不同的任务。
- 安装screen
ssh connect
sudo apt-get install openssh-server
sudo apt-get install vim
/etc/ssh
sudo chmod 777 sshd_config
PermitRootLogin yes
service sshd restart
跨服务器文件传输
- 从本地复制到远程
scp -P remote_port -r local_folder remote_user@remote_ip:remote_folder
- 从远程复制到本地
scp -P remote_port -r remote_user@remote_ip:remote_folder local_folder
参考:
wget用法,参数解释的比较好的一个文章
vi/vim复制粘贴命令
程序在Linux下后台运行,程序运行前后台切换
跑深度学习代码在linux服务器上的常用操作
screen命令用法详解