您的位置:首页 > 运维架构 > Linux

###Linux基础命令

2014-09-29 20:09 295 查看

点击查看Evernote原文

#@author:       gr
#@date:         2014-07-20
#@email:        forgerui@gmail.com


记录Linux常用命令。



tree

文件目录通配符 * ? [ ]

链接

硬链接 增加节点数,删除一个,节点减1

软连接 新建一个链接文件,删除原文件,连接文件找不到文件

ls 相关查询

ls -lt 最后修改时间 mtime

ls -lc 状态改变时间 ctime

ls -lu 最后访问时间 atime

解压缩

gzip .gz zxvf

compress .Z Zxvf

bzip2 .bz2 jxvf

pidof

iptables -A INPUT -m tcp -p tcp --dprot 10006 -j ACCEPT


iostat,vmstat,mpstat

电源管理

sudo pm-hibernate : 休眠

sudo pm-suspend: 挂起

sudo pm-powersave :省电模式

系统发行版本

lsb_release -a

cat /etc/issue

源管理

#添加lauchpad软件源

sudo add-apt-repository ppa:ailurus

sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get install ailurus

vi 中可以使用!使用shell系统命令,用r导入 :
!r date


vi 最后保存时发现没有权限,可以使用%! sudo tee %命令保存

vi Ctrl+W:  = 窗口大小相等; _ 窗口最大; + 增大窗口; - 减小窗口.

vi 行内移动:由于窗口太小,一行未显示全,通过 gj可以移动同一行显示中的第二行

live cd 修复grub

sudo -i
mount /dev/sda9 /mnt
mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
grub-install --root-directory=/mnt/ /dev/sda
reboot
#重建grub列表
sudo update-grub
#重新写入第一分区mbr
sudo grub-install /dev/sda
reboot


grub2命令修复

grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)
(hdx,y) (显示查找到的分区号)
grub>root (hdx,y)
grub>kernel /boot/grub/core.img (/boot分区的用 kernel /grub/core.img)
grub>boot


find

find / -name 'helloworld'


daily log

1. 杀任务: jobs kill %1

2. 踢除用户: pkill -kill -t pts/2

3. sudo apt-get -f install

4. split vspl

5. ufw enable/disable

ufw:uncomplicted firewall

6. python -m SimpleHTTPServer

7. sudo !!

8. chkconfig --list mysql

9. chkconfig --level 235 mysql on

10. crontab Minute Hour Day Month DayOfWeek Command

11.
^M
可以先打
Ctrl+v
,再按
Enter
键实现

12. 将
^M
去掉:
%s/^M//g


使用命令行打开pdf

evince hdfs_design.pdf

man -7 可以查看相关文档

man -7 fstab

fstab

fs_spec fs_file fs_type fs_mntops fs_dump(备份) fs_fsck(检查)

/dev/sda1 /mnt vfat defaults 0 0

mount

mount -t [msdos | vfat | ntfs | iso9660]

#mount -o用来描述设备或档案的挂接方式。 后面接loop是用来把一个文件当成硬盘分区挂接上系统。

mount -t iso9660 -o loop a.iso /mnt

sudo fdisk -l
结果如下图,其中W95 Ext'd(LBA)是扩展分区的意思。



今天遇到一个难受的问题,使用
ifstream
流处理数据时,总是无法读取全部数据,最后发现是终端显示的问题,直接读取输出的时候用的是
cout<< val <<" ";
,导致终端一行显示不下所有数据,修改为
cout<< val <<endl;
,发现实际上已经读取了全部数据。浪费了好多时间找答案...

man页

Mandatory arguments to long options are mandatory for short options too.长选项的强制参数对短选项也是必须的。

>
问题

下面这段代码希望对文件进行排序,如下

cat $FILE | sort -n | uniq > $FILE

但运行的结果却是将
$FILE
文件清空了,因为先执行了
>
导致
$FILE
文件被清空,然后的操作 都是针对空文件。建议使用tee避免这种情况,即:

cat $FILE | sort -n | uniq | tee $FILE


linux中的常用变量

$?      #上个语句执行的状况
$#      #参数个数
$@      #每个参数,可以用for遍历
$*      #每个参数,字符串

!!      #上一条命令,sudo !!
!$      #上一条命令的最后一个参数

注意:

linux shell中,
$#
的参数个数是不计算命令的,
$0
代表命令,
$1
是第一个参数,如果只是 一个命令没有参数的话,
$#
为0。可以通过这个判断是否输入参数。

date

//时间戳转换为时间
date -d@1234567890
//时间转为时间戳,%s表示转化为时间戳
date -d20140815 +%s


命令替换

//把上个命令中的a替换成b并重新执行一次
^a^b
//同样的命令
!!:gs/a/b

注意:
^a^b
只会替换第一处,不会替换所有,使用
!!:gs/a/b
将替换所有出现
a
的地方,其中的
g
表示global,去掉
g
之后,与上面的命令等价。

the device is busy


使用
fuser /mount
查看占用进程,或者使用
fuser -k /mount
直接杀死进程。有时候可能是终端cd到挂载目录导致占用。也可以使用
lsof
查看。

挂载Windows共享文件夹

使用命令挂载Windows共享文件

sudo mount.cifs <共享文件位置> <挂载点> <-o username=用户名>

sudo mount.cifs //10.10.64.159/public /mount -o username=public

history
相关

# `!-:` 上个命令除去最后一个参数以外的命令,下面的命令由a.txt换成b.txt
$ ls -lt a.txt
$ !-: b.txt
# `!×` 上个命令所有参数
# `!num`执行第num个命令
$ !789      #执行history中第789个命令
# `!cmd` 执行上个histroy中最近的命令
$ !cat      #执行最上次执行的cat命令

使用
Ctrl+R
搜索相关命令,使用
!cmd
执行上个命令,都可以极大帮助你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: