0 零散命令
- curl www.baidu.com
- unzip
- 计数:wc -l
- ssh username@ip -p password
- mvn install 打包,并放入仓库
- mvn package 打包
1 切换账号
su
su ljr
2 卸载
sudo apt-get remove softname1
3 查看ip
ifconfig -a
4 文件传输
apt install lrzsz
上传 rz -be;下载sz
5 top(持续的监视进程的信息)
q(退出)
kill pid 杀死进程
默认3s刷新一次;空格键可以完成立即刷新功能;
除了显示各个进程的信息外,上面还有5-7行统计系统的整体信息
进程个数统计:运行的、阻塞的、睡眠的等。
cpu使用百分比统计:user的、sys的、idle的
物理内存:使用&未使用的大小
VM情况:swapping和swap out大小
网络情况:in和out的网速
硬盘情况:read和write占用比例
6 进程相关
lsof -i:7000(查看端口号7000的进程)
ps -aux | grep 8000
ps -A |grep redis(查看redis相关的进程)
ps aux|grep Customer(like)
kill -9 3333
kill pid
强制杀死进程
kill -9 pid
7 文件的操作
touch filename
- 如果文件不存在,则创建文件
- 如果文件存在,则设置文件的修改时间为系统当前时间
cat:连接文件并打印到标准输出设备上,经常用来显示文件的内容。
- 注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容
- 因此,一般用more等命令分屏显示
- 为了控制滚屏,可以按Ctrl+S键,停止滚屏
- 按Ctrl+Q键可以恢复滚屏
- 按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态
- -n或–number:从1开始对所有输出的行数编号
- cat m1 (在屏幕上显示文件m1的内容)
- cat m1 m2 (同时显示文件m1和m2的内容)
- cat m1 m2 > file (将文件m1和m2合并后放入文件file中)
- cat>> filename 如果没该文件,则创建该文件,并向文件中写入数据,ctrl+d 保存文件
- cat filename | grep likestr
实时显示全部内容
- tail file.txt
- tail file -n 100 (倒数100行)
- tail -n 100 log/errorlog
- tail file -n -100 |grep ‘AA’(倒数100行,包含AA的数据)
- tail -n +10 file (从第10行开始打印)
- ctrl+S:暂停
- ctrl+Q:继续
- ctrl+C:退出
tailf、tail -f、tail -F三者区别
-
tail -f:等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
-
tail -F:等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
-
tailf:等同于tail -f -n 10(貌似tail -f或-F默认也是打印最后10行,然后追踪文件),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电
grep “abc 123” log.log
grep “abc 123” -C20 log.log – -B(before) -A(after)
more bin/start.sh
8 vim修改文件
vim file.txt
vi file.txt
按S进入编辑模式
结束编辑
esc:
:wq 保存,退出
:q! 不保存,退出
:q 没修改,退出
:125 跳到125行
/content 查找content内容
i 进行编辑
9 文件夹操纵
rm filename
rm -rf 强制删除文件夹
mkdir name
rm * 删除所有文件
10 压缩
tar -cvf name.tar file1 file2 文件夹1 :把file1,file2和文件夹1打包成name.tar
tar -xvf name.tar 解压name.tar
unzip name.zip 解压name.zip
11 cd
cd . . 回到上一级
cd . 回到当前路径
cd / 回到跟目录(home)
ls 文件列表
ll 带文件属性的文件列表
reboot 重启
shutdown 关机
12 查看命令历史
history
查看倒数前10个命令
history 10
13 启动sh文件
./bin/start.sh
sh bin/start.sh
14 重命名
linux下对文件重命名有两种命令: mv,rename
重命名:mv name1.txt name2.txt
重命名:mv mylib/mms-service-1.0.0-SNAPSHOT.jar mylib/mms-service.jar
把name.txt移动到path路径下:mv name.txt path
移动多个文件到路径下:mv file_2.txt file_3.txt file_4.txt /home/office/
将目录/usr/men中的所有文件移到当前目录(用.表示)中:mv /usr/men/* .
移动目录:mv directory_1/ /home/office/
move文件移动
mv /dir/file1 /dir2/file1
move重命名
mv file1 file2
rename arg1 arg2 arg3
rename才是真正的批量重命名命令。而且他是3个参数,不是2个。
arg1:旧的字符串
arg2:新的字符串
arg3:匹配要重命名的文件,可以使用3种通配符,*、?、[char]
-
- 表示任意多个字符
- ? 表示单个字符
- [char] 匹配char单个自定的精确字符,可以填写任意字符
foo[a]*表示只匹配fooa开头的文件名,如果一个文件是foobcc.txt,是不会被匹配的。
-
比如/home下有两个文件 abbcc.txt, addbb.txt , a.txt,我想把a替换为xxx,命令是这样的 : rename “a” “xxx” *.txt,那么它会首先去匹配有哪些文件需要修改,这里凡是.txt后缀的文件都会被匹配。
-
如果改成?.txt则只会匹配到一个文件,那就是a.txt,然后把匹配到的文件中的a字符替换为xxx,注意测试时abab.txt这样的,只会替换第一个a。
说到Debian一系的操作系统,比如Ubuntu,这个命令这样使用是不对的,报错,向下面这样的:
Bareword “a” not allowed while “strict subs” in use at (eval 1) line 1.
经过Google之后发现有这样的说法:
On Debian-based distros it takes a perl expression and a list of files. you need to would need to use:
rename ‘s/foo/foox/’ *
这里是一个perl表达式,好理解点说就是综合了前两个参数为1个,这样就只需要2个参数,而非上面所说的3个参数形式,所以在Ubuntu下执行上面举例的重命名时,命令是这样的:rename ‘s/a/xxx/’ *.txt
15 nohup
nohup: 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。
- 如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件
- 输出被重定向到myout.file文件中
nohup command > myout.file 2>&1 &
- 该指令表示不做挂断操作,后台下载
nohup wget site.com/file.zip
- 在同一个目录下生成一个名称为 nohup.out 的文件,其中包含了正在运行的程序的输出内容
nohup ping -c 10 baidu.com
设置proxy:
set http_proxy
set http_proxy=
#设置http代理
export http_proxy=
#设置https代理
export HTTPS_PROXY=
#设置ftp代理
export FTP_PROXY=
#同时设置http、https以及ftp代理
export ALL_PROXY=
#设置代理,只在当前终端有效
$ export http_proxy=http://<IP>:<PORT>
或是
$ export http_proxy=socks5://127.0.0.1:1080
$ export HTTPS_PROXY=socks5://127.0.0.1:1080
#取消代理
$ unset http_proxy
$ unset https_proxy
写入配置文件(如: .bashrc)永久有效
$ vi ~/.bashrc
#添加如下内容:
#set proxy
function setproxy() {
export http_proxy=socks5://127.0.0.1:1080
export HTTPS_PROXY=socks5://127.0.0.1:1080
export FTP_PROXY=socks5://127.0.0.1:1080
}
#unset proxy
function unsetproxy() {
unset http_proxy HTTPS_PROXY FTP_PROXY
}
保存退出,执行source ~/.bashrc使得配置立即生效。或是关闭当前终端,重新打开,在终端中输入:
#设置代理
$ setproxy
#取消代理
$ unsetproxy