常用的linux命令

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值