###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执行上个命令,都可以极大帮助你。
相关文章推荐
- Linux基础——系统安全命令
- 一切从基础开始Linux入门命令篇
- 卡卡笔记之Linux基础命令---<貳>
- Linux命令基础
- LINUX 学习之基础一 基本命令学习
- Linux基础命令集
- linux基础命令小结
- Linux 基础命令
- linux的基础命令小节(下)
- linux 基础命令
- [linux基础] find 命令详解
- Linux 基础知识,常用资料,命令
- Linux基础-文件系统简单命令
- 卡卡笔记之Linux基础命令---<壹>
- Linux基础命令小结(上)-Linux学习日记
- 一切从基础开始Linux入门命令篇
- 常用Linux基础命令
- 基础教程-学用Linux命令(1)
- linux基础-查找命令
- linux基础命令小结