linux 常用命令,持续更新中~

文件操作相关

ls – list

ls – list

ls -l 可指定目录或文件 不指定就是列出当前目录下的文件信息

ls -a 显示所有文件 包含隐藏文件

ls -R 递归显示文件信息

测试:

root@650508c3a324:/# ls -l test/
total 0
-rw-r--r-- 1 root root 0 Aug  2 07:13 a.txt

pwd – print working directory

$ pwd
/Users/software

cd --change directory

$ cd workspace/

mkdir – make directories

mkdir hello
mkdir -p a/b/c 如果没有父目录,会递归的创建父目录

rmdir – remove directories

递归删除

$ mkdir -p a/b/c
$ cd a
$ rmdir -p b/c

目录必须为空目录

$ touch a.txt
$ ls
a.txt
$ cd ..
$ rmdir -p a
rmdir: a: Directory not empty

touch

$ touch a.txt

rm – remove

-r:--recursive
-f:--force

echo

输出变量,字符串的值

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

>和>>命令

输出重定项 >表示覆盖 >>表示追加

$ echo  xiaoxiao >> a.txt
$ cat a.txt
xiaoxiao

<< EOF

<<EOF…EOF:将<<EOF…EOF之间的多行内容传给前面的命令

<<EOF是shell脚本中使用sqlplus的基础

softwaredeMacBook-Pro:test software$ cat <<EOF
> Hello
> world
> hi
> i
> am
> xx
> EOF
Hello
world
hi
i
am
xx

cp --copy

$ cd test
$ ls
$ cp ../a.txt b.txt
$ ls
b.txt

scp-- secure cpoy

远程拷贝

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

scp -r 复制当前目录

 -r      Recursively copy entire directories.  Note that scp follows sym‐
         bolic links encountered in the tree traversal.

从本地到远端服务器:

scp ${local_file} r e m o t e u s e r n a m e @ {remote_username}@ remoteusername@{remote_ip}😒{remote_folder}

从远端服务器到本地

scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 

mv – move

移动文件

move ${source_file} ${dest}

如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -P 参数来设置命令的端口号,命令格式如下:

#scp 命令使用端口号 4588
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator

wh家族

who whoaim whereis which

查看系统中登录的用户
$ who
software console  Jun 29 09:41
software ttys000  Jun 29 11:22
software ttys001  Jun 29 11:30
查看当前用户
$ whoami
software
$ whereis java 查看系统安装软件路径

$ which 查看可执行文件路径

man

查看命令文档 man ps

文件查看命令

cat

查看文件所有内容

more

查看到文件末尾自动退出

​ 按回车:默认下一行数据;

​ 按空格键盘,默认下一页,以当前屏幕为单位;

​ 按Ctrl+ B 上一页,以当前屏幕大小为单位;

less

查看到文件末尾不自动退出

​ 按回车:默认下一行数据;

​ 按空格键盘,默认下一页,以当前屏幕为单位;

​ 按Ctrl+ B 上一页,以当前屏幕大小为单位;

head

从文件开始查看

-n :查看文件行数

head -15

tail

从文件末尾开始查看

tail -n

tail -15

tail -f #动态查看,CRTL+C:表示暂停进程 CTRL+Z:表示停止进程

文件编辑命令

vi/vim

非编辑模式


yy:复制光标当前行-- copy copy
p:粘贴				--prase
dd:剪切

gg:跳转至行首 -- go go
Ngg:跳转到指定行
Shift+方向键 :跳至当前行 行首 行尾
CTRL+F:上下翻页
CTRL+B:向上翻译

:s/原字符/新字符/  :替换光标当前行内容
:%s/原字符/新字符/g  :%s表示全文替换 g:global i表示ignore忽略大小写 

/${word} :查找的内容 从光标当前行开始向后查找内容
?${word}: 从光标当前行开始往前查找内容
n查找下一个
N查找上一个

:set nu:显示行号
:set nonu: 去掉行号显示

u:撤销 编辑操作
ctrl+r:恢复撤销

i:进去编辑模式
o:进入编辑模式 光标在下一行

编辑模式

esc:退出编辑模式

可视化模式

按v:进入可视化模式,以字节为单位

按V:以行为单位选择类容

y:复制

p:粘贴

d:删除

source

让当前配置文件生效
source ~/.bash_profile

cut

截取命令

-f 参数,指定列

-d 参数,指定列和列之间的分隔符,默认是\t 行向制表符

输出所有用户
cat /etc/passwd | grep *:* | cut -f 1 -d ":"

wc --word count

wc

-w: --words显示字数

-l:–lines 显示行数

-c:显示bytes数

printf

$ printf '%s,%s\n' abc efg
abc,efg

文本处理语言

awk

模式扫描和文本处理语言 pattern scanning and text processing language

创建测试文件:

software@ubuntu:~$ cat > test.txt <<EOF 
> hello
> world
> 2 this is test
> 4 omg
> hi,bob
> 10 abc,123,efg
> EOF


$ cat test.txt
hello
world
2 this is test
4 omg
hi,bob
10 abc,123,efg

用法一:

awk '{[pattern] action}' {filenames}   # 行匹配语句 awk '' 只能用单引号
software@ubuntu:~$ awk '{print $1,$4}' test.txt
hello 
world 
2 test
4 
hi,bob 
10 

用法二:

指定分隔符

awk -F #-F相当于内置变量FS, 指定分割字符

software@ubuntu:~$ awk -F, '{print $1,$4}' test.txt
hello 
world 
2 this is test 
4 omg 
hi 
10 abc 

或者使用内置变量
 $ awk 'BEGIN{FS=","} {print $1,$2}'     log.txt


https://www.runoob.com/linux/linux-comm-awk.html

sed

​ sed - stream editor for filtering and transforming text

sed [options] ‘${cmd}’ file

-n 一般sed命令会把所有数据都输出到屏幕,如果加-n 则只会把经过sed名利处理的行输出到屏幕

-e 允许对输入数据应用多条sed命令编辑

-i 用sed的修改结果直接修改读取的数据的文件,而不是修改屏幕输出

software@ubuntu:~$ sed '' test.txt
hello
world
2 this is test
4 omg
hi,bob
10 abc,123,efg

查询第二行
software@ubuntu:~$ sed -n '2p' test.txt 
world

修改内容10为100
software@ubuntu:~$ sed -i 's/10/100/g' test.txt
software@ubuntu:~$ cat test.txt
hello
world
2 this is test
4 omg
hi,bob
100 abc,123,efg

追加一行内容到第二行内容:
software@ubuntu:~$ sed -i '2a !' test.txt 
software@ubuntu:~$ cat test.txt 
hello
world
!
4 omg
hi,bob
100 abc,123,efg


删除第三行内容:
software@ubuntu:~$ sed -i '3d' test.txt
software@ubuntu:~$ cat test.txt
hello
world
4 omg
hi,bob
100 abc,123,efg


查找命令

find

find命令 查找文件

find *.txt

grep

查找内容

softwaredeMacBook-Pro:test software$ ps -ef | grep grep
  501  5343  1337   0  8:20下午 ttys000    0:00.00 grep grep

压缩命令

zip uzip tar

压缩和解压.zip文件
zip a.zip a.txt
unzip a.zip data
unzip -l a.zip 查看文件,不解压

tar 压缩和解压.tar .tar.gz

tar cvf a.tar a.txt或dir
tar xvf a.tar -C a/ 解压到a文件夹下

tar zcvf tm.tar.gz tm
tar zxvf tm.tar.gz 解压到当前文件夹下


用户权限命令

groupadd groupdel

用户组:

添加用户组
~$ sudo groupadd supermans
删除用户组(用户组中必须没有用户)
~$ sudo groupdel supermans

software@ubuntu:~$ sudo groupadd superman

software@ubuntu:~$ sudo groupadd superman1
software@ubuntu:~$ sudo groupadd superman2
software@ubuntu:~$ sudo groupadd superman3


查看用户组
software@ubuntu:~$ cat /etc/group
software@ubuntu:~$ cat /etc/group | grep superman*
superman:x:1001:
superman1:x:1002:
superman2:x:1003:
superman3:x:1004:

useradd userdel

用户:

useradd 用户名 [-g 主用户组名 -G 其他用户组名]

创建一个用户,-g指定用户的主用户组,-G指定用户的其他用组

useradd bob -g superman
userdel bob 
查看所有用户
cat /etc/passwd

查看指定group下的所有user

software@ubuntu:~$ cat /etc/group | grep superman:
superman:x:1001:
找到groupid:1001

cat /etc/passwd | grep 1001
bob:x:1001:1001::/home/bob:/bin/sh


切换用户:

su 用户名,不加载用户的环境变量

su - 用户名 加载用户的环境变量

passwd

修改用户密码:

passwd 用户名

文件权限 ls -l

权限:

文件类型
-      rw- r-- r--  1 software software 3.7K May 17 07:30 .bashrc

chmod u+x a.txt
chmod u-x a.txt
chmod -R dir 加R保证目录下所有文件的权限被更改

chown命令,更改文件所属用户
chown bob2 1.txt

系统服务相关

ps --process status

ps -- process status

options:
-a --all
-u              
	Select by effective user ID (EUID) or name.
-x
include pro-cesses which do not have a controlling terminal 包括没有控制终端的进程

-e  和-a一样
-f  Do full-format listing

u 
Display user-oriented format.

x  
	Lift the BSD-style "must have a tty" restriction
	解除"must "

踩坑:由于-u后面需要跟具体的该进程属于哪个userID或username,由于没有x这个user

所以当执行ps -aux时,执行的是 ps aux

kill命令

kill -9 ${pid} :强制结束进程

free

free -h 查看系统内存

              total        used        free      shared  buff/cache   available
Mem:          1.9Gi       877Mi       102Mi       2.0Mi       978Mi       909Mi
Swap:         923Mi        93Mi       830Mi

df – display file system

查看系统硬盘

