Linux基本命令一

1. 编译及链接生成可执行文件示例

 

gcc -c -I /usr/local/include/ http_test.cpp-o http_test.o

 

gcc -L /usr/local/lib-lboost_locale http_test.o -o test

 

2. 查找

当前目录下内容包含某个字段的文件,显示文件目录 

find . -name “*.h” -exec grep -in-H “string ” {} \;

查找当前目录下文件名包含某字符串的

$ find . -print | grep -in string  //note:字符串不要用通配符

查找指定目录下所有文件的MD5

 find . -exec md5sum {} + | awk'{print $2 "\t" $1}' | sort > md5.txt

grep -Ein 'a|b' console.log

 

3. 解压

链接: http://www.cnblogs.com/eoiioe/archive/2008/09/20/1294681.html

带路径压缩属性:

$tar -czvf  /***/WEB-INF/lib.bak.tar.gz  /***/WEB-INF/lib --absolute-names

解压到特定路径属性:

`tar -xvzf #{propel_home}/../idm-service-#{idm_version}.tar.gz-C#{propel_home}/../idm-service/`

 

4. 批量替换

\/为/的转义

 

sed -i "s/\/home\/artogrid\/workspace\/dev/..\/../g" `grep\/home\/artogrid\/workspace\/dev-rl ./ */*.sh`

sed -i "s/tcp:\/\/192.168.1.102/tcp:\/\/172.16.8.40/g" `greptcp:\/\/192.168.1.102 -rl ./*/*.xml`

 

sed -i "s/idb_cswap_account/idb_account/g"`grep idb_cswap_account -rl ./sumscope/cswap/*/bin/*ServerCfg.xml`

 

xml 特殊字符替换:

替换<CompanyId>1为<CompanyId>9000

 

sed -i"s~<CompanyId>1~<CompanyId>9000~g" `grep "<CompanyId>1" -rl ./sumscope/cswap/CManageServer/bin/CManageServerCfg.xml`

[root@propel ~]# sed -i "s~idm.persistence.show_sql = false~idm.persistence.show_sql = true~g" `grep "idm.persistence.show_sql = false" -rl /opt/hp/propel/idm-service/idm-service.war/WEB-INF/spring/applicationContext.properties`
 

grep l 只列出文件名

5.设置生成的core dump 文件大小无限制 

ulimit -c unlimited

 

6. cp -rf a b/ 仍然有覆盖提示,可查看别名

[root@localhost workspace]# alias 
alias cp='cp -i'
........

如果存在cp别名,可临时取消

[root@localhost workspace]# unalias cp

然后再执行cp -rf a b/ ,即可没有提示。

 

shell 脚本:

[ -n "`alias -p | grep '^alias cp='`" ] && unalias cp
cp -Rf  folder1 folder2

alias cp='cp -i'

 

7. 查找进程运行路径

方法一:

a. ps查找进程号

b. 查看/proc/pid_no

eg:

[root@localhost /]# ps -elf | grep -in "qpid"
244:1 S root      3569     1  0  80   0 - 182221 ep_pol Oct26 ?       00:37:58 ./qpidd --max-connections=2000 --auth=no --tcp-nodelay -d --log-source yes --log-thread yes --log-to-file qpidd.log
261:0 S root     20236 20192  0  80   0 - 25829 -      18:12 pts/6    00:00:00 grep -in qpid
[root@localhost /]# ll /proc/3569
总用量 0
......
-r--------  1 root root 0 12月 10 13:43 environ
lrwxrwxrwx  1 root root 0 12月 10 13:43 exe -> /home/artogrid/workspace/deploy/qpid/qpidd

......

方法二:top命令 + c

 

8. 修改用户组及权限

[root@IDBCentos65 bondserver]# ll

-rwxr-xr-x.  1 root   root        143 Dec 24 16:54 modify_cfg.sh
[root@IDBCentos65 bondserver]# chown centos:centos modify_cfg.sh 
-rwxr-xr-x.  1 centos centos      143 Dec 24 16:54 modify_cfg.sh
[root@IDBCentos65 bondserver]# chmod g+w modify_cfg.sh   //or chmod 777 file 
-rwxrwxr-x.  1 centos centos      143 Dec 24 16:54 modify_cfg.sh

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

修改目录及子目录用户组

root@ubuntu:/workspace# chown -R stack:stack devstack/

为用户添加sudo权限

#echo"user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

path: /etc/sudoers.d

# Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) NOPASSWD:ALL  NOPASSWD
不需要密码

创建多级目录

mkdir -p a/b/c

9. 查看服务

#service --status-all

#systemctl status

10. yum

a. 查看已安装应用

#yum list installed

b.删除

#yum remove mysql

c.查找可安装包

#yum search jdk

refer to: http://blog.chinaunix.net/uid-346158-id-2131252.html

d.yum server所使用的容器

yum repolist all

e. 删除已下载过的所有容器的相关信息

#yum clean all

 

11. 日期时间修改及同步

修改:date 

 

# date -s "2008-08-08 12:00:00" 

修改完后,记得输入:clock -w

把系统时间写入CMOS

 

同步:#ntpdate 202.120.2.101

 

12. 代理设置

/etc/profile 加入

export http_proxy=http://***.com:8080

export https_proxy=http://***.com:8080


13. 查看http response

curl -v "http address"

 

14.Vim 行号永久生效

/etc/vimrc or ~/.vimrc 加入"set number"

15.安全

SELinux增强安全,关闭的办法为:
1. 永久有效
修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。
2. 即时生效
setenforce 0
关闭防火墙的方法为:
1. 永久性生效
开启:chkconfig iptables on 
关闭:chkconfig iptables off
查看状态:sestatus

2. 即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop 

16.硬盘空间查看

[tiaxia@c9t21622 ftp]$ df -k
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/sda3               999320  481052    465840  51% /
.......

ps: df -h  (human-readable)
[tiaxia@c9t21622 ftp]$ du -h
4.0K ./pub
4.0K ./propel
12K .
[tiaxia@c9t21622 ftp]$ du -ck
4 ./pub
4 ./propel
12 .
12 total

查看目录所占用的size
[root@c9t21622 var]# du -sh *   
4.0K account
100M cache
1.1M chef
40K crash
4.0K cvs

[root@c9t21622 var]#du -sh
1.3G

17. 切换到root 

#sudo -s

#sudo su

18. SSH到Linux服务器通过publish key

linux客户端生成private/publish key命令 # ssh-keygen

拷贝pub key内容到服务端/.ssh/authorized_keys文件 (.ssh 700)(authorized_keys 644)

或命令 ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

(authorized_keys可添加多个client public key)

ssh server-ip

服务器端的公私钥pos: /etc/ssh/ssh_host*,删除,重启[/etc/init.d/sshd restart]即可重新生成服务端公私钥,

但可能会对其他客户端造成影响,其他客户端存储的server信息在~/.ssh/known_hosts

 

19. 查看系统信息

发行版本

$ uname -a

$ cat /etc/redhat-release 

$cat /etc/issue

$cat /proc/version

CPU信息

$cat /proc/cpuinfo

查看系统负荷

[root@propel proc]# uptime
 03:39:21 up 6 days, 21:36,  5 users,  load average: 0.01, 0.11, 0.13
"load average"一共返回三个平均值----1分钟系统负荷、5分钟系统负荷,15分钟系统负荷

20. 查看域名

hostname
cat /etc/sysconfig/network
cat /etc/hosts
修改Linux主机名
hostname ceshi.com

21. 查看端口对应的进程

$ lsof -Pnl +M -i4 | grep 5671

22.shell进入当前脚本路径

cd `dirname $0`
echo "pwd: "`pwd`

23. ln

在docker目录下创建tx的软连接

ln -s /opt/mount1/tx  docker

lrwxrwxrwx 1 tiaxia ldap 14 Jan 24 06:06 tx-> /opt/mount1/tx

24. 查看cpu核数

cat /proc/cpuinfo |grep "cores"|uniq

25. network

设置静态ip

路径: /etc/sysconfig/network-scripts/***

重启服务:/etc/init.d/network restart

Sample

[root@prop-idm network-scripts]# cat ifcfg-enp1s0f0 
TYPE=Ethernet
BOOTPROTO=dhcp
DHCP_HOSTNAME="prop-idm.asiapacific.cpqcorp.net"
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp1s0f0
UUID=1222c7d9-3b41-4420-8488-92ba1fedf6ad
DEVICE=enp1s0f0
ONBOOT=yes
[root@prop-idm network-scripts]# pwd
/etc/sysconfig/network-scripts

26. alias 添加位置

单个用户生效: 家目录 /home/**/.bashrc

所有用户生效: /etc/bashrc

 

27 复制连续多行到另一文件

方法一: [root@prop-idm temp]# sed -n '1,11p' dum.sql > b.test

方法二:[root@prop-idm temp]# head -n 12 dum.sql  > a.test

方法三:在Vim中操作

1)把本文件的5~10行复制到“filename”文件的后面:

:5,10 w>> filename

2)把本文件的5~10行复制到“filename”中,清除“filename”原文件的内容:

:5,10 w! filename

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值