赞
踩
cd ~ 进入主目录
cd .. 返回上一级目录
cd .... 返回上两级目录
cd - 返回上次所在的目录
ls 查看当前目录下的文件
ls -l a* 列出当前目录以a开头的文件
ls -a 查看所有文件 包括隐藏文件
ll 查看文件详细信息
pwd 显示工作路径
mkdir 文件名 新建文件夹
mkdir dir1 dir2 同时创建两个目录
mkdir -p tmpdir1dir2 创建一个目录树
rmdir 文件名 是删除文件夹目录
cp file1 file2 复制文件到 某个文件目录
cp -rf /tomcat/* /tomcat2/ 复制文件夹
cp dir1 . 复制一个目录下的所有文件到当前工作目录
cp -a file1 file2 在保留原文件属性的前提下复制文件
mv 移动指定文件到指定位置
mv dir1 new_dir 重命名移动 一个目录
rm a.log 删除普通文件
rm -rf *.* 删除这个目录下所有的文件
rm -rf *关键字* 删除和关键字有关的所有文件 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思
删除 文件修改时间距今1天以前的.log结尾的文件,排除
find bop-fms-* -type f -name "*.log" -mtime +1 ! -name "*job*" ! -name "[0-9]*" -exec rm -f {} \;
反向删除:
rm -rf !(*2021-02-2*|*job) 反向删除当前目录下文件名含有2021-02-2、后缀为job之外的所有文件
cd /data0/bop-fms-account-info/logs
rm -rf !(*2021-02-2*|*job)
删除目录下所有某个后缀名的文件
find /data0/maven/repo -name "*.lastUpdated" | xargs rm
cat file1 从第一个字节开始正向查看文件的内容
cat -n file1 带行号查看文件内容
cat -n test.txt | grep '999' 查看文件文件中那些行包含‘999’
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
head -2 file1 查看一个文件的前两行
head -n 20 text.txt | tail -n 10 打印日志文件中第11到20行。
cat -n test.txt | head -n 20 | tail -n 10(如果需要行号)
tail -f 文件名 实时查看被添加到一个文件中的内容
tail -300f shopbase.log #倒数300行并进入实时监听文件写入模式
tail -2 file1 查看一个文件的最后两行
tail -f varlogmessages 实时查看被添加到一个文件中的内容
touch file.txt 创建一个新文件 -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
cat -n rsyslog.conf //显示所有行号(包括空行) vi file1 编辑文件 vim file1 编辑文件``` :89 //vi命令下 快速定位到指定行 (没有输入i进行编辑前) :set nu //vi命令下 显示行号 (没有输入i进行编辑前) ":" + "e!" 文件重新载入 /pattern Enter 查找 normal模式下 g表示全局, x表示查找的内容, y表示替换后的内容 :%s/x/y/g normal模式下 按0 光标移到行首(数字0) 按$ 光标移至行尾 shift + g 跳到文件最后 gg 跳到文件头 dd 快速删除整行数据 显示行号 :set nu 去除行号 :set nonu 检索 /xxx(检索内容) # 从头检索, 按n查找下一个 ?xxx(检索内容) # 从尾部检索 打开只读文件,修改后需要保存时(不用切换用户即可保存的方式) 在normal模式下 :w !sudo tee %
echo "max_connections=1000">>mysqld.cnf
// 将内容追加到 test.sh 的后面,不会覆盖掉原有的内容
cat << EOF >> test.sh
> 777
> 888
> EOF
// 注意会覆盖原来的内容
echo "max_connections=1000">mysqld.cnf
// 会覆盖原来的内容
cat << EOF > test.sh
> 123456
> 456789
> adgcdg
> EOF
sed -i 's/d/7523/' /home/1.txt 只替换第一次出现的d字符串
sed -i 's/user/userName/g' 123.txt sed命令可以批量替换多个文件中的字符串
perl -pie "s/wq/192.168.1.53/g" 123.txt 把123.txt文件中的所有wq都替换为192.168.1.153
cat /dev/null>1231xxx.log
> filename
echo > fileName
echo '' > fileName
zip 把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata #压缩mydata目录
zip -r abc123.zip abc 123.txt 把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
unzip -n filename.zip #跳过已存在文件
unzip -o file.zip #直接覆盖已存在文件
unzip mydata.zip -d mydatabak 把/home目录下面的mydata.zip解压到mydatabak目录里面
unzip -oq iss.war -d ../tomcat7/webapps/iss
unzip wwwroot.zip 把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip -v wwwroot.zip 查看把/home目录下面的wwwroot.zip里面的内容
unzip -j wwwroot.zip 把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
tar -czf test.tar.gz /test1 /test2 压缩文件
tar -xvzf test.tar.gz 解压文件
jar -xvf project.war /project_a
jar -xvf project.war
split [-a] [-b] [-C] [-l] [要分割的文件名] [分割后的文件名前缀]
–version 显示版本信息
– 或者-l,指定每多少行切割一次,用于文本文件分割
-b 指定切割文件大小,单位 m 或 k
-C 与-b类似,但尽量维持每行完整性
-d 使用数字而不是字母作为后缀名
-a 指定后缀名的长度,默认为2位
每10万行切割一次:
diff split -l 100000 advertiser83.txt ad83.
每个15m大小切割一次:
split -b 15m advertiser.txt ad.txt
cat file1 file2 file3 > file_all
//以制表符为分隔符将文件中的第6、9、11、13列排除后按第一列为key排序,结果重定向到另一个文件
cat advertiser-83-10.txt |awk -F"\t" '{$6=$9=$11=$13="";print $0}'|sort -k1 > new_advertiser-83-10.txt
cat advertiser-81-10.txt |awk -F"\t" '{$6=$9=$11=$13="";print $0}'|sort -k1 > new_advertiser-81-10.txt
diff -r new_advertiser-83-10.txt new_advertiser-81-10.txt > diff.txt
//以{、"、:,}任何一个为分隔符按第6列为key,按整数从小到大进行排序,结果重定向到另一个文件
cat exempt_uid_list_20200411-81.txt |awk -F"[{\"":,}] '{print $0}'|sort -k6n > exempt_uid_list_20200411-81.txt_sort
cat exempt_uid_list_20200411-83.txt |awk -F"[{\"":,}] '{print $0}'|sort -k6n > exempt_uid_list_20200411-83.txt_sort
diff -r exempt_uid_list_20200411-81.txt_sort exempt_uid_list_20200411-83.txt_sort > diff.txt
tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接
cd /data0/bop-fms-account-info/logs; rm -rf !(*2021-02-2*|*job); cd /data0
远程拷贝文件到本地
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听。
server2 ip: 192.168.200.27
server2:
nc -l 9000 > abc.txt
server1:
nc 192.168.200.27 9000 < abc.txt
scp full.tar.gz root@192.168.191.128:/home/soft 把当前系统文件复制到远程linux主机
scp root@192.168.191.128:/opt/soft/test.txt /home/soft/ 把远程linux主机文件复制到当前系统
Linux下用SCP免密传输文件设置
如何在 Linux 中将密码传递给 scp
# 查询文件夹下所有文件包含此内容的信息 grep -rn a26003208271fd94 * grep -rn 1b697b9f94a73677 *2021-08-17* //查询多个文件是否包含1b697b9f94a73677 # 查询指定文件名包含为2010-01-15的文件中查找指定信息 grep topic:bop_fms_lsm_account_recharge_new *2020-01-15* | grep 7156235864 # 在某个目录下查找包含某个字符串的文件 grep -r "zh_CN" ./ # 注:n,显示行号 R,查找所有文件包含子目录 i,忽略大小写 最后的“xxx”表示想要查找的文件名 grep -niR 'exception' filename grep 'test' d* 显示所有以d开头的文件中包含test的行 grep 'test' aa bb cc 显示在aa,bb,cc文件中匹配test的行 grep '[a-z]\{$\}' aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 grep -H 'spring' *.xml 查找所有的包含spring的xml文件 grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行 grep -C 5 "2022-07-22 16:15" exception-2022-07-22.0.log grep -B 5 foo file 显示foo及前5行 grep -A 5 foo file 显示foo及后5行 find -name file.txt 查找当前目录文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件 find . -name "*.xml" 递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内容中包含hello world的xml文件 find ./ -size e | xargs rm -f & 删除文件大小为零的文件 ls -l | grep '.jar' 查找当前目录中的所有jar文件 ls | grep app* 搜索当前目录下指定文件 whereis nginx whereis java 从根据目录开始查找 find / -name tomcat find / -name 123 搜索根和子目录 名字为 123的文件 从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行 find / -type f -name "*.log" | xargs grep "ERROR" 系统查找到httpd.conf文件后即时在屏幕上显示httpd.conf文件信息。 find / -name "httpd.conf" -ls 在根目录下查找某个文件 find . -name "test" sudo -u admin find /home/admin /tmp /usr -name \*.log(多个目录去找) find . -iname \*.txt(大小写都匹配) find . -type d(当前目录下的所有子目录) find /usr -type l(当前目录下所有的符号链接) find /usr -type l -name "z*" -ls(符号链接的详细信息 eg:inode,目录) find /home/admin -size +250000k(超过250000k的文件,当然+改成-就是小于了) find /home/admin f -perm 777 -exec ls -l {} \; (按照权限查询文件) find /home/admin -atime -1 1天内访问过的文件 find /home/admin -ctime -1 1天内状态改变过的文件 find /home/admin -mtime -1 1天内修改过的文件 find /home/admin -amin -1 1分钟内访问过的文件 find /home/admin -cmin -1 1分钟内状态改变过的文件 find /home/admin -mmin -1 1分钟内修改过的文件 head -n 10 example.txt 查看文件前10行 awk '{print $4,$6}' f.txt awk '{print NR,$0}' f.txt cpf.txt awk '{print FNR,$0}' f.txt cpf.txt awk '{print FNR,FILENAME,$0}' f.txt cpf.txt awk '{print FILENAME,"NR="NR,"FNR="FNR,"$"NF"="$NF}' f.txt cpf.txt echo 1:2:3:4 | awk -F: '{print $1,$2,$3,$4}' awk '/ldb/ {print}' f.txt #匹配ldb awk '!/ldb/ {print}' f.txt #不匹配ldb awk '/ldb/ && /LISTEN/ {print}' f.txt #匹配ldb和LISTEN awk '$5 ~ /ldb/ {print}' f.txt #第五列匹配ldb awk参考:https://blog.csdn.net/qq_23587541/article/details/81392170 sort参考:https://blog.csdn.net/z1164072826/article/details/81056872
查看端口占用情况:
yum install net-tools
netstat -ant 查看服务器所有被占用端口
netstat -tunlp | grep 端口号 验证某个端口号是否被占用
netstat -lntp 查看所有监听端口号
netstat -apn 查看所有进程和端口使用情况,其中最后一栏是PID/Program name
ip addr 查看IP
ps -ef 查看正在活动的进程
ps -ef | grep java 查看进程中有java的所有进程
kill -9 xxxpid 关闭某个进程
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 'eth0' 网络设备
ifdown eth0 禁用一个 'eth0' 网络设备
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址
mount -t cifs //ip地址/共享文件夹名 /mnt -o username=FZY,password=feng
clear:如果你觉得你的屏幕上有太多的东西,看起来很讨厌,可以使用clear命令清空
echo command 打印出你的输入
ctrl + c 中止当前执行的脚本 回到命令输入模式
1.通过命令hostnamectl 来修改。此种方式既可以修改/etc/hostname文件,又可以立即生效。
hostnamectl set-hostname new-test28
2. /etc/hostname 文件保存主机名
通过vi修改此文件来修改主机名,重启才会生效。
3.hostname命令只是临时修改主机名,重启会失效。其修改的是内核参数kernel.hostname 对应文件/proc/sys/kernel/hostname
hostname new-hostname
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小
du -sh * 快速查看是哪个文件占用空间大
du -sh [目录名] 返回该目录的大小
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间
du -ch *2020-12-03* 统计指定文件名的大小
du -sk sort -rn 以容量大小为依据依次显示文件和目录的大小
du -sm [文件夹] 返回该文件夹总M数
find / -size +100M -exec ls -lh {} \; 查询大于100M的文件
free -m 查看内存剩余大小
ls -lSr more 以尺寸大小排列文件和目录
rpm相关
查看是否通过rpm安装了该软件
rpm -qa | grep 软件名
以大小为依据依次显示已安装的rpm包所使用的空间
rpm -q -a --qf '%10{SIZE}t%{NAME}n' sort -k1,1n
sshkey
创建sshkey
ssh-keygen -t rsa -C your_email@example.com
id_rsa.pub 的内容拷贝到要控制的服务器的 home/username/.ssh/authorized_keys 中,如果没有则新建(.ssh权限为700, authorized_keys权限为600)
同步服务器时间
sudo ntpdate -u ntp.api.bz
ps -ef | grep java
chmod 777 给文件赋予所有权限
chmod +x 给文件赋予可执行权限
chmod 755 -rwxr-xr-x
chmod 744 -rwxr--r--
su - deployer 切换到deployer用户
su -i 切换到root
sudo 可执行root权限操作
sudo chown aiuap_jc:aiuap_jc iss 把iss目录的root拥有权限改成aiuap_jc
useradd -c Name Surname -g admin -d homeuser1 -s binbash user1 创建一个属于 admin 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c User FTP -g system -d ftpuser1 -s binnologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
userdel peter 删除用户
useradd -d /var/ftp -s /sbin/nologin 12321
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
cd /usr/local/nginx/
cd /opt/issystem/logs/nginx/
sudo tail -f -n 1000 access.log
sudo ./nginx -s reload
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
导出(无需登录):
mysqldump -uroot -ppwd isdb > isdb-20171124.sql
mysqldump -uroot -ppwd isdb tb_d_uniskuser > tb_uniskuser.sql
mysqldump -t isdb -uroot -ppwd --tables tb_rubbish tb_rubbish_appeal > rubbishAll.sql
zip -r isdb-20170828.zip isdb-20170828.sql
导入(需要登录):
./mysqllogin
use isdb;
source /root/isdb-20171124.sql;
查看正在运行.sh脚本 ps aux|grep clear_data.sh 查看后台进程 ps aux|grep java 查看java进程 ps aux 查看所有进程 ps -ef|grep tomcat 查看所有tomcat的进程 ps -ef|grep --color java 高亮要查询的关键字 查看端口占用情况 netstat -tln | grep 8080 查看端口8080的使用情况 查看端口属于哪个程序 lsof -i :8080 以树状图列出目录的内容 tree a 文件下载 wget http://file.tgz curl http://file.tgz 远程登录 ssh username@ip 打印信息 echo $JAVA_HOME 打印java home环境变量的值
uname -a 查看内核/操作系统/CPU信息的linux系统信息命令 lsb_release -a 查看操作系统 注:可惜需要安装 yum -y -install lsb head -n 1 /etc/issue 查看操作系统版本,是数字1不是字母L 查看系统内核版本,类似uname -r cat /proc/version 查看当前用户环境变量 env 查看CPU信息的linux系统信息命令 cat /proc/cpuinfo 查看有几个逻辑cpu, 包括cpu型号 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看有几颗cpu,每颗分别是几核 cat /proc/cpuinfo | grep physical | uniq -c 查看当前CPU运行在32bit还是64bit模式下, 如果是运行在32bit下也不代表CPU不支持64bit getconf LONG_BIT 结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id" 查看linux CPU大小 cat /proc/meminfo |grep MemTotal 查看内存大小 grep MemFree /proc/meminfo # 查看空闲内存量 cat /proc/partitions :查看linux硬盘和分区信息的系统信息命令 cat /proc/meminfo :查看linux系统内存信息的linux系统命令 cat /proc/ioports :查看设备io端口 cat /proc/interrupts :查看中断 cat /proc/pci :查看pci设备的信息 cat /proc/swaps :查看所有swap分区的信息 ifconfig -a 查看IP地址 ip addr 查看ip lsblk 查看所有硬盘 fdisk -l |grep Disk 查看硬盘大小 lspci -tv 列出所有PCI设备 lsusb -tv 列出所有USB设备的linux系统信息命令 lsmod 列出加载的内核模块 env 查看环境变量资源 free -m 查看内存使用量和交换区使用量 df -h 查看各分区使用情况 du -sh 查看指定目录的大小 uptime 查看系统运行时间、用户数、负载 cat /proc/loadavg 查看系统负载磁盘和分区 mount | column -t 查看挂接的分区状态 fdisk -l 查看所有分区 swapon -s 查看所有交换分区 hdparm -i /dev/hda 查看磁盘参数(仅适用于IDE设备) dmesg | grep IDE 查看启动时IDE设备检测状况网络 ifconfig 查看所有网络接口的属性 iptables -L -n 查看防火墙设置 route -n 查看路由表 netstat -lntp 查看所有监听端口 netstat -antp 查看所有已经建立的连接 netstat -s 查看网络统计信息进程 ps -ef 查看所有进程 top 实时显示进程状态用户 w 查看活动用户 id 查看指定用户信息 last 查看用户登录日志 cut -d: -f1 /etc/passwd 查看系统所有用户 cut -d: -f1 /etc/group # 查看系统所有组 crontab -l 查看当前用户的计划任务服务 chkconfig –list 列出所有系统服务 chkconfig –list | grep on 列出所有启动的系统服务程序
./version.sh 查看tomcat jvm版本 先进到tomcat的bin目录
cd /usr/local/nginx/sbin ./nginx -v 查看nginx 版本
mysql -v 查看mysql 版本
java -version 查看java版本
whereis java
which java (java执行路径)
echo $JAVA_HOME
echo $PATH
vi /etc/hosts
128.102.10.234 www.test.bp.com
netstat -anp|grep 80 网络管理netstat命令 查看端口
测试IP和端口是否可连接
telnet ip port
shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hoursminutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
mount devhda2 mnthda2 挂载一个叫做hda2的盘 - 确定目录 ' mnthda2' 已经存在
umount devhda2 卸载一个叫做hda2的盘 - 先从挂载点 ' mnthda2' 退出
fuser -km mnthda2 当设备繁忙时强制卸载
umount -n mnthda2 运行卸载操作而不写入 etcmtab 文件- 当文件为只读或当磁盘写满时非常有用
mount devfd0 mntfloppy 挂载一个软盘
mount devcdrom mntcdrom 挂载一个cdrom或dvdrom
mount devhdc mntcdrecorder 挂载一个cdrw或dvdrom
mount devhdb mntcdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso mntcdrom 挂载一个文件或ISO镜像文件
mount -t vfat devhda5 mnthda5 挂载一个Windows FAT32文件系统
mount devsda1 mntusbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass WinClientshare mntshare 挂载一个windows网络共享
crontab -l
// 编辑定时任务
crontab -e
// 删除定时任务
crontab -r
后台运行,并且有nohup.out输出
nohup xxx &
后台运行, 不输出任何日志
nohup xxx > /dev/null &
后台运行, 并将错误信息做标准输出到日志中
nohup xxx >out.log 2>&1 &
命令来完成强制活动用户退出.其中TTY表示终端名称
pkill -kill -t [TTY]
which <命令>
ulimit -n
vim /etc/resolv.conf
nslookup google.com
最近登录的5个账号
last -n 5
ifconfig em1 192.168.5.177 netmask 255.255.255.0
新增用户
useradd 用户名
passwd 用户名
增加sudo权限
vim /etc/sudoers
修改文件里面的
# root ALL=(ALL) ALL
# 用户名 ALL=(ALL) ALL
ps aux|grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9
查看文件里有多少行
wc -l filename
看文件里有多少个word
wc -w filename
文件里最长的那一行是多少个字
wc -L filename
统计字节数
wc -c
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。