linux常用命令

来源:互联网 发布:mac键盘按键拆卸 编辑:程序博客网 时间:2024/06/08 19:23

cut -d '/' -f 1    如:echo "a/b/c" |cut -d '/' -f 1,执行结果是a。执行过程:先按/分段,分段后结果是:第一个字段是a,第2个字段是b,第3个字段是c,-f就是取第几个字段。


cat 显示一个文件的内容,more为分页显示一个文件的内容。

cat /etc/issue  查看linux发行版本。

cat /proc/cpuinfo   查看CPU信息。

chown chgrp 改变文件的拥有者

cp file_from file_to 拷贝文件 

cp -r    a    b   //拷贝文件夹,将A拷到B。

cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。

chmod  777 file 给file文件修改777的权限(用户,组,其他)。

crontab 创建周期性任务

  -u:指定某一用户
-e:执行文字编辑器来设定用户(当前用户或指定用户)时程表,内定的文字编辑器是vi.
-r:删除用户时程表.
-l:列出用户时程表.

例如:

使用crontab -e进行编辑,内容为:
*/2 * * * * echo "i am crontab" >> /home/zhang/hello
这样隔两分钟就会往hello这个文件里写i am crontab

也可以执行脚本,如:

* * * * *  /task.sh   //脚本里要用绝对路径。

chkconfig命令可以用来检查、设置系统的各种服务
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数用法:
--addà增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--delà删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>à指定读系统服务要在哪一个执行等级中开启或关毕。
使用范例:
chkconfig --list      列出所有的系统服务
chkconfig --add httpd 增加httpd服务       //在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
chkconfig --del httpd 删除httpd服务
chkconfig --level httpd 2345 on 把httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig命令提供了一种简单的方式来设置一个服务的运行级别。例如,为了设置MySQL服务器在运行级别3和4上运行,你必须首先将MySQL添加为受chkconfig管理的服务:
chkconfig --add mysql
现在,我们在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on
在其他级别上设为off
chkconfig --level 01246 mysql off
为了确认你的配置被正确的修改了,我们可以列出服务将会运行的运行级别,如下所示:
#chkconfig --list mysql

mysql           0:off       1:off       2:off       3:on 4:off       5:on 6:off

date  查看时间

dd 复制磁盘或文件系统

dnf /dnf remove    fedora上的安装与卸载。

df    df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,下面是

相关命令的解释:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小

fdisk -l  查看硬盘的分区 

find    实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex)

find . -name "*.o"  | xargs rm -f    //删除目录下所有的.o文件。

 fuser

find files or sockets' user
    格式:fuser [选项] fname
    -k 如果找到打开文件的进程,则发送SIGKILL杀死此进程,通过-i选项,可以为用户提供交互选择
    -signal 用户可以指定使用何种信号去kill进程,如果-k参数指定,则忽略此参数
    -m 如果指定一个文件,则所有访问那个文件所在文件系统的进程都会被列出来
    -n  type 指定不同的文件类型,默认类型为file,此外还支持tcp和udp类型,此时可以简写作port/tcp
    -u  显示进程属主
    -v  显示详细进程与打开文件信息
    -4/-6 只搜索IPv4/IPv6套接字
    例如,我们想查看端口TCP端口9000由哪个进程打开 fuser -v -u 9000/tcp
             查看哪些进程在访问/home挂载分区              fuser -mv /homefuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。
fuser显示使用指定文件或者文件系统的进程ID.默认情况下每个文件名后面跟一个字母表示访问类型。

常用选项
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。 
-c 和-m一样,用于POSIX兼容。 
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。 
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。 
-l 列出所有已知的信号名称。 
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。 
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。 
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。 
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。 
-u 在每个PID后面添加进程拥有者的用户名称。 
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.  -V 输出版本号。 
如:fuser -k 80/tcp  //删除占用TCP80端口的进程。

grep

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

iconv -f gb2312 -t utf-8 gb1.txt > gb2.txt

ifconfig eth0 down    关掉eth0

ifconfig eth0 up  启用eth0

ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up     启用eth0新地址

kill 杀掉一个进程
killall 杀掉进程

ls -l [directory] 查看指定目录下文件的详细
ls -a [directory] 查看指定目录下的所有文件

lsof -i:22         查看22端口的占用情况。

    lsof list open file
    格式:lsof  [选项] [names]
    单独执行lsof将输出系统中所有打开的文件,我们可以grep过滤出我们关心的内容,不过lsof提供了相应的参数帮助我们精确查找
    lsof name 将输出所有使用文件name的进程
    -p pid 列出进程pid所打开的所有文件
    -d FD_pattern 列出所有已经打开的FD值为FD_pattern的文件FD的值有整数,TXT,MEM等等
    -a lsof后可以加多个匹配条件,默认为or连接,此参数将多个条件变成and关系
    -i [46] [proto] [@hostname|ip][:service|port] 用来选择占用某个端口的进程
    +d/+D dir 非递归或递归的显示打开dir下文件的进程
    -c string   显示进程的command中包含string的进程所打开的文件
    -u username 显示属于user的进程所打开的文件
    -g gid

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more           //查看句柄占用

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|grep 3322           //查看句柄占用

ldconfig是一个动态链接库管理命令,ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

ps ax 查询当前进程

ps -ef的意思是以长格式显示所有进程,“|”是管道,意思是前面ps的输出做为后面的输入,然后grep tomcat是在所有进程里查找与字符tomcat有关的进程,并显示出来。
ps命令就是最根本相应情况下也是相当强大地进程查看命令
ps[选项]
-e显示所有进程,环境变量
-f全格式
-h不显示标题
-l长格式
-w宽输出
a显示终端上地所有进程,包括其他用户地进程
r只显示正在运行地进程

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

mkdir new_directory 建一个新目录

rm -rf  a   强制删除文件夹a。

rpm  //redhat包管理,rpm  q查询,rpm  qa查询所有。rpm -i your-package.rpm 装rpm文件。

1.安装一个包 # rpm -ivh
2.升级一个包 # rpm -Uvh
3.卸载一个包 # rpm -e

systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
例:# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。

split

1)将文件splitTest.txt分割成多个文件,分割后的每个文件大小为10M。命令:

$ split -b 20m splitTest.txt
$ ls
splitTest.txt  xaa  xab  xac
2)将文件splitTest.txt分割成多个文件,分割后的每个文件大小为10M。指定分割后的文件前缀位split,命令:
$ split -b 20m splitTest.txt  split
$ ls
splitaa  splitab  splitac  splitTest.txt
3)将文件splitTest.txt分割成多个文件,每个文件50万行。命令:
$ wc -l splitTest.txt
1502216 splitTest.txt
$ split -l 500000 splitTest.txt  split
$ ls
splitaa  splitab  splitac  splitad  splitTest.txt
4)将文件splitTest.txt分割成多个文件,每个文件50万行。指定分割后的文件后缀为数字,数字位数为3位,命令:
$ wc -l splitTest.txt
1502216 splitTest.txt
$ split -l 500000 -d -a 3 splitTest.txt  split
$ ls
split000  split001  split002  split003  splitTest.txt

防火墙

1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

time

命令行执行结束时在标准输出中打印执行该命令行的时间统计结果,其统计结果包含以下数据:

    real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
    user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。
    sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。

        其中,用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务;如果real小于CPU时间,一般是因为用了多CPU,user是各个cpu时间之和,而real和cpu个数没关系。

        另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。