Filesystem      Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk1s1   233Gi  151Gi   80Gi    66% 2414109 9223372036852361698    0%   /
devfs          338Ki  338Ki    0Bi   100%    1170                   0  100%   /dev
/dev/disk1s4   233Gi  2.0Gi   80Gi     3%       2 9223372036854775805    0%   /private/var/vm
map -hosts       0Bi    0Bi    0Bi   100%       0                   0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%       0                   0  100%   /home
/dev/disk2s1   134Mi  105Mi   29Mi    79%     393          4294966886    0%   /Volumes/DeepL Installer

service

service ${service_name} ${cmd}

​ cmd:enable|disable|start|stop|restart|status

$ service network-manager restart

$ service iptables stop #centos6及centos6以下版本,关闭防火墙(只是临时关闭)

chkconfig

chkconfig命令检查,设置系统的各种服务,通过chkconfig设置的服务永久生效

chkconfig iptables on #打开防火墙
chkconfig iptables off ##永久关闭防火墙

防火墙

centos7以上:

systemctl start firewalld #启动防火墙
systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld
systemctl enable firewalld #打开防火墙(不是启动防火墙)

设置防火墙规则

firewall-cmd

ubuntu :

sudo ufw status

网络配置文件

ubuntu:

Ubuntu系统进行网络配置涉及到几个配置文件
1./etc/network/interfaces
2./etc/resolv.conf
3./etc/resolvconf/resolv.conf.d/base

操纵步骤:
1.打开ubuntu的/etc/network/interfaces文件默认的内容如下:
auto lo
iface lo inet loopback
动态获取的配置方法:
auto eth0
iface eth0 inet dhcp
静态分配的配置方法:
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
根据配置要求(是动态分配还是自动获取)修改该配置文件保存。

2.添加域名服务器:打开/etc/resolv.conf文件,添加这行:
nameserver 1.2.4.8
nameserver 8.8.8.8

3.同第2步打开/etc/resolvconf/resolv.conf.d/base文件,没有就创建,同样添加这行:
nameserver 1.2.4.8
nameserver 8.8.8.8

4.重启下网络
$/etc/init.d/networking restart(这条命令是重启网卡)
或者
$ifdown eth0
$ifup eth0(这两条命令是有针对性的重启某个网络接口,因为一个系统可能有多个网络接口)

5.查看网络配置的参数是不是正确(每进行一次操作都可以查看一下是不是修改了网络配置)
$ifconfig

centos:

1、网卡配置文件/etc/sysconfig/network-scripts/ifcfg-enp0s3

DEVICE=eth0 //表示网卡物理设备的名字
BOOTPROTO=dhcp //表示为网卡配置静态还是动态IP地址(none:表示无须启动协议;bootp:表示使用BOOTP协议;
							 //dhcp :使用dhcp协议动态获取ip地址; static:表示手工设置静态IP地址)
ONBOOT=yes //表示启动系统时是否激活网卡,yes为激活,no不激活
TYPE=Ethernet //网络类型
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=1
HWADDR= //表示网卡的MAC地址
GATEWAY = //表示该网关地址
NETMASK //表示子网掩码
IPADDR= //表示IP地址

2、 /etc/resolv.conf 域名解析配置文件
nameserver :表示解析域名使用该IP地址指定的主机为域名服务器;
search : 表示DNS搜索路径

3 、/etc/hosts 主机名匹配IP地址

4 、/etc/networks 网络名和网络地址之间的映射关系
]# vim /etc/networks
default 0.0.0.0
loopback 127.0.0.0
link-local 169.254.0.0

5、 /etc/protocols 定义了主机使用的协议,及每个协议的协议号等相关信息
]# vim /etc/protocols

6、/etc/services 定义了系统中所有服务的名称、协议类型、服务端口号等信息,该文件是一个服务名和服务端口号对应的数据库文件
]# vim /etc/services

注意:networkmanager与network配置有冲突,服务器,虚拟机一般关闭networkmanager         

systemctl start NetworkManager

systemctl disable NetworkManager



sudo

非root用户,获取sudo的执行权限,或者修改一些文件

查看并配置/etc/sudoers

$ sudo tail -n 20 /etc/sudoers

# User privilege specification
root	ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

修改文件

$ sudo vim /etc/profile

ping

ping ip

ifconfig

查看 ip 等信息

netstat

查看监听端口

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。


netstat命令各个参数说明如下:

  -t : 指明显示TCP端口

  -u : 指明显示UDP端口

  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

  -n : 不进行DNS轮询(可以加速操作)
[root@localhost ~]# netstat -nlp |grep LISTEN   //查看当前所有监听端口·

[root@localhost ~]# netstat -nlp |grep 80   //查看所有80端口使用情况·

[root@localhost ~]# netstat -an | grep 3306   //查看所有3306端口使用情况·

 


rpm 命令

rmp是linux上的安装命令,用来安装.rpm格式的安装包

rpm -qa #查看已安装的软件
rpm -qa | grep mysql #查看已安装的mysql软件包

rpm -ivh .rpm # 安装软件包

rpm -e -nodeps 安装包名 # -e表示卸载 --nodeps 表示不理会依赖关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